#### 1.1 Filter【++++】
- 概念【+++】
- 拦截请求,做一些通用的操作,是否放行
- 通用操作:登录验证,字符集编码设置,敏感字符过滤
- 优点:提高代码的通用性- 快速入门【+++++】
- 编写一个类实现接口Filter
- 重写方法(doFilter方法)
- 拦截后的处理
- 处理代码
- 是否放行(默认不放行)
- 放行
- filterChain.doFilter(request,response);
- 配置拦截路径
- @WebFilter("/*")- 细节处理【+++】
- web.xml配置方式
- 过滤器执行流程
- 过滤器生命周期
- servlet:第一次访问创建servlet,服务器启动时创建(load-on-startup 正数:服务器启动时创建)
- 服务器启动就创建filter,执行init方法(),只执行一次,加载资源。
- dofilter方法(),每一次拦截资源,都会执行一次
- destory方法(),服务器正常关闭,执行,只执行一次,关闭资源。
- 过滤器拦截路径配置规则(和servlet访问路径的规则一致)
- /index.jsp
- /user/* /user/demo1 /user/demo1/demo
- *.jsp
- /* [常用]
- /
- 注意:/* 和 / 区别
- /* 会拦截 jsp
- / 不会拦截 jsp
- 过滤器拦截方式配置规则(一般不会修改)
- dispatcherTypes
- 拦截浏览器直接访问资源:request[默认值]
- 拦截转发访问资源:forward
- 过滤器链(多个过滤器)==> filterChain
- 执行顺序:先进后出
- 谁先执行的顺序(先后顺序):
- 注解:逐个比对字符串大小,哪个小就先执行哪个
- web.xml:filter-mapping在前就先执行
- 代理模式:
- 动态代理(在内存中去创建代理对象,用的时候类加载)
- 使用jdk提供的动态代理技术来完成
- ```
Proxy.newProxyInstance(参数)
```- ```
// 代理对象实现了SaleComputer接口,那么就可以用SaleComputer接口接
SaleComputer proxy_lenovo = (SaleComputer) Proxy.newProxyInstance(lenovo.getClass().getClassLoader(), lenovo.getClass().getInterfaces(), new InvocationHandler() {
```
#### 1.2 Listener【+++】- 概念【+++】
- * 事件监听机制
* 我方水晶被摧毁了我就说:你****- ServletContextListener【+++】
- spring框架,框架内部会使用ServletContextListener加载全局的资源文件
- 监听ServletContext对象创建和销毁,执行对应的方法(创建init(),销毁destory())
- 目的:希望在servlet容器创建和销毁的时候做一些处理,比如全局的资源文件加载
- 事件源:ServletContext:servlet容器
- 事件:创建,销毁
- 监听器:init(),destory()方法里的代码
- 步骤:(三大组件开发步骤基本一致)
- 编写一个类实现ServletContextListener接口
- 复写方法
- init方法【常用】
- ServletContext对象创建则执行(服务器启动就执行)
- 加载全局的资源文件
- destroy方法
- ServletContext对象销毁则执行(服务器正常关闭就执行)- 配置
- 注解:@WebListener
- web.xml:
- ```
<listener>
<listener-class>cn.itcast.web.listener.ContextLoaderListener</listener-class>
</listener>
```- ```
获取ServletContext对象方式:
request.getServletContext()
HttpServlet.getServletContext()
FilterConfig.getServletContext();
servletContextEvent.getServletContext();
```- 其他监听器:
- HttpSessionListener:监听session对象的创建和销毁
- ServletRequestListener:监听request对象的创建和销毁
### 2 面试常见问题
- 过滤器的作用和应用场景
- 过滤器链的执行顺序
Filter&Listener介绍
最新推荐文章于 2024-01-21 16:46:14 发布