`
yuelangyc
  • 浏览: 454804 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Servlet-Day4 课堂笔记

阅读更多
过滤器

1. 什么是过滤器?
答:与Servlet相似,过滤器是一些Web应用程序组件,可以绑定到一个Web应用程序档案中。但是与其他Web应用程序组件不同的是,过滤器是“链”在容器的处理过程中的。这就意味着它们会在servlet处理器之前访问一个进入的请求,并且在外发的响应信息返回到客户前访问这些响应信息。这种访问使得过滤器可以检查并修改请求和响应的内容。

2. 过滤器可以用于:
答:1) 为一个Web应用程序的新功能建立原型(可被添加到Web应用程序中或者从Web应用程序中删除而不需重写基层应用程序代码);
    2) 向过去的代码中添加新功能。

3. 过滤器放在容器结构什么位置?
答:过滤器放在Web资源之前,可以在请求抵达它所应用的Web资源(可以是一个servlet、一个JSP页面,甚至是一个HTML页面这样的静态内容)之前截获进入的请求,并且在它返回到客户之前截获输出请求。

4. 过滤器的存活周期
答:过滤器有四个阶段(与servlet类似):
    1) 实例化;
    2) 初始化(调用init()方法);
    3) 过滤(调用doFilter()方法);
    4) 销毁(调用destroy()方法);

5. 过滤器类和接口
答:所有的过滤器都必须实现javax.servlet.Filter接口:
    1) 容器调用init()方法初始化过滤器实例:
       public void init(FilterConfig config) throws

ServletException
    2) doFilter()方法包含过滤器逻辑:
       public void doFilter(ServletRequest req, ServletResponse

res, FilterChain chain) throws IOException, ServletException
    3) destroy()方法由容器在销毁过滤器实例之前调用:
       public void destroy();
    4) FilterChain的doFilter()方法之后的代码构成了后期处理过滤器调用



6. 配置过滤器
答:使用<filter>和<filter-mapping>元素来配置:
    <filter>
       <filter-name>XSLTFilter</filter-name>                   //过滤器名
       <filter-class>filters.SmartXSLFilter</filter-class>     //具体过滤器类
       <init-param>                                            //初始化参数
          <param-name>xsltfile</param-name>
          <param-value>/xsl/stockquotes.xsl</param-value>
       </init-param>
    </filter>
    <filter-mapping>                        //将过滤器应用于Web应用程序中的每个Web资源
       <filter-name>Logger</filter-name>
       <url-pattern>/*</url-pattern>
    </filter-mapping>

    可以通过修改配置的顺序,改变过滤器执行的顺序。


注意:
Web应用程序生命周期事件及监听器(Servlet V2.3版本以后新增功能)

过滤器作用:
(1)过滤一个或多个 web 服务器上的资源
(2)可以对请求或响应对象中的内容进行拦截或判断
(3)可以阻塞请求
(5)可以进行非法用户验证,设置字符编码集,验证特定 ip 地址


1. 什么是事件监听器?
答:1) 支持ServletContext、HttpSession(since v2.3)及ServletRequest(since v2.4)中状态改变的事件通知;
    2) 实现了一个或多个servlet事件监听器接口的类型;
    3) 控制ServletContext、HttpSession(since v2.3)及ServletRequest(since v2.4)中的生命周期;

注意:ServletContext、HttpSesssion、HttpServletRequest 对象生命周期中的事件包括:
       对象的创建,对象的销毁,往对象中放入值,从对象中取出值

     事件是Java 中一个重要的概念,指某个代码运行过程中的一个状态:如HttpSession创建,属性值的改变等都可以用事件来描述。
     事件侦听程序,当事件发生后"发现"并"处理"的程序。


2. Servlet Context事件监听器
答:1) 对于应用程序而言在JVM层别管理资源或保存状态
    2) 有二种类型的事件监听器:
       a. ServletContextListener(以下是该监听器的方法)
          contextDestroyed(ServletContextEvent sce)
          contextInitialized(ServletContextEvent sce)
       b. ServletContextAttributeListener(以下是该监听器的方法)
          attributeAdded(ServletContextAttributeEvent scab)
          attributeRemoved(ServletContextAttributeEvent scab)
          attributeReplaced(ServletContextAttributeEvent scab)

3. HTTP Session事件监听器
答:1) 管理从同一个客户端或用户向一个Web应用程序发出的一系列请求相关的状态或资源;
    2) 有二种类型的事件监听器:
       a. HttpSessionListener(以下是该监听器的方法)
          sessionCreated(HttpSessionEvent se)
          sessionDestroyed(HttpSessionEvent se)
       b. HttpSessionAttributeListener(以下是该监听器的方法)
          attributeAdded(HttpSessionBindingEvent se)
          attributeRemoved(HttpSessionBindingEvent se)
          attributeReplaced(HttpSessionBindingEvent se)

4. Servlet Requst事件监听器
答:1) 管理整个request生命周期的状态
    2) 有二种类型的事件监听器
       a. ServletRequestListener(以下是该监听器的方法)
          requestDestroyed(ServletRequestEvent sre)
          requestInitialized(ServletRequestEvent sre)
       b. ServletRequestAttributeListener(以下是该监听器的方法)
          attributeAdded(ServletRequestAttributeEvent srae)
          attributeRemoved(ServletRequestAttributeEvent srae)
          attributeReplaced(ServletRequestAttributeEvent srae)

5. 监听器类的规定
答:1) 必须在部署描述符中配置实现类;


分享到:
评论

相关推荐

    Servlet-JSP-课堂笔记.md

    Servlet-JSP-课堂笔记.md

    jakarta.servlet-api-4.0.4-API文档-中文版.zip

    赠送jar包:jakarta.servlet-api-4.0.4.jar; 赠送原API文档:jakarta.servlet-api-4.0.4-javadoc.jar; 赠送源代码:jakarta.servlet-api-4.0.4-sources.jar; 赠送Maven依赖信息文件:jakarta.servlet-api-4.0.4....

    jakarta.servlet-api-4.0.4-API文档-中英对照版.zip

    赠送jar包:jakarta.servlet-api-4.0.4.jar; 赠送原API文档:jakarta.servlet-api-4.0.4-javadoc.jar; 赠送源代码:jakarta.servlet-api-4.0.4-sources.jar; 赠送Maven依赖信息文件:jakarta.servlet-api-4.0.4....

    javax.servlet-api-3.0.1.jar中文文档.zip

    javax.servlet-api-***.jar中文文档.zip,java,javax.servlet-api-***.jar,javax.servlet,javax.servlet-api,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,javax,servlet,api,中文API文档,手册,开发...

    javax.servlet-api-4.0.0-API文档-中文版.zip

    赠送jar包:javax.servlet-api-4.0.0.jar; 赠送原API文档:javax.servlet-api-4.0.0-javadoc.jar; 赠送源代码:javax.servlet-api-4.0.0-sources.jar; 赠送Maven依赖信息文件:javax.servlet-api-4.0.0.pom; ...

    javax.servlet-api-4.0.1-API文档-中英对照版.zip

    赠送jar包:javax.servlet-api-4.0.1.jar; 赠送原API文档:javax.servlet-api-4.0.1-javadoc.jar; 赠送源代码:javax.servlet-api-4.0.1-sources.jar; 赠送Maven依赖信息文件:javax.servlet-api-4.0.1.pom; ...

    servlet-api.jar 下载地址

    4. **下载servlet-api.jar** 要下载servlet-api.jar,通常可以从Apache Tomcat或Jetty等Web服务器的官方库中获取,也可以从Maven中央仓库或Oracle官方网站下载对应版本的Java EE SDK。对于开发环境,通常需要将...

    javax.servlet-api-4.0.1.jar中文文档.zip

    javax.servlet-api-***.jar中文文档.zip,java,javax.servlet-api-***.jar,javax.servlet,javax.servlet-api,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,javax,servlet,api,中文API文档,手册,开发...

    javax.servlet-api-3.1.0.jar中文文档.zip

    javax.servlet-api-***.jar中文文档.zip,java,javax.servlet-api-***.jar,javax.servlet,javax.servlet-api,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,javax,servlet,api,中文API文档,手册,开发...

    jersey-container-servlet-core-2.22.2-API文档-中文版.zip

    赠送jar包:jersey-container-servlet-core-2.22.2.jar; 赠送原API文档:jersey-container-servlet-core-2.22.2-javadoc.jar; 赠送源代码:jersey-container-servlet-core-2.22.2-sources.jar; 赠送Maven依赖信息...

    sentinel-web-servlet-1.8.0-API文档-中英对照版.zip

    赠送jar包:sentinel-web-servlet-1.8.0.jar; 赠送原API文档:sentinel-web-servlet-1.8.0-javadoc.jar; 赠送源代码:sentinel-web-servlet-1.8.0-sources.jar; 赠送Maven依赖信息文件:sentinel-web-servlet-...

    javax.servlet-3.0.0.v201112011016-API文档-中文版.zip

    赠送jar包:javax.servlet-3.0.0.v201112011016.jar; 赠送原API文档:javax.servlet-3.0.0.v201112011016-javadoc.jar; 赠送源代码:javax.servlet-3.0.0.v201112011016-sources.jar; 赠送Maven依赖信息文件:...

    jakarta.servlet-api-4.0.4.zip

    jakarta.servlet-api-4.0.4.jar jakarta.servlet-api-4.0.4-javadoc.jar jakarta.servlet-api-4.0.4-sources.jar

    servlet-api-3.1-源代码.zip

    servlet源代码本来就是开放的,CSDN居然那么多人要...本资源是来自从Maven的servlet-api-3.1源代码,原地址还有servlet-api、servlet-api-doc,本资源仅仅下载了源代码的部分,需要的朋友可以去以下网址下载其它内容: ...

    javax.servlet-api-3.1.0.jar

    javax.servlet-api-3.1.0.jar,处理找不到servlet JAR的问题

    javax.servlet-api-4.0.0-API文档-中英对照版.zip

    赠送jar包:javax.servlet-api-4.0.0.jar; 赠送原API文档:javax.servlet-api-4.0.0-javadoc.jar; 赠送源代码:javax.servlet-api-4.0.0-sources.jar; 赠送Maven依赖信息文件:javax.servlet-api-4.0.0.pom; ...

    javax.servlet-api.jar.zip

    文件中包含javax.servlet-api-3.0.1.jar,javax.servlet-api-3.1.0.jar,javax.servlet-api-4.0.0.jar,用来处理java项目运行中找不到servlet JAR的问题,需要的朋友可以下载

    servlet-api-3.0.jar包

    Servlet-api-3.0.jar是Java Servlet API的第三版实现,它是开发Web应用程序的重要组成部分,特别是在基于Java的服务器端编程中。这个库包含了用于创建和管理HTTP服务端点的接口和类,允许开发者构建动态、交互式的...

    servlet-api 各种版本

    Servlet-API是Java Servlet技术的核心部分,它定义了服务器端与客户端之间交互的一系列接口和类。这个压缩包包含了Servlet-API的多个版本,分别是2.2、2.3、2.4、2.5以及3.0。每个版本的发布都带来了新的功能和改进...

Global site tag (gtag.js) - Google Analytics