以下我是归纳的过滤器监听器知识点图:

图上的知识点都可以在我其他的文章内找到相应内容。如果文章有错的地方欢迎指正,大家互相交流。习惯在微信看技术文章的同学,可以关注微信公众号:Java3y

监听器常见面试题

监听器有哪些作用和用法?监听器有哪些作用和用法?

Java Web开发中的监听器(listener)就是application、session、request三个对象创建、销毁或者往其中添加修改删除属性时自动执行代码的功能组件,如下所示:①ServletContextListener:对Servlet上下文的创建和销毁进行监听。

②ServletContextAttributeListener:监听Servlet上下文属性的添加、删除和替换。

③HttpSessionListener:对Session的创建和销毁进行监听。session超时(可以在web.xml中通过/标签配置超时时间);

通过调用session对象的invalidate()方 法使session失效。

补 充:session的销毁有两种情况:

④HttpSessionAttributeListener:对Session对象中属性的添加、删除和替换进行监听。

⑤ServletRequestListener:对请求对象的初始化和销毁进行监听。

⑥ServletRequestAttributeListener:对请求对象属性的添加、删除和替换进行监听。

常见的监听器用途主要包括:网站在线人数技术、监听用户的行为(管理员踢人)。

过滤器常见面试题

过滤器有哪些作用和用法?过滤器有哪些作用和用法?

Java Web开发中的过滤器(filter)是从Servlet 2.3规范开始增加的功能,并在Servlet 2.4规范中得到增强。对Web应用来说,过滤器是一个驻留在服务器端的Web组件,它可以截取客户端和服务器之间的请求与响应信息,并对这些信息进行过 滤。当Web容器接受到一个对资源的请求时,它将判断是否有过滤器与这个资源相关联。如果有,那么容器将把请求交给过滤器进行处理。在过滤器中,你可以改 变请求的内容,或者重新设置请求的报头信息,然后再将请求发送给目标资源。当目标资源对请求作出响应时候,容器同样会将响应先转发给过滤器,再过滤器中, 你可以对响应的内容进行转换,然后再将响应发送到客户端。

常见的过滤器用途主要包括:对用户请求进行统一认证、对用户的访问请求进行记录和审核、对用户发送的数据进行过滤或替换、转换图象格式、对响应内容进行压缩以减少传输量、对请求或响应进行加解密处理、触发资源访问事件、对XML的输出应用XSLT等。

和过滤器相关的接口主要有:Filter、FilterConfig、FilterChain

Java Web常见面试题

web.xml 的作用?web.xml 的作用?

答:用于配置Web应用的相关信息,如:监听器(listener)、过滤器(filter)、 Servlet、相关参数、会话超时时间、安全验证方式、错误页面等。例如:

①配置Spring上下文加载监听器加载Spring配置文件:contextConfigLocation

classpath:applicationContext.xml

org.springframework.web.context.ContextLoaderListener

②配置Spring的OpenSessionInView过滤器来解决延迟加载和Hibernate会话关闭的矛盾:openSessionInView

org.springframework.orm.hibernate3.support.OpenSessionInViewFilter

openSessionInView

/*

③配置会话超时时间为10分钟:10

④配置404和Exception的错误页面:[html] view plaincopy在CODE上查看代码片派生到我的代码片

404

/error.jsp

java.lang.Exception

/error.jsp

⑤配置安全认证方式:ProtectedArea

/admin/*

GET

POST

admin

BASIC

admin

【补 充1】从Servlet 3开始,可以不用在web.xml中部署Servlet(小服务)、Filter(过滤器)、Listener(监听器)等Web组件,Servlet 3提供了基于注解的部署方式,可以分别使用@WebServlet、@WebFilter、@WebListener三个部署小服务、过滤器、监听器。

【补充2】如果Web提供了有价值的商业信息或者是敏感数据,那么站点的安全性就是必须考虑的问题。安全认证是实现安全性的重要手段,认证就是要解决“Are you who you say you are?”的问题。认证的方式非常多,简单说来可以分为三类:

A.What you know? --口令

B.What you have? --数字证书(U盾、密保卡)

C.Who you are? -- 指纹识别、虹膜识别

在Tomcat中可以通过建立安全套接字层(Secure Socket Layer, SSL)以及通过基本验证或表单验证来实现对安全性的支持。

Servlet 3中的异步处理指的是什么?Servlet 3中的异步处理指的是什么?

答: 在Servlet 3中引入了一项新的技术可以让Servlet异步处理请求。有人可能会质疑,既然都有多线程了,还需要异步处理请求吗?答案是肯定的,因为如果一个任务处 理时间相当长,那么Servlet或Filter会一直占用着请求处理线程直到任务结束,随着并发用户的增加,容器将会遭遇线程超出的风险,这这种情况下 很多的请求将会被堆积起来而后续的请求可能会遭遇拒绝服务,直到有资源可以处理请求为止。异步特性可以帮助应用节省容器中的线程,特别适合执行时间长而且 用户需要得到结果的任务,如果用户不需要得到结果则直接将一个Runnable对象交给Executor(如果不清楚请查看前文关于多线程和线程池的部 分)并立即返回即可。

开启异步处理代码:@WebServlet(urlPatterns = {"/async"}, asyncSupported = true)

public class AsyncServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

@Override

public void doGet(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

// 开启Tomcat异步Servlet支持

req.setAttribute("org.apache.catalina.ASYNC_SUPPORTED", true);

final AsyncContext ctx = req.startAsync(); // 启动异步处理的上下文

// ctx.setTimeout(30000);

ctx.start(new Runnable() {

@Override

public void run() {

// 在此处添加异步处理的代码

ctx.complete();

}

});

}

}

过滤器java面试_过滤器监听器面试题都在这里相关推荐

  1. 阅文java面试_面试官:说说Redis的Hash底层 我:......(来自阅文的面试题)

    redis源码分析系列文章 前言 hello,各位小可爱们,又见面了.今天这篇文章来自去年面试阅文的面试题,结果被虐了.这一part不说了,下次专门开一篇,写下我面试被虐的名场面,尴尬的不行,全程尬聊 ...

  2. 【2022最新Java面试宝典】—— Redis面试题(70道含答案)

    目录 一.概述 1. 什么是Redis? 2. Redis有哪些优缺点? 3. 使用redis有哪些好处? 4. 为什么要用 Redis / 为什么要用缓存 5. 为什么要用 Redis 而不用 ma ...

  3. 【2022最新Java面试宝典】—— SpringCloud面试题(49道含答案)

    目录 Spring Cloud 1. 什么是微服务架构 2. 为什么需要学习Spring Cloud 3. Spring Cloud 是什么 4. SpringCloud的优缺点 5. SpringB ...

  4. 【2022最新Java面试宝典】—— Spring面试题(75道含答案)

    目录 1. Spring概述 1.1 什么是spring? 1.2 Spring的俩大核心概念 1.3 Spring框架的设计目标,设计理念,和核心是什么 1.4 Spring的优缺点是什么? 1.5 ...

  5. 如何java面试_短时间如何过java面试?

    这题我会!作为一个编程界老司机,我曾总结过一套Java常见的面试考点大全,不知道帮助过多少程序员拿下offer. 现在我把这套Java面试大全放出来,希望对大家有所帮助! 本文内容过长,建议大家先赞后 ...

  6. 微众java面试_微众面试经验

    面试过程: 电话通知面试发邮件邀请函,然后楼下登记,上电梯等人接应,就在一个类似咖啡厅的地方面谈,面试官没怎么翻看简历,几乎都是靠自己说.2 面试官问的面试题: 1.一分钟自我介绍2 2.本科还是研究 ...

  7. 【Java面试宝典】1000+面试题附答案详解,最全面详细

    进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里.美团.滴滴.头条等大厂面试大全,其中概括的知识点有:Java.MyBatis.ZooKeeper.Dubbo.Elast ...

  8. 最新Java面试八股文,1000+面试题答案详解全面看完拿下大厂offer

    进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里.美团.滴滴.头条等大厂面试大全,其中概括的知识点有:Java.MyBatis.ZooKeeper.Dubbo.Elast ...

  9. 【2022最新Java面试宝典】—— MySQL面试题(40道含答案)

    目录 1.MySQL 中有哪几种锁? 2.MySQL 中有哪些不同的表格? 3.简述在MySQL 数据库中 MyISAM 和InnoDB 的区别 4.MySQL 中InnoDB 支持的四种事务隔离级别 ...

最新文章

  1. MyEclipse Enterprise Workbench 9.0 破解及注册机 注册码
  2. @2021 高考生,用 Python 分析专业“钱景”
  3. linux系统reboot怎么退出,Linux系统肿么退出?
  4. (原)给定输入,输出全排列
  5. 【机器学习】机器学习视角下的因果推断
  6. 99%的人都不知道的鸡兔同笼解法!
  7. 程序员买房,买车,一个避不开的梗
  8. 主成分分析(PCA)与线性判别分析(LDA)的区别与联系
  9. Soul是一个基于兴趣、场景、算法搭建的“第三空间”?
  10. 集团企业税务管理浅析
  11. iOS开发设计模式详解
  12. python中做为词云轮廓的图片,Python如何生成词云图片
  13. 微软服务器WIFI连不上吗,Win10系统为什么连不上WiFi?该如何解决?
  14. 【HDU6608 Fansblog】求很大很大的数的阶乘
  15. FileSystemWatcher的Created事件问题
  16. 工业以太网交换机的光口和电口有什么区别?
  17. 【论文笔记】基于范围的有障碍最近邻查询(RONN)
  18. mysql请假表需要什么_课内资源 - 基于JSP和MYSQL数据库实现的请假管理系统
  19. 初探Turtlebot2
  20. qq空间微博等更多社交平台分享

热门文章

  1. 清空数据库错误:因为该表正由 FOREIGN KEY 约束引用 解决办法
  2. 关于多线程的一个例子(UI实时显示)
  3. python美多商城项目百度网盘_美多商城项目(七)
  4. 【C语言练习】【指针】定义一个函数move,实现将长度为n、名为a的序列中,各元素依次顺序循环,右移m个位置
  5. python建立虚拟环境不成功_virtualenv 创建虚拟环境不成功
  6. oracle数据转成sqlserver,oracle数据库转换到Sqlserver的几点经验
  7. 【2012百度之星/资格赛】F:百科蝌蚪团
  8. 九度OJ最短摘要的生成
  9. uva 11367 (Dijkstra+DP)
  10. Jmeter基础(二)