filter与servlet,如果一个servlet有多个filter
目录
过滤器:过滤器监听器:监听器servlet概要
00-1010 1.概念:*生活中的过滤器:净水器、空气净化器、土匪,web中的过滤器:在访问服务器的资源时,过滤器可以拦截请求,完成一些特殊的功能。*过滤器的功能:*一般用于完成一般操作。如:登录验证、统一编码处理、敏感字符过滤.2.快速入门:1。步骤:1。定义一个类并实现接口Filter2。复制方法3。配置拦截路径1。Web.xml2 .注释2。代码:@WebFilter(/*)//在访问所有资源之前,Filter公共类filter demo 1实现filter { @ Override public void init(filter config filter config)抛出servlet异常{ } @ Override public void do filter(servlet request servlet request,ServletResponse servletResponse,FilterChain filterChain)抛出IOException,Exception { system . out . println( filter demo 1已执行.);//释放filterchain.dofilter (servlet请求,servlet响应);} @ override公共void destroy () {}} 3。过滤器详细信息:1。web.xml配置filter filter-name demo 1/filter-name filter-class cn . it cast . web . filter . filter demo 1/filter-class/filter filter-mapping filter-name demo 1/filter-name!-截取路径-URL-pattern/*/URL-pattern/Filter-mapping 2。过滤器执行流程1。执行过滤器2。执行释放的资源3。回来执行过滤器发布代码3下面的代码。过滤器生命周期方法1。Init服务器启动后,会创建filter对象,然后调用init方法。仅执行一次。用于加载资源2。每次请求拦截的资源时,都会执行dofilter3360。执行3。多次销毁:服务器关闭后,过滤器对象被销毁。如果服务器正常关闭,将执行destroy方法。仅执行一次。用于释放资源。4.过滤器配置详细说明*拦截路径配置:1。特定资源路径:/index.jsp只有在访问index.jsp资源时才会执行过滤器。2.拦截目录:/user/*当访问/user下的所有资源时,将执行过滤器。3.后缀拦截:*。jsp当所有带有JSP后缀的资源被访问时,过滤器将被执行。4.阻塞所有资源:/*当所有资源都被访问时,过滤器将被执行。*拦截模式配置:如何访问资源。*注释配置:*设置dispatcherTypes属性。1.请求:默认值。浏览器直接请求资源2。转发:转发访问资源3。包括:包括访问资源4。错误:跳转资源5。ASYNC:异步访问资源* web.xml配置*只需设置dispatcher/dispatcher标签5。筛选器链(配置多个筛选器)*执行顺序:如果有两个筛选器:筛选器1和筛选器21、筛选器12、筛选器23、资源执行4、筛选器25、筛选器1 *筛选器顺序问题:1。注释配置:比较根据类名的字符串比较规则,先执行较小的值*比如AFilter和BFilter,AFilter先执行。2.web.xml配置:filter-mapping定义在最上面,首先执行。
00-1010 *概念:web的三大组成部分之一。*事件监控机制*事件:一件事*事件源:事件发生的地方*监听器:一个对象*注册监控:将事件、事件源、监听器绑定在一起。当事件源上发生事件时,执行监听器代码* ServletContextListener:监听ServletContext对象的创建和销毁*方法:* void context Destroyed(ServletContextEvent SCE):ser
vletContext对象被销毁之前会调用该方法* void contextInitialized(ServletContextEvent sce) :ServletContext对象创建后会调用该方法* 步骤:1. 定义一个类,实现ServletContextListener接口2. 复写方法3. 配置1. web.xml<listener> <listener-class>cn.itcast.web.listener.ContextLoaderListener</listener-class> </listener>* 指定初始化参数<context-param>2. 注解:* @WebListener
servlet
* 概念:运行在服务器端的小程序* Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。* 将来我们自定义一个类,实现Servlet接口,复写方法。* * 快速入门:1. 创建JavaEE项目2. 定义一个类,实现Servlet接口* public class ServletDemo1 implements Servlet3. 实现接口中的抽象方法4. 配置Servlet 在web.xml中配置: <!--配置Servlet --> <servlet> <servlet-name>demo1</servlet-name> <servlet-class>cn.itcast.web.servlet.ServletDemo1</servlet-class> </servlet> <servlet-mapping> <servlet-name>demo1</servlet-name> <url-pattern>/demo1</url-pattern> </servlet-mapping> * 执行原理:1. 当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径2. 查找web.xml文件,是否有对应的<url-pattern>标签体内容。3. 如果有,则在找到对应的<servlet-class>全类名4. tomcat会将字节码文件加载进内存,并且创建其对象5. 调用其方法* Servlet中的生命周期方法:1. 被创建:执行init方法,只执行一次* Servlet什么时候被创建?* 默认情况下,第一次被访问时,Servlet被创建* 可以配置执行Servlet的创建时机。* 在<servlet>标签下配置1. 第一次被访问时,创建 * <load-on-startup>的值为负数 2. 在服务器启动时,创建 * <load-on-startup>的值为0或正整数 * Servlet的init方法,只执行一次,说明一个Servlet在内存中只存在一个对象,Servlet是单例的* 多个用户同时访问时,可能存在线程安全问题。* 解决:尽量不要在Servlet中定义成员变量。即使定义了成员变量,也不要对修改值2. 提供服务:执行service方法,执行多次* 每次访问Servlet时,Service方法都会被调用一次。3. 被销毁:执行destroy方法,只执行一次* Servlet被销毁时执行。服务器关闭时,Servlet被销毁* 只有服务器正常关闭时,才会执行destroy方法。* destroy方法在Servlet被销毁之前执行,一般用于释放资源* Servlet3.0:* 好处:* 支持注解配置。可以不需要web.xml了。* 步骤:1. 创建JavaEE项目,选择Servlet的版本3.0以上,可以不创建web.xml2. 定义一个类,实现Servlet接口3. 复写方法4. 在类上使用@WebServlet注解,进行配置* @WebServlet("资源路径")
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注盛行IT的更多内容!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。