Javaweb的三大组件

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.注解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值