1. Servlet过滤器基础
Servlet过滤器是Servlet的一种特殊用法,主要用来完成一些通用的操作。比如编码的过滤,判断用户的登陆状态等等。Servlet过滤器的适用场合:
A.认证过滤
B.登录和审核过滤
C.图像转换过滤
D.数据压缩过滤
E.加密过滤
F.令牌过滤
G.资源访问触发事件过滤
Servlet过滤器接口的构成:
所有的Servlet过滤器类都必须实现javax.servlet.Filter接口。这个接口含有3个过滤器类必须实现的方法:
方法 说明
init(FilterConfig cfg) 这是Servlet过滤器的初始化方法,性质等同与servlet的init方法。
doFilter(ServletRequest,ServletResponse,FilterChain) 完成实际的过滤操作,当请求访问过滤器关联的URL时,Servlet容器将先调用过滤器的doFilter方法。FilterChain参数用于访问后续过滤器
destroy() Servlet容器在销毁过滤器实例前调用该方法,这个方法中可以释放Servlet过滤器占用的资源。,性质等同与servlet的destory()方法。
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的过滤器代码”表明我们将讨论如何在实际项目中编写和使用过滤器。过滤器是通过实现javax.servlet.Filter接口并定义三个关键方法来创建的:doFilter(), init()和destroy()。 1. **doFilter()**:这是过滤...
在深入分析《论文研究-管道、过滤器和MVC软件体系模式在J2EE中的应用.pdf》这篇文章之前,需要先理解几个核心概念:软件体系构架、管道和过滤器以及MVC模式。 软件体系构架(Software Architecture)是指软件系统的...
本文将深入解析J2EE过滤器Filter的使用方法,并通过实例来阐述其工作原理。 过滤器在J2EE环境中扮演着预处理和后处理的角色,它可以拦截进入和离开Web应用程序的请求和响应,对数据进行处理或验证,从而提供诸如...
NULL 博文链接:https://1601844782.iteye.com/blog/2274023
在J2EE开发中,过滤器(Filter)是核心组件之一,它允许开发者在请求到达目标资源(如Servlet、JSP)之前或之后对请求和响应进行处理。本练习5(Exercise5)专注于过滤器的使用,通过代码实现和作业报告来深入理解这...
这个示例提供的代码工程中,关键在于`CasValidate`类,它是实现无过滤器CAS验证的核心。`CasValidate`类会模拟Filter的功能,负责与CAS服务器通信,验证用户的身份。当你导入工程到Eclipse并运行后,可以观察`main ...
Servlet 2.5规范带来了许多改进,包括更灵活的过滤器链、更强大的会话管理以及对HTTP方法的支持。这些改进使开发动态Web应用程序变得更加方便。 **7. CDI(Contexts and Dependency Injection)的前身** J2EE 5虽然...
在1.5版本中,Servlet 2.4规范引入了包括过滤器(Filter)和监听器(Listener)在内的增强功能,使开发者可以更灵活地控制请求和响应流程。 2. **JSP(JavaServer Pages)**:JSP是用于创建动态网页的Java技术。JSP...
8. **过滤器处理**:在Servlet过滤器中设置`request.setCharacterEncoding("UTF-8")`,以确保从浏览器接收的请求被正确地转化为UTF-8。 9. **JSP与HTML声明**:在JSP页面头部声明`;charset=UTF-8"%>`,以及HTML的`...
在Java的Web开发中,过滤器(Filter)是不可或缺的一部分,尤其在J2EE环境中,它扮演着重要的角色。过滤器提供了一种机制,可以对HTTP请求和响应进行拦截、处理,甚至修改,从而实现诸如数据校验、权限控制、字符...
1. **Servlet 2.4规范**:进一步优化了过滤器和监听器,增强了安全性。 2. **JSP 2.0和EL 1.0**:提升了JSP的开发效率,EL可以与JSF(JavaServer Faces)结合使用。 3. **EJB 2.1**:引入了Session Bean的无状态会话...
用于从正确的 HTTP 标头读取请求 ip 的 J2EE HTTP 过滤器。 它可以做什么 当你在 Nginx 或其他前端服务器后面部署你的 web 应用程序时,http 头中的 ip 值将是前端服务器的 ip 而不是客户端的 ip,这显然不是我们想...
过滤器用于拦截客户端请求,并对请求或响应进行预处理或后处理。它可以实现功能如身份验证、日志记录等。 示例代码: ```java public class AuthFilter implements Filter { public void doFilter(ServletRequest ...
8. **过滤器和监听器**:在J2EE应用中,过滤器(Filter)可以用来拦截和修改请求或响应,监听器(Listener)用于监听特定事件,如会话的创建和销毁。这些组件可以用来实现功能,如登录验证、权限控制和会话超时提醒...
在J2EE 5.0中,Servlet 2.5规范被采纳,提供了更多的生命周期方法、过滤器和监听器支持,以实现更灵活的Web应用架构。 - **JSP**:JSP是一种动态网页技术,允许开发者在HTML页面中嵌入Java代码,简化了视图层的开发...
- **中央逻辑集中化**:将常用的服务(如数据编码检查、日志记录等)集中在过滤器中处理,避免了代码重复和冗余。 - **易于添加或移除服务**:过滤器的设计使得新服务的添加或旧服务的移除变得更加容易,不会影响到...
过滤器是J2EE中的一种机制,它允许在请求到达目标Servlet或JSP之前进行拦截和处理。在论坛应用中,过滤器可能用于实现权限控制、数据验证、日志记录等功能。例如,登录过滤器可以检查用户是否已登录,如果未登录则...
过滤器是J2EE应用程序中的一个组件,用于拦截和处理用户请求。我们可以开发一个过滤器来显示一个JSP页面的执行时间。 十二、JavaBean DatabaseBean JavaBean DatabaseBean是一个简单的JavaBean,用于连接数据库并...
过滤器在J2EE应用中扮演着预处理和后处理请求的角色,它们可以在请求到达Servlet或JSP之前进行拦截,也可以在响应返回给客户端之后进行处理。过滤器实现了`java.servlet.Filter`接口,主要方法有: - `init...