`
qingBYqing
  • 浏览: 50483 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

servlet中 过滤器 监听器 初探

    博客分类:
  • Java
阅读更多
一.过滤器 的实现步骤

1.实现 javax.servlet.Filter接口
2.实现 init  方法 读取过滤器的初始化函数
3.实现 doFilter方法 完成过滤后的响应
4.调用 FilterChain 接口对象doFilter方法,向后续的过滤器 传递 请求或响应
5.配置 web.xml 中的 filter

简单示例: 中文乱码过滤
1.servlet 代码
public class EncodingFilter implements Filter {

	public void destroy() {
		// TODO Auto-generated method stub
		
	}

	public void doFilter(ServletRequest arg0, ServletResponse arg1,
			FilterChain arg2) throws IOException, ServletException {
		arg0.setCharacterEncoding("gbk");
		arg1.setCharacterEncoding("gbk");
		arg2.doFilter(arg0, arg1);
	}
	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub
	}
}

web.xml 代码
<filter>
	
	<filter-name>EncodingFilter</filter-name>
	<filter-class>com.qingbyqing.servlet.EncodingFilter</filter-class>
	
	</filter>
	
	<filter-mapping>
	
	<filter-name>EncodingFilter</filter-name>
	<url-pattern>/*</url-pattern>
	
	</filter-mapping>


注意: 这个过滤只是针对 提交方法 为“post”的时有效,对“get”无效 因为过滤器只能对输出的内容有效。 由于“get”方法发送的参数被附加到url后面的
get 方法可以使用一下方式解决乱码问题:

String username=request.getParameter("username");
       username=new String(username.getBytes("ISO-8859-1"),"GBK")

二.监听器 : 监听器主要是用来监听  request seesion application 对象存取数据的变化
  小示例: 监听当前网站访问人数
public class ServletListenerTest implements HttpSessionListener,
		HttpSessionAttributeListener {
	private int online;
	private HttpSession session;
	private ServletContext servletContext;

	// 当session 生成时 执行的方法
	public void sessionCreated(HttpSessionEvent arg0) {
		System.out.println("一个用户来访问我了");
		online++;

		session = arg0.getSession();

		session.setMaxInactiveInterval(60);

		servletContext = session.getServletContext();

		servletContext.setAttribute("online", new Integer(online));
	}

	public void sessionDestroyed(HttpSessionEvent arg0) {
		System.out.println("一个用户退出了");
		online--;
	}

	public void attributeAdded(HttpSessionBindingEvent arg0) {
		// TODO Auto-generated method stub

	}

	public void attributeRemoved(HttpSessionBindingEvent arg0) {
		// TODO Auto-generated method stub

	}

	public void attributeReplaced(HttpSessionBindingEvent arg0) {
		// TODO Auto-generated method stub
	}
}
 
web.xml配置:
<listener>
<listener-class>com.qingbyqing.servlet.ServletListenerTest</listener-class>
</listener>	
分享到:
评论
1 楼 ipconfig1 2011-04-05  
很好,我也做过这方面的总结,一直还不是怎么清楚

相关推荐

    Servlet过滤器的简单使用源码+文档

    在标题"Servlet过滤器的简单使用源码+文档"中,我们可以理解为这个压缩包包含了一个关于Servlet过滤器的基础应用示例,以及相关的源代码和文档资料。描述中提到的"实现一个登陆界面",表明了过滤器可能被用作验证...

    jsp/servlet中过滤器和监听器的区别

    - **工作原理**:监听器通过实现Servlet规范中的各种监听器接口,如`ServletContextListener`、`HttpSessionListener`、`ServletRequestListener`等,当触发相应事件时,容器会调用相应的监听器方法。 - **应用...

    servlet过滤器和监听器PPT课件.ppt

    servlet过滤器和监听器,servlet过滤器和监听器课件,servlet过滤器和监听器PPT

    第13章使用Servlet过滤器和监听器

    第13章使用Servlet过滤器和监听器,基础知识

    servlet 过滤器做的简单登陆demo

    Servlet过滤器是Java Web开发中的一个重要概念,它允许开发者在请求到达目标Servlet之前或之后对请求和响应进行处理。在这个“servlet过滤器做的简单登陆demo”中,我们将探讨如何利用过滤器实现一个基础的登录验证...

    servlet过滤器实例经典过滤器

    Servlet过滤器是Java Web开发中的一个重要组件,它允许开发者在请求到达Servlet之前或者响应离开Servlet之后进行拦截处理。本教程将深入讲解如何配置和使用Servlet过滤器,以及介绍五个经典的过滤器实例。 首先,让...

    Servlet编码过滤器的实现

    在本教程中,我们将深入探讨如何实现一个Servlet编码过滤器,并理解其工作原理。 首先,让我们了解为什么需要编码过滤器。在Web应用中,用户输入的数据可能包含非ASCII字符,如中文、日文等,这些字符在HTTP请求中...

    基于servlet的过滤器

    在这个小型的基于Servlet的过滤器项目中,我们主要关注如何利用过滤器来实现对网站访问用户的计数功能。这个功能在很多网站统计分析中都非常常见,可以帮助我们了解网站的流量情况。 首先,我们要理解Servlet过滤器...

    servlet中的过滤器与监听器

    Servlet监听器 **监听器** 是一种特殊类型的Servlet组件,它可以监听特定的事件,如会话创建、销毁、请求初始化、上下文初始化等。监听器通过实现不同的接口,如`ServletContextListener`, `HttpSessionListener`,...

    java中servlet文字过滤器

    本文将深入探讨"java中servlet文字过滤器"的概念、实现及应用场景。 ### 1. Servlet Filter简介 Servlet Filter是一种可以在请求到达目标Servlet之前或之后执行的拦截机制。它允许我们在不修改Servlet代码的情况下...

    Servlet过滤器与监听器

    Servlet过滤器与监听器

    Servlet转码过滤器.rar

    如果输入是中文,后台servlet再次输出这个内容时,可能就会是乱码,这是因为serlvet中默认是以ISO-8859-1格式编码的,如果后台有多个Servlet,多个参数,这样就不合适,这个问题,我们可以通过一个过滤器统一解决,使...

    Servlet过滤器与监听器.doc

    Servlet监听器则用于监听客户端的请求和服务器端的特定事件,例如session的创建、销毁,以及用户的登录、注销等。监听器通过实现Servlet规范定义的接口,如`HttpSessionListener`、`ServletRequestListener`等,可以...

    Java servlet过滤器配置详解

    Java Servlet过滤器是Java Web应用程序中的重要组件,它在请求被Servlet处理之前和响应返回给客户端之后进行拦截,可以用于实现各种功能,如字符编码转换、URL重写、权限控制等。本篇将深入讲解Java Servlet过滤器的...

    servlet过滤器验证用户登录

    在IT领域,特别是Java Web开发中,Servlet过滤器(Filter)是实现用户权限管理、登录状态验证等关键功能的重要机制之一。本文将深入探讨如何利用Servlet过滤器来验证用户是否已登录,以及如何配置过滤器以针对特定的...

    servlet过滤器实现(Eclipse工程)

    Servlet过滤器是Java Web开发中的一个重要概念,它允许开发者在请求到达Servlet之前或者响应离开Servlet之后进行拦截处理。本教程将详细介绍如何在Eclipse环境中创建并实现一个Servlet过滤器。 一、Servlet过滤器...

    servlet过滤器详解

    Servlet过滤器,作为Java Servlet规范中的一个重要组成部分,自2.3版本起被引入,主要用于在Servlet容器中对请求和响应进行预处理和后处理。它不直接生成请求或响应,而是作为一个中间件存在,能够在请求到达目标...

    jsp+servlet登录验证过滤器

    在这个项目中,“jsp+servlet登录验证过滤器”涉及了用户登录验证的过程,以及使用过滤器(Filter)来实现这一功能。下面将详细介绍这个主题中的相关知识点。 1. **JSP**:JSP是一种服务器端的技术,允许开发者在...

    servlet+jsp实现过滤器 防止用户未登录访问

    使用servlet和jsp技术时,我们可以通过过滤器(Filter)来实现这样的安全防护机制。过滤器是一种服务器端的组件,它能够对请求和响应进行拦截,执行一些预处理或者后处理操作。它常用于进行登录验证、权限检查、字符...

    servlet过滤器技术实例,

    Servlet过滤器是Java Web开发中的一个重要概念,它允许开发者在请求到达Servlet之前或者Servlet响应返回客户端之前进行拦截处理。在本实例中,我们将深入探讨Servlet过滤器(Filter)的使用和实现,以及它在实际应用...

Global site tag (gtag.js) - Google Analytics