`
Java_Fan
  • 浏览: 81723 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

通过实现 Filter 接口进行项目全局编码控制

 
阅读更多

废话不多说,直接给代码:

/**
 * 
 */
package com.adam.dev.utils;

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;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * @author adam.胡升阳
 * 创建日期 2011-5-4
 */
public class EncoderFilter implements Filter {
	private String encoding;
	
	public void init(FilterConfig config) throws ServletException {
		encoding = config.getInitParameter("Encoding");
	}
	
	/*
	 *设置数据请求响应编码格式为GBK
	 */
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		HttpServletRequest req = (HttpServletRequest)request;
		HttpServletResponse res = (HttpServletResponse)response;
		res.setContentType("text/html");
		req.setCharacterEncoding(encoding);
		res.setCharacterEncoding(encoding);
		chain.doFilter(req, res);
	}
	
	public void destroy() {
		//	 TODO Auto-generated method stub
	}

}

web.xml中配置filter如下即可:

<!-- 自定义Filter设置系统全局字符编码 -->
  	<filter>
		<filter-name>encodeFilter</filter-name>
		<filter-class>
			com.adam.dev.utils.EncoderFilter
		</filter-class>
		<init-param>
			<param-name>Encoding</param-name>
	     	<param-value>GBK</param-value>
		</init-param>
	</filter>
	<!-- 设定为全局过滤 -->
	<filter-mapping>
		<filter-name>encodeFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	

大家注意了,这个init-param标签中的param-value 就由你自己配置了,想搞成什么编码格式就是改一改而已!


分享到:
评论

相关推荐

    JavaEE Filter全局编码过滤器

    JavaEE Filter全局编码过滤器是Java企业版(JavaEE)中的一个重要组件,它在Web应用程序中扮演着数据处理和预处理的角色。Filter是Java Servlet规范的一部分,允许开发者在请求到达Servlet之前或者响应离开Servlet...

    STRUTS ActionForm乱码,servlet全局过滤器转义编码。

    创建一个实现了`javax.servlet.Filter`接口的类,如`CharacterEncodingFilter`,并在`doFilter`方法中设置请求和响应的编码为UTF-8: ```java public void doFilter(ServletRequest request, ServletResponse ...

    Filter过滤器的代码及其web.xml配置代码

    在Java Web开发中,Filter(过滤器)是一个非常重要的组件,它允许我们在数据处理之前或之后执行特定的任务,比如防止跨站脚本攻击(XSS)、处理字符编码问题、实现权限控制等。在这个主题中,我们将深入理解Filter的...

    字符编码过滤器 字符编码转换 post字符转换

    J2EE标准提供了多种方式来设置字符编码,包括在web.xml配置文件中设置全局编码、在Servlet或Filter中通过HttpServletRequest和HttpServletResponse接口的setCharacterEncoding()方法来设置请求和响应的编码,或者...

    Filter过滤器文档

    在Servlet API中,Filter接口是实现过滤器功能的基础。开发者需要自定义一个类去实现Filter接口,这个类即为Filter程序。Filter接口定义了以下三个关键方法: 1. `init(FilterConfig filterConfig)`: 这个方法在web...

    filter+listener.pdf

    - **作用**:过滤器常用于执行全局性的任务,例如验证用户是否已登录、对请求或响应进行编码转换,以及防止恶意输入等。 2. **Filter的快速入门** - **实现方式**:可以通过在`web.xml`中配置或使用注解来定义...

    开发一个简单filter的例子

    - **自定义接口的实现:**根据需要,可以定义额外的接口来扩展filter的功能,例如音频解码、视频编码等。 - **属性页的实现:**允许用户在GraphEdit中调整filter参数的界面。 - **版权保护信息:**通常包含在文档或...

    结合struts2编写的通用过滤器filter

    它们通过实现`javax.servlet.Filter`接口,并重写`doFilter()`方法来实现对HTTP请求的拦截。在Web.xml配置文件中,我们可以通过`&lt;filter&gt;`和`&lt;filter-mapping&gt;`元素定义过滤器及其映射,以指定哪些请求需要被过滤。 ...

    java 请求参数过滤拦截

    通过实现Filter接口并重写doFilter方法,我们可以定义自定义的过滤逻辑。 针对描述中提到的"特殊字符"过滤,以下是一些常见的处理策略: 1. **SQL注入防御**:对所有涉及数据库查询的参数进行检查,禁止包含SQL...

    Filter和Listener

    实现Filter需要创建一个实现了`javax.servlet.Filter`接口的类,并在`web.xml`中进行配置。Filter中的主要方法包括`init()`、`doFilter()`和`destroy()`,其中`doFilter()`是最核心的方法,用于实际的过滤逻辑。 ##...

    带filter的留言板 参数读写

    首先,`Filter`是Servlet规范的一部分,它通过实现`javax.servlet.Filter`接口来创建自定义过滤器。在`web.xml`配置文件中,我们可以定义多个过滤器,并为它们指定URL模式,这样当特定的HTTP请求匹配到这些模式时,...

    ssh框架乱码过滤器Filter

    创建一个自定义过滤器,我们首先要继承`javax.servlet.Filter`接口,并实现其`doFilter()`方法。在该方法中,我们需要获取到请求(HttpServletRequest)和响应(HttpServletResponse),然后设定合适的字符编码。...

    基于Jsp+Tomcat+Servlet+Filter的超市管理系统.zip

    在本系统中,JSP通常作为视图,Servlet充当控制器,而模型可能由自定义的Java类实现,它们之间通过请求和响应进行交互。 6. 数据库连接与管理:系统很可能使用了数据库(如MySQL、Oracle等)来存储商品信息、库存...

    servlet 编码

    通过实现Servlet接口或继承HttpServlet类,我们可以创建自定义的Servlet。 二、Servlet编码流程 1. 创建Servlet类:通常,我们会继承HttpServlet类,覆盖doGet()和doPost()方法,以处理HTTP GET和POST请求。 ```...

    SpringBoot之Filter和Listener简单运用.rar

    在Java Web开发中,Filter是一个实现了javax.servlet.Filter接口的类,它允许我们在请求被Servlet处理之前和之后进行拦截。Spring Boot通过`@WebFilter`注解或在配置类中注册Filter,使我们能够轻松地定义和管理过滤...

    JavaEE 编码规范

    1. **代码审查**:确保代码符合编码规范,并通过代码审查。 2. **单元测试**:每个模块都需要编写单元测试用例,确保模块功能正确无误。 3. **文档齐全**:提供完整的API文档、用户手册等相关文档。 4. **版本管理**...

    Web项目最基本的架构

    7. **com.web.filter**:过滤器包,包含实现了Filter接口的类,用于实现请求和响应的预处理和后处理,如字符编码过滤、登录验证等。 8. **com.web.servlet**:Servlet包,通过Web.xml配置文件,实现各种服务和功能...

    C++融合gps、imu和编码器传感器,以进行准确的状态估计.rar

    本项目以"C++融合gps、imu和编码器传感器,以进行准确的状态估计"为主题,揭示了如何利用C++编程语言,集成GPS(全球定位系统)、IMU(惯性测量单元)和编码器传感器的数据,实现高效、精确的状态估计。 GPS传感器...

    过滤器 Struts2全局变量 action转化do

    1. **过滤器(Filter)**:在Java Web开发中,过滤器是Servlet API的一部分,通过实现javax.servlet.Filter接口来创建。过滤器可以拦截请求,对请求或响应进行修改,比如登录检查、字符编码转换等。在Struts2中,`...

    23种设计模式的Java实现

    在Java中,可以通过工厂接口和具体的工厂实现类来实现。 4. **建造者模式(Builder)**:将复杂对象的构建与其表示分离,使同样的构建过程能创建不同的表示。Java中,可以使用Director类来指导Builder类构建产品。 ...

Global site tag (gtag.js) - Google Analytics