过滤器
JSP完成的功能Servlet都能完成,但是Servlet具备很多JSP所不具有的,从使用上看可以分为三种:简单Servlet、过滤Servlet和监听Servlet
1.过滤器:是以一种组件的形式绑定在web应用程序当中的,与其他的Web应用程序组件不同的是,过滤器是采用链的方式进行处理的。
一旦加入过滤器,所有的请求先交给过滤器处理,然后再访问相应的web资源的访问限制。
(1)实现过滤器:如果定义一个过滤器,则直接让一个类实现javax.servlet.Filter接口即可。
Public void init(FilterConfig filterConfig)Throws ServletException
public void doFilter(ServletRequest request,Servlet response,FilterChain chain)
实现具体的过滤操作,然后通过FilterChain让请求继续向下传递。
chain.doFilter(request,response);
过滤器的销毁 public void destroy()
2.过滤器的应用:
实例一:编码过滤器EncodingFilter.java
为所有页面设置统一的编码:如果按照之前的做法,在每一个JSP或者Servlet中都重复编写request.setCharacterEncoding("GBK")的语句肯定是不可取的,会造成大量的代码重复。
<!-- 编码过滤 -->
方法1:
在web.xml中配置:
<filter>
<filter-name>encoding</filter-name> <filter-class>org.ecjtu.lp.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在servlet中写:
public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("GB18030");
response.setCharacterEncoding("GB18030");
chain.doFilter(request, response);
}
方法2:
<!-- 编码过滤 -->
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.ecjtu.lp.EncodingFilter </filter-class>
<init-param>
<param-name>charset</param-name>
<param-value>GB18030</param-value>
</init-param>
</filter>
public void init(FilterConfig config) throws ServletException {
// TODO Auto-generated method stub
this.charSet=config.getInitParameter("charset");//取得初始化参数
}
(2)登陆验证:最早的做法是通过session的方式完成,但是每个页面都这样的话,则肯定造成大量代码的重复,而通过过滤器的方法即可避免这种重复操作。
注意:向下转型:将ServletRequest转为HttpServletRequest。
总结:过滤器属于自动执行的一种servlet,过滤器依然需要在web.xml文件中进行配置。
过滤器常用的功能是可以完成常用的编码过滤,及登录验证。
监听器
1.第三种servlet程序称为监听servlet,主要功能负责Web的各种操作,当相关的事件触发后将产生事件并对此事和request三种操作进行监听。
2.实例:监听器:在线人员统计
Session销毁的操作:
当一个新用户打开一个动态页时,服务器会为新用户分配session,并触发HttpsessionLisener接口中的sessionCreate()事件,但是在用户销毁时时却有两种不同的方式触发sessionDestroy()事件。
方式一:调用HttpSession接口中的invalidate()方法,让一个session失效。
方式二:超过了配置session的超时时间,session超时时间可以直接在项目中的web.xml中配置。
<session-config>
<session-timeout>5</session-timeout>
<session_config>
默认的超时时间为30分钟。
(本文转载 : http://www.cnblogs.com/200911/archive/2012/05/02/2479880.html)
相关推荐
Servlet过滤器是Java Web开发中的一个重要概念,它允许开发者在请求到达目标Servlet之前或之后对请求和响应进行处理。在这个“servlet过滤器做的简单登陆demo”中,我们将探讨如何利用过滤器实现一个基础的登录验证...
servlet过滤器和监听器,servlet过滤器和监听器课件,servlet过滤器和监听器PPT
第13章使用Servlet过滤器和监听器,基础知识
Servlet过滤器与监听器
Servlet过滤器和监听器是Java Servlet技术中两个重要的组件,它们极大地增强了Web应用程序的功能和灵活性。Servlet过滤器在Servlet 2.3规范中被引入,主要用于处理通用任务,如请求预处理、响应后处理,以及诸如编码...
Servlet 过滤器与监听器 概述: Servlet 过滤器(Filter)和监听器(Listener)是 Java Web 应用程序中常见的两种组件,它们提供了各种扩展 Web 应用程序功能的方式。过滤器和监听器都可以通过 Java Web 应用程序...
综上所述,Servlet过滤器和监听器是Java Web开发中两个关键的工具,它们扩展了服务器的功能,提高了代码的可复用性和可维护性,为复杂的Web应用提供了灵活的管理和控制手段。通过合理使用这两个特性,开发者可以实现...
- **处理时机**:过滤器在请求到达Servlet之前和离开Servlet之后进行操作,监听器则是在特定事件发生时被调用。 - **功能侧重点**:过滤器侧重于数据处理和过滤,监听器则更注重状态管理和事件响应。 - **交互...
在Servlet技术中,过滤器...总结,Servlet过滤器和监听器是Servlet技术中的关键组件,它们提供了强大的功能,可以增强应用程序的安全性、性能和可维护性。开发者应熟练掌握这些工具,以便在实际项目中灵活运用。
Servlets可以嵌入在不同的Java Web服务器之中,因为用来编写Servlets的Servlet API对于服务器环境和协议没有任何特殊的要求,所以Servlets具有很强的可移植性,也不像利用CGI程序等其它方式那样具有性能局限。
而过滤器(Filter)和侦听器(Listener)是Servlet规范中的两个重要概念,它们增强了应用的功能和灵活性。 **过滤器(Filter)** 过滤器在JSP中起到中介的作用,它们可以拦截HTTP请求和响应,对数据进行处理或修改...
侦听器(Listener)则是Servlet容器中的事件监听器,它们监听特定的事件,如session的创建、销毁、属性改变,或是请求初始化、销毁等。通过实现各种接口,如`HttpSessionListener`、`ServletRequestListener`等,...
【JavaWeb 高级:过滤器与监听器详解】 在JavaWeb开发中,过滤器(Filter)和监听器(Listener)是两种非常重要的组件,它们能够帮助我们实现更精细的控制和管理应用程序的行为。本篇将详细介绍过滤器的原理、使用...
在Java Web开发中,过滤器(Filter)和监听器(Listener)是两种非常重要的组件,它们主要用于增强应用程序的功能和管理应用程序的状态。本篇文章将详细解释这两种技术的使用、配置及其区别。 首先,我们来了解过滤...
Servlet、监听器、过滤器和MVC模式是Java Web开发中的核心概念,它们各自承担着不同的职责,共同构建了一个高效、清晰的架构。 首先,MVC(Model-View-Controller)模式是一种软件设计模式,常用于创建Web应用程序...
servlet原生的过滤器需要在web.xml文件中配置,需要注意的是异步请求不能直接响应重定向,应当向前端返回302的状态码并由前端重定向到login.html页面 原生的德鲁伊数据库连接池获取connection的步骤 没有mybatis的...
Servlet、过滤器和监听器是Java Web开发中的关键组件,它们在构建动态Web应用程序中扮演着重要角色。本文将详细阐述这三者的概念、配置和使用方法。 **Servlet** Servlet是一种Java类,它扩展了服务器的功能,特别...
关于servlet过滤器和监听器的ppt,对于学习servlet的人来说,是必不可少的。
在Java Web开发中,过滤器(Filter)和监听器(Listener)是两个非常重要的组件,它们主要用于增强应用程序的功能和管理应用程序的状态。以下是关于这两个概念的详细说明。 **过滤器(Filter)** 过滤器是Servlet...
在JavaWeb中,Servlet和Filter是两个核心组件,而监听器(Listener)则提供了更高级的功能,帮助开发者管理和监控应用状态。这个"JavaWeb Servlet过滤监听应用.zip"文件包含了关于如何在实际项目中运用这些概念的...