1.Servlet(server applet)
1.1 概念
servlet是运行在服务端的小程序
Servlet就是一个接口,定义了java类被浏览器访问到(webServer识别)的规则
将来我们自定义一个类,实现Servlet接口,复写方法,那么这个类就Servlet
1.2 执行原理
(1)当服务器接收客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
(2)查找web.xml,是否有对应的标签的内容
(3)如果有,则在找到应的全类名
(4)tomcat会将字节码文件加载进内存,并且创建其对象
(5)调用其方法
1.3 Servlet中的方法
(1)init方法
初始化方法,在Servlet被创建时(第一次访问到这个Servlet时)执行,只会执行一次
(2)service方法
每次Servlet被访问时执行
(3)destroy方法
在Servlet被杀死时会执行,在服务器正常关闭时,执行,只会执行一次
(4)getServletConfig方法(了解)
获取Servlet的配置对象
(5)getServletInfo方法(了解)
获取Servlet的一些信息,如版本,作者等等
1.4 Servlet的生命周期
(1)被创建:执行init方法,只执行一次
Servlet什么时候会被创建?
默认情况下,第一次被访问时,Servlet被创建
可以配置执行Servlet的创建时机
(2)提供服务:执行service方法,会执行多次
(3)被消耗:执行destroy方法,只执行一次服务器只有在正常关闭才会执行
二.Filter:过滤器
2.1概念
一般用于完成通用的操作。如 登录验证,编码统一处理,敏感字符过滤
2.2执行流程
请求首先到达过滤器的doFilter方法,然后对request增强,然后调用filterChain放行,等Servlet执行完毕后,对response增强
2.3过滤器生命周期
1.init:在服务器启动后,会创建Filter对象,然后调用init方法。只执行一次。用于加载资源
2.doFilter:每一次请求被拦截资源时,会执行。执行多次
3.destroy:在服务器关闭后,Filter对象会被销毁。如果服务器是正常关闭,则会执行destory方法。只执行一次。用于释放资源
2.4拦截配置
拦截路径配置
1.具体资源路径拦截:/index.jsp 只有访问index.jsp资源时,过滤器才会被执行
2.拦截目录:/user/* 访问/user下的所有资源时,过滤器都会被执行
3.后缀名拦截:.jsp 访问所有后缀名为jsp资源时 过滤器都会被执行
4.拦截所有资源:/ 访问所有资源时过滤器会被执行
拦截方式配置
注解配置
1.REQUEST:默认值。浏览器直接请求资源
2.FORWARD:转发访问资源
3.INCLUDE:包含访问资源
4.ERROR:错误跳转资源
5.ASYNC:异步访问资源
- web.xml配置
设置标签即可
2.5过滤器链(配置多个过滤器)
执行顺序:如果有两个过滤器:过滤器1和过滤器2
1.过滤器1
2.过滤器2
3.资源执行
4.过滤器2
5.过滤器1
过滤器先后顺序问题:
1.注解配置:按照类名的字符串比较规则比较,值小的先执行
2.web.xml配置:谁定义在上边谁先执行
三.Listener:监听器
1.概念
- 事件监听机制
- 事件 :一件事情
- 事件源 :事件发生的地方
- 监听器 :一个对象
- 注册监听 :将事件,事件源,监听器绑定在一起。当事件源上发生某个事件后,执行监听器代码
2.ServletContextListener:
监听ServletContext对象的创建和销毁
包含两个方法
contextDestroyed(ServletContextEvent sce) : ServletContext对象被销毁之前会调用该方法
contextInitialized(ServletContextEvent sce) : ServletContext对象创建后会调用该方法
使用步骤
1.定义一个类,实现ServletContextListener接口
2.复写方法
3.配置
1.web.xml
2.注解