javaweb三大组件

javaweb三大组件分别是:servlet,filter,listener;

servlet

1.简要概念

  1. 简要:运行在服务端,接收客户端的请求然后响应请求
  2. 概念:运行在服务端的小程序
  3. Servlet就是一个接口,定义了java类被浏览器访问到(webServer识别)的规则
  4. 将来我们自定义一个类,实现Servlet接口,复写方法,那么这个类就是Servlet

2.执行原理

  1. (1)当服务器接收客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
  2. (2)查找web.xml,是否有对应的标签的内容
  3. (3)如果有,则在找到应的全类名
  4. (4)tomcat会将字节码文件加载进内存,并且创建其对象
  5. (5)调用其方法

Filter(过滤器)

  1. 概念:对所请求的web资源进行拦截,在请求到达目标资源之前过滤前的处理,在请求到达目标之后也可以进行过滤器的后置处理。一般用于完成通用的操作。如 登录验证,编码统一处理,敏感字符过滤。
  2. 执行流程:请求首先到达过滤器的doFilter方法,然后对request增强,然后调用doChain放行,等Servlet执行完毕后,对response增强
  3. 拦截配置
    1. 1.具体资源路径拦截:/index.jsp 只有访问index.jsp资源时,过滤器才会被执行
    2. 2.拦截目录:/user/* 访问/user下的所有资源时,过滤器都会被执行
    3. 3.后缀名拦截:*.jsp 访问所有后缀名为jsp资源时 过滤器都会被执行
    4. 4.拦截所有资源:/* 访问所有资源时过滤器会被执行
  1. 过滤器链:
    1. 可以配置多个过滤器
    2. 1.注解配置:按照类名的字符串比较规则比较,值小的先执行
    3. 2.web.xml配置:谁定义在上边谁先执行(一般不使用)

Listener(监听器)

  1. 概念 ```
  • 事件监听机制
    • 事件 :一件事情
    • 事件源 :事件发生的地方
    • 监听器 :一个对象
    • 注册监听 :将事件,事件源,监听器绑定在一起。当事件源上发生某个事件后,执行监听器代码 ```
  1. ServletContextListener
    1. 监听ServletContext对象的创建和销毁
    2. 包含两个方法
    3. contextDestroyed(ServletContextEvent sce) : ServletContext对象被销毁之前会调用该方法
    4. contextInitialized(ServletContextEvent sce) : ServletContext对象创建后会调用该方法