`
秀才的梦想
  • 浏览: 18844 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
最近访客 更多访客>>
社区版块
存档分类
最新评论

Struts编码过滤器

阅读更多

Struts必用...存一下

首先,建JAVA类...

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.UnavailableException;

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 {

		// Conditionally select and set the character encoding to be used
		if (ignore || (request.getCharacterEncoding() == null)) {
			String encoding = selectEncoding(request);
			if (encoding != null)
				request.setCharacterEncoding(encoding);
		}

		// Pass control on to the next filter
		chain.doFilter(request, response);
	}

	public void init(FilterConfig filterConfig) throws ServletException {

		this.filterConfig = filterConfig;
		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);
	}
}

 

其次,配置web.xml

<filter>
		<filter-name>Set Character Encoding</filter-name>
		<filter-class>
			com.dbf.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>Set Character Encoding</filter-name>
		<servlet-name>*.jsp</servlet-name>
	</filter-mapping>
	<filter-mapping>
		<filter-name>Set Character Encoding</filter-name>
		<servlet-name>action</servlet-name>
	</filter-mapping>

 

分享到:
评论

相关推荐

    struts2.0字符编码使用过滤器

    本示例通过使用过滤器(Filter)来解决这个问题,确保了数据在传输过程中的正确编码,从而避免乱码。 1. **Struts2.0框架介绍** Struts2.0是一个基于MVC设计模式的Java Web框架,它整合了WebWork和Struts1的优点,...

    【Struts】设置字符编码过滤器,解决乱码问题收藏

    本文将详细讲解如何通过设置字符编码过滤器(`SetCharacterEncodingFilter`)来解决这一问题,同时深入理解字符编码的原理以及在实际应用中的配置方法。 字符编码是计算机处理文本的一种方式,它将字符与数字对应...

    struts2过滤器代码

    页面开发时经常会出现中文乱码问题,需要我们对编码进行转换。手工转换很麻烦,写个过滤器就好多了。

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

    过滤器可以拦截请求,对请求或响应进行修改,比如登录检查、字符编码转换等。在Struts2中,`FilterDispatcher`(在较新版本中被`StrutsPrepareAndExecuteFilter`取代)是核心过滤器,它负责将请求路由到合适的Action...

    struts2技巧,笔记.zip指定404,500页面 utf-8过滤器 防SQL注入 解决乱码

    在web.xml中添加此过滤器并配置为全局过滤器,可以确保所有请求都使用UTF-8编码,避免乱码问题。 5. **Struts2详解**: Struts2框架的核心包括Action、Interceptor(拦截器)、Result和Value Stack等组件。Action...

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

    Struts框架中的ActionForm乱码问题以及Servlet全局过滤器的转义编码处理是Java Web开发中常见的字符编码问题。在开发基于Struts的Web应用时,乱码主要出现在三个方面:页面显示乱码、参数传递乱码以及国际化资源文件...

    解决字符编码的过滤器

    在深入了解如何通过Struts2框架中的Servlet过滤器解决字符编码问题之前,我们先简要回顾一下字符编码的基本概念。字符编码是将计算机内部二进制数据转换为人类可读的文字的过程。常见的字符编码方式包括ASCII、GBK、...

    tomcat、struts2、servlet Filter(过滤器) 工作原理

    Servlet Filter(过滤器)是Servlet API的一部分,它允许开发者在请求被Servlet处理之前或之后对请求和响应进行拦截和修改。Filter可以用来实现如登录验证、字符编码转换、日志记录等多种功能。当一个请求到达Web...

    struts2过滤器和拦截器的区别分析

    - 过滤器主要用于预处理请求或后处理响应,例如验证用户登录状态、设置字符编码、过滤敏感词汇等。过滤器通常是对请求和响应进行统一处理,不涉及业务逻辑。 2. **拦截器**: - 拦截器则更加灵活,它不仅可以实现...

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

    本示例中的“通用过滤器filter”是专门为Struts2设计的,用于增强应用的安全性和功能性。 过滤器(Filter)在Java Servlet规范中定义,是基于请求/响应模型工作的。它们通过实现`javax.servlet.Filter`接口,并重写...

    struts03:拦截器、过滤器与拦截器的区别、文件上传

    过滤器主要用于数据转换、编码、安全检查等。 2. 拦截器与过滤器的区别 - **工作范围**:拦截器作用于Action层面,而过滤器作用于整个Web应用。 - **执行流程**:拦截器遵循“先调用后返回”的原则,即先调用所有...

    struts过滤器

    在实际开发中,你可以根据项目需求创建更多的过滤器,如CSRF防护、URL编码解码、字符集转换等,以增强应用的安全性和用户体验。同时,过滤器可以按照指定的顺序进行组合和调用,以满足更复杂的业务场景。

    ssh框架乱码过滤器Filter

    在Struts2的配置文件(struts.xml)中,我们可以添加一个全局拦截器链(interceptors)或过滤器链(filters)。以下是一个配置示例: ```xml &lt;filter-name&gt;charsetFilter &lt;filter-class&gt;...

    struts中文乱码问题解决详细步骤

    1. **添加过滤器**:首先,我们需要在Web应用的`web.xml`文件中添加一个`CharacterEncodingFilter`,这个过滤器会在请求进入控制器之前设置正确的字符编码。 ```xml &lt;filter-name&gt;characterEncodingFilter ...

    struts2中的编码问题

    在`web.xml`文件中配置编码过滤器,可以统一处理整个Web应用的请求和响应编码,确保所有数据都在同一编码格式下处理。Struts2框架提供了`struts2-rest-plugin`,它内置了处理编码的过滤器。但在某些情况下,可能需要...

    一个集成了分页和过滤器的struts web小项目

    本项目中的过滤器可能解决了中文乱码问题,这通常是通过设置字符编码过滤器实现的,例如`CharacterEncodingFilter`,确保请求和响应都使用正确的字符编码,如UTF-8。 4. **中文乱码问题**:在处理中文字符时,如果...

    Java servlet过滤器配置详解

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

    hibernate+struts2实现添删改查

    4. **配置文件**:通过struts.xml配置文件,定义Action、拦截器和结果类型的关系。 将Hibernate与Struts2结合,可以轻松实现添删改查功能: 1. **添加(Create)**:在Action类中创建一个新的Java对象,设置其属性...

Global site tag (gtag.js) - Google Analytics