web的三大组件

  servlet(控制器)

  filter(过滤器)

  listener(监听器)

1. Servlet

1.1. Servlet概述

  servlet= server+applet:运行在服务器端的java程序。

  Servlet是一个接口,一个类要想通过浏览器被访问到,那么这个类就必须直接或间接的实现Servlet接口

1.2. 作用

  接收请求,处理逻辑,响应结果

1.3. Servlet步骤分析

  1.3.1. 创建web项目

  1.3.2. 编写普通java类,实现servlet接口

  1.3.3. 在web.xml配置url-pattern

  1.3.4. 部署web项目

  1.3.5. 启动测试

1.4. 请描述下servlet的生命周期

  servlet是一个单实例多线程的,默认情况下,第一次请求来的时候,才会对该servlet进行实例化,并执行初始化init方法,随后再执行service方法完成业务处理,当每一次请求发送过来,都会从新开启一个线程,来执行servlet中的service方法,当服务器关闭或者servlet被移除的时候,会执行destory方法。

 

2. Filter

2.1 概述

  web中的过滤器:当用户访问服务器资源时,过滤器将请求拦截下来,完成一些通用的操作。
  如:登录验证、统一编码处理、敏感字符过滤

2.2. 快速入门

  需求:编写filter对目标资源servlet进行拦截

2.2.1. 编写java类,实现filter接口

 1 public class QuickFilter implements Filter {
 2     @Override
 3 public void init(FilterConfig filterConfig) throws ServletException {
 4 }
 5 /**
 6 * 此方法拦截用户请求
 7 * @param servletRequest * @param servletResponse * @param filterChain
 8 */
 9 @Override
10 :请求对象
11 :响应对象
12 :过滤器链(是否放行)
13     public void doFilter(ServletRequest servletRequest, ServletResponse
14 servletResponse, FilterChain filterChain) throws IOException, ServletException {
15 System.out.println("QuickFilter拦截了请求...");
16 // 放行
17 filterChain.doFilter(servletRequest, servletResponse);
18 }
19 @Override
20     public void destroy() {
21     }
22 }

2 配置web.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
 3 http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
 4 <!--快速入门--> <!--注册filter--> <filter>
 5 <filter-name>QuickFilter</filter-name>
 6 <filter-class>com.lagou.a_quick.QuickFilter</filter-class> </filter>
 7 <!--配置filter拦截路径--> <filter-mapping>
 8 <filter-name>QuickFilter</filter-name>
 9 <url-pattern>/*</url-pattern> </filter-mapping>
10 </web-app>

3. Listener

3.1 概述

  java web中的监听器:在我们的java程序中,有时也需要监视某些事情,一旦被监听的对象发生相应的变化,我们应该采取相应的操作。

3.2. 监听web三大域对象

  HttpServletRequest

  HttpSession

  ServletContext

  通过监听器监听三大域对象它们的创建和销毁

场景

  历史访问次数、统计在线人数、系统启动时初始化配置信息

3.3. 快速入门

  使用如下接口以相同的方式也可以监听到session对象和request对象的创建和销毁

     HttpSessionListener:监听Httpsession域的创建于销毁的监听器

    ServletRequestListener:监听ServletRequest域的创建于销毁的监听器