`

J2EE中的过滤器

阅读更多

1. Servlet过滤器基础
Servlet
过滤器是Servlet的一种特殊用法,主要用来完成一些通用的操作。比如编码的过滤,判断用户的登陆状态等等。Servlet过滤器的适用场合:

A
.认证过滤

B
.登录和审核过滤

C
.图像转换过滤

D
.数据压缩过滤

E
.加密过滤

F
.令牌过滤

G
.资源访问触发事件过滤

Servlet
过滤器接口的构成:

所有的Servlet过滤器类都必须实现javax.servlet.Filter接口。这个接口含有3个过滤器类必须实现的方法:

方法 说明

init(FilterConfig cfg)
这是Servlet过滤器的初始化方法,性质等同与servletinit方法。

doFilter(ServletRequest,ServletResponse,FilterChain)
完成实际的过滤操作,当请求访问过滤器关联的URL时,Servlet容器将先调用过滤器的doFilter方法。FilterChain参数用于访问后续过滤器

destroy() Servlet
容器在销毁过滤器实例前调用该方法,这个方法中可以释放Servlet过滤器占用的资源。,性质等同与servletdestory()方法。

Servlet
过滤器的创建步骤:

A
.实现javax.servlet.Filter接口的servlet

B
.实现init方法,读取过滤器的初始化函数

C
.实现doFilter方法,完成对请求或过滤的响应

D
.调用FilterChain接口对象的doFilter方法,向后续的过滤器传递请求或响应

F.
web.xml中配置
Filter
2.
使用过滤器处理中文问题

  
当用用户登陆页面输入帐号时,如果输入是中文,后台servlet再次输出这个内容时,可能就会是乱码,这是因为serlvet中默认是以ISO-8859-1格式编码的,如果后台有多个Servlet,多个参数,这样就不合适,这个问题,我们可以通过一个过滤器统一解决,使后台的输出输出都支持中文!将ISO-8859-1转码为GBK的那段代码!

3.
使用过滤器认证用户:

每个过滤器也可以配置初始化参数,可以将不需要过滤的地址配置到这个Filter的配置参数中,过滤时,如果请求地址在配置参数中,则放行,这样就避免了在程序中硬编码。每个Filter中初始化时,都可以得到配置对象,在Filter中配置二个不需要过滤的地址,一个是登陆页面,一个是执行登陆认证的servlet

 

package test.util;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class Guolvqi implements Filter {


	public void destroy() {
	

	}


	public void doFilter(ServletRequest arg0, ServletResponse arg1,
			FilterChain arg2) throws IOException, ServletException {
		arg0.setCharacterEncoding("UTF-8");
		arg1.setCharacterEncoding("UTF-8");
		arg2.doFilter(arg0, arg1);
	}


	public void init(FilterConfig arg0) throws ServletException {


	}

}

 

 

<filter>
		<filter-name>Guolvqi</filter-name>
		<filter-class>test.util.Guolvqi</filter-class>
    </filter>
    <filter-mapping>
    	<filter-name>Guolvqi</filter-name>
    	<url-pattern>/*</url-pattern>
    </filter-mapping>

 

 

分享到:
评论

相关推荐

    J2ee的过滤器代码

    标题“J2EE的过滤器代码”表明我们将讨论如何在实际项目中编写和使用过滤器。过滤器是通过实现javax.servlet.Filter接口并定义三个关键方法来创建的:doFilter(), init()和destroy()。 1. **doFilter()**:这是过滤...

    论文研究-管道、过滤器和MVC软件体系模式在J2EE中的应用.pdf

    在深入分析《论文研究-管道、过滤器和MVC软件体系模式在J2EE中的应用.pdf》这篇文章之前,需要先理解几个核心概念:软件体系构架、管道和过滤器以及MVC模式。 软件体系构架(Software Architecture)是指软件系统的...

    j2ee过滤器Filter使用详解(实例)

    本文将深入解析J2EE过滤器Filter的使用方法,并通过实例来阐述其工作原理。 过滤器在J2EE环境中扮演着预处理和后处理的角色,它可以拦截进入和离开Web应用程序的请求和响应,对数据进行处理或验证,从而提供诸如...

    j2ee18:servlet02:过滤器(过滤四大web域)

    NULL 博文链接:https://1601844782.iteye.com/blog/2274023

    这是J2EE练习5(exercise5)学习使用过滤器的题目,代码实现,作业报告

    在J2EE开发中,过滤器(Filter)是核心组件之一,它允许开发者在请求到达目标资源(如Servlet、JSP)之前或之后对请求和响应进行处理。本练习5(Exercise5)专注于过滤器的使用,通过代码实现和作业报告来深入理解这...

    cas无过滤器 j2ee系统接入示例

    这个示例提供的代码工程中,关键在于`CasValidate`类,它是实现无过滤器CAS验证的核心。`CasValidate`类会模拟Filter的功能,负责与CAS服务器通信,验证用户的身份。当你导入工程到Eclipse并运行后,可以观察`main ...

    J2EE 5 中文API

    Servlet 2.5规范带来了许多改进,包括更灵活的过滤器链、更强大的会话管理以及对HTTP方法的支持。这些改进使开发动态Web应用程序变得更加方便。 **7. CDI(Contexts and Dependency Injection)的前身** J2EE 5虽然...

    J2EE_1.5_API中文帮助文档.chm(完全可用)

    在1.5版本中,Servlet 2.4规范引入了包括过滤器(Filter)和监听器(Listener)在内的增强功能,使开发者可以更灵活地控制请求和响应流程。 2. **JSP(JavaServer Pages)**:JSP是用于创建动态网页的Java技术。JSP...

    J2EE中文问题终极解决之道

    8. **过滤器处理**:在Servlet过滤器中设置`request.setCharacterEncoding("UTF-8")`,以确保从浏览器接收的请求被正确地转化为UTF-8。 9. **JSP与HTML声明**:在JSP页面头部声明`;charset=UTF-8"%&gt;`,以及HTML的`...

    过滤器Filter的全面解析

    在Java的Web开发中,过滤器(Filter)是不可或缺的一部分,尤其在J2EE环境中,它扮演着重要的角色。过滤器提供了一种机制,可以对HTTP请求和响应进行拦截、处理,甚至修改,从而实现诸如数据校验、权限控制、字符...

    J2EE JAR包(J2EE1.3 J2EE1.4 J2EE5.0 )

    1. **Servlet 2.4规范**:进一步优化了过滤器和监听器,增强了安全性。 2. **JSP 2.0和EL 1.0**:提升了JSP的开发效率,EL可以与JSF(JavaServer Faces)结合使用。 3. **EJB 2.1**:引入了Session Bean的无状态会话...

    HttpIpModifier:用于从正确的 HTTP 标头读取请求 ip 的 J2EE HTTP 过滤器

    用于从正确的 HTTP 标头读取请求 ip 的 J2EE HTTP 过滤器。 它可以做什么 当你在 Nginx 或其他前端服务器后面部署你的 web 应用程序时,http 头中的 ip 值将是前端服务器的 ip 而不是客户端的 ip,这显然不是我们想...

    j2ee 笔记 j2ee 笔记 j2ee 笔记

    过滤器用于拦截客户端请求,并对请求或响应进行预处理或后处理。它可以实现功能如身份验证、日志记录等。 示例代码: ```java public class AuthFilter implements Filter { public void doFilter(ServletRequest ...

    非常简单的J2EE购物车

    8. **过滤器和监听器**:在J2EE应用中,过滤器(Filter)可以用来拦截和修改请求或响应,监听器(Listener)用于监听特定事件,如会话的创建和销毁。这些组件可以用来实现功能,如登录验证、权限控制和会话超时提醒...

    J2EE中文帮助文档

    在J2EE 5.0中,Servlet 2.5规范被采纳,提供了更多的生命周期方法、过滤器和监听器支持,以实现更灵活的Web应用架构。 - **JSP**:JSP是一种动态网页技术,允许开发者在HTML页面中嵌入Java代码,简化了视图层的开发...

    Sun_Core J2EE Patterns.pdf

    - **中央逻辑集中化**:将常用的服务(如数据编码检查、日志记录等)集中在过滤器中处理,避免了代码重复和冗余。 - **易于添加或移除服务**:过滤器的设计使得新服务的添加或旧服务的移除变得更加容易,不会影响到...

    j2ee论坛代码

    过滤器是J2EE中的一种机制,它允许在请求到达目标Servlet或JSP之前进行拦截和处理。在论坛应用中,过滤器可能用于实现权限控制、数据验证、日志记录等功能。例如,登录过滤器可以检查用户是否已登录,如果未登录则...

    J2EE考试复习材料

    过滤器是J2EE应用程序中的一个组件,用于拦截和处理用户请求。我们可以开发一个过滤器来显示一个JSP页面的执行时间。 十二、JavaBean DatabaseBean JavaBean DatabaseBean是一个简单的JavaBean,用于连接数据库并...

    j2ee常见面试问题

    过滤器在J2EE应用中扮演着预处理和后处理请求的角色,它们可以在请求到达Servlet或JSP之前进行拦截,也可以在响应返回给客户端之后进行处理。过滤器实现了`java.servlet.Filter`接口,主要方法有: - `init...

Global site tag (gtag.js) - Google Analytics