`

SSH 中文过滤器

阅读更多
<!-- web.xml 中的过滤器配置,过滤中文 -->  
	<filter>
	    <filter-name>CharacterEncoding</filter-name>
	    <filter-class>
	      com.itJob.wit.util.SetCharacterEncodingFilter
	    </filter-class>
	    <init-param>
	      <param-name>encoding</param-name>
	      <param-value>UTF-8</param-value>
	    </init-param>
	    <init-param>
	      <param-name>ignore</param-name>
	      <param-value>true</param-value>
	    </init-param>
	  </filter>
	  <filter-mapping>
	    <filter-name>CharacterEncoding</filter-name>
	    <url-pattern>/*</url-pattern>
	</filter-mapping>  








package com.itJob.wit.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;

/**
 * 描述:中文过滤器
 * @author TEAMWORK
 * <p>
 */
public class SetCharacterEncodingFilter implements Filter {
	protected String encoding = null;
	protected FilterConfig filterConfig = null;
	protected boolean ignore = true;

	public void destroy() {
		this.encoding = null;
		this.filterConfig = null;
	}

	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		if (ignore && (request.getCharacterEncoding() == null)) {
			String encoding = selectEncoding(request);
			if (encoding != null) {
				request.setCharacterEncoding(encoding);
			}
		}

		chain.doFilter(request, response);
	}

	public void init(FilterConfig request) throws ServletException {
		this.filterConfig = request;
		this.encoding = filterConfig.getInitParameter("encoding");
		String value = filterConfig.getInitParameter("ignore");

		if (value == null) {
			this.ignore = true;
		} else if (value.equalsIgnoreCase("true")) {
			this.ignore = true;
		} else if (value.equalsIgnoreCase("yes")) {
			this.ignore = true;
		} else {
			this.ignore = false;
		}
	}

	protected String selectEncoding(ServletRequest request) {
		return (this.encoding);
	}
}
分享到:
评论

相关推荐

    ssh框架乱码过滤器Filter

    本篇文章将详细探讨SSH框架中的中文乱码问题,以及如何通过实现自定义过滤器(Filter)来解决这一问题。 首先,我们要理解乱码的产生原因。在HTTP请求中,数据编码格式不一致是导致乱码的主要因素。例如,客户端...

    SSH框架解决中文乱码

    - **Filter**:通过编写自定义的过滤器(Filter)来统一设置请求和响应的字符集。 - **代码实现**: ```java package com.yourcompany.filter; import java.io.IOException; import javax.servlet.Filter; ...

    SSH Demo(有中文注释)

    7. **过滤器(Filters)**:可能包含Spring的安全过滤器,如`DelegatingFilterProxy`,用于拦截请求并进行权限控制。 由于文件列表只给出了"SSH",具体示例中的文件名可能还需要根据实际情况来解析。这个Demo不仅...

    关于SSH中文乱码的一个小总结.doc

    本文将总结解决SSH中文乱码问题的方法,主要涉及到spring的编码过滤器、struts.properties配置、MyEclipse工程属性设置等方面。 一、 Spring 的编码过滤器 Spring提供了一个CharacterEncodingFilter来解决中文乱码...

    处理Java的ssh集成中的中文乱码问题

    #### 一、使用过滤器解决中文乱码 **1. 创建自定义过滤器** 首先,我们需要创建一个实现了`javax.servlet.Filter`接口的类`Myfile`。在这个类中,我们将重写`doFilter()`方法来设置请求和响应的字符编码为“GBK”...

    jsp中FilterDome(乱码过滤器源代码)

    在SSH框架中,`FilterDome`可以作为全局过滤器配置在web.xml中,对所有请求生效。它可以确保无论哪个控制器处理请求,都能正确处理字符编码,避免乱码问题。通常,我们需要在Struts2的配置文件中,通过拦截器栈配置...

    关于MyEclipse5.5合成SSH后出现中文乱码的问题解决方法之一

    为了解决这个问题,开发者尝试了多种常见方法,如设置项目、数据库连接、页面编码为UTF-8,甚至添加字符编码过滤器,但这些都没有效果。这表明问题可能并不出在常规的编码设置上,而是其他因素导致的。 进一步分析...

    超强过滤器彻底解决JSP-SERVLET中文参数GET-POST传递的问题(转)

    总结,"超强过滤器"是解决JSP-Servlet之间中文参数GET-POST传递问题的有效手段,通过统一设定请求的字符编码,确保在整个Web应用中中文数据能够正确无误地传输和处理。对于大型项目,这样的全局解决方案可以大大提升...

    SSH+mysql开发字符集问题

    3. **Web应用配置**:在`web.xml`文件中,需要添加一个字符编码过滤器。 **示例代码**: ```xml &lt;!-- 添加一个编码过滤器 --&gt; &lt;filter-name&gt;encodingFilter &lt;filter-class&gt;org.springframework.web.filter....

    SSHA环境的搭建.doc

    六、配置中文编码过滤器 在`web.xml`中添加`CharacterEncodingFilter`,确保所有请求和响应都使用UTF-8编码,避免乱码问题。 七、拆分Struts配置文件 为了便于管理和维护,可以将`struts-config.xml`拆分为多个文件...

    SSH下mysql中文乱码问题.docx

    解决这个问题需要从多方面入手,包括配置 Hibernate 的连接参数、修改 Spring 里的数据库连接、配置 encodingFilter 过滤器、 MySQL 库表编码和 JSP 页面编码形式等。 首先,在 Hibernate 的配置文件 hibernate.cfg...

    ssh整合web导出excel案例

    - **web.xml配置**:启动Spring容器,配置Struts2过滤器,确保请求被正确拦截和处理。 4. **源代码**: - **Action**:处理用户的导出请求,调用Service层的方法,将数据转换为Excel格式并返回给客户端。 - **...

    SSH项目的实现步骤(很详细)

    - 修改`web.xml`配置:删除旧的Struts配置,添加字符过滤器`CharFilter`,用于统一处理请求和响应的字符编码,防止乱码问题。 - 编写`CharFilter.java`:定义过滤器类,实现`Filter`接口,设置字符集,并在`...

    ssh架构的构建

    - **解决中文乱码问题**:通过配置`web.xml`中的过滤器来设置请求编码为UTF-8,以解决可能出现的中文乱码问题。 - **配置DAO层**:建立DAO接口,并实现相应的业务逻辑。一般情况下,一个表对应一个DAO接口,其中可以...

    一个ssh项目的开发笔记

    - 复制示例项目的Struts2核心过滤器代码。 - 需要注意不同版本之间的兼容性问题。 - **配置struts.xml:** - 开发模式配置,通常设置为`true`,便于调试。 - 扩展名为.action,这是Struts2默认的URL扩展方式。 ...

    ssh框架实现上传上载

    写的比较简陋,,基于struts1.2+spring2.0+hibernate3.1框架 基本功能: 注册,登陆,validate框架验证,文件上传,下载,简单过滤器,权限限制,下载列表查看,下载历史记录查看 未处理中文,所有jar包...

    SSH和SSI等框架常用基础配置web.xml

    **解析**:这里定义了一个字符编码过滤器,主要用于解决中文乱码问题。`CharacterEncodingFilter`设置请求和响应的编码方式为`utf-8`。`&lt;url-pattern&gt;/*&lt;/url-pattern&gt;`表示该过滤器应用于所有请求路径。 #### 四、...

    ssh整合web导出excel案例.docx

    - **Struts2配置**:定义Action类及其关联的Result,配置过滤器以启动Struts2框架。 - **web.xml配置**:配置Spring的ApplicationContext监听器和Struts2的过滤器。 4. **源代码** - **Action代码**:包含导出...

    ssh集成步骤

    该过滤器主要用于解决中文乱码问题,确保客户端发送的数据能够正确地被服务器端解析。 示例`EncodingFilter.java`代码: ```java package com.filter; import javax.servlet.*; import java.io.IOException; ...

Global site tag (gtag.js) - Google Analytics