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域的创建于销毁的监听器