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>
分享到:
相关推荐
本示例通过使用过滤器(Filter)来解决这个问题,确保了数据在传输过程中的正确编码,从而避免乱码。 1. **Struts2.0框架介绍** Struts2.0是一个基于MVC设计模式的Java Web框架,它整合了WebWork和Struts1的优点,...
本文将详细讲解如何通过设置字符编码过滤器(`SetCharacterEncodingFilter`)来解决这一问题,同时深入理解字符编码的原理以及在实际应用中的配置方法。 字符编码是计算机处理文本的一种方式,它将字符与数字对应...
页面开发时经常会出现中文乱码问题,需要我们对编码进行转换。手工转换很麻烦,写个过滤器就好多了。
过滤器可以拦截请求,对请求或响应进行修改,比如登录检查、字符编码转换等。在Struts2中,`FilterDispatcher`(在较新版本中被`StrutsPrepareAndExecuteFilter`取代)是核心过滤器,它负责将请求路由到合适的Action...
在web.xml中添加此过滤器并配置为全局过滤器,可以确保所有请求都使用UTF-8编码,避免乱码问题。 5. **Struts2详解**: Struts2框架的核心包括Action、Interceptor(拦截器)、Result和Value Stack等组件。Action...
Struts框架中的ActionForm乱码问题以及Servlet全局过滤器的转义编码处理是Java Web开发中常见的字符编码问题。在开发基于Struts的Web应用时,乱码主要出现在三个方面:页面显示乱码、参数传递乱码以及国际化资源文件...
在深入了解如何通过Struts2框架中的Servlet过滤器解决字符编码问题之前,我们先简要回顾一下字符编码的基本概念。字符编码是将计算机内部二进制数据转换为人类可读的文字的过程。常见的字符编码方式包括ASCII、GBK、...
Servlet Filter(过滤器)是Servlet API的一部分,它允许开发者在请求被Servlet处理之前或之后对请求和响应进行拦截和修改。Filter可以用来实现如登录验证、字符编码转换、日志记录等多种功能。当一个请求到达Web...
- 过滤器主要用于预处理请求或后处理响应,例如验证用户登录状态、设置字符编码、过滤敏感词汇等。过滤器通常是对请求和响应进行统一处理,不涉及业务逻辑。 2. **拦截器**: - 拦截器则更加灵活,它不仅可以实现...
本示例中的“通用过滤器filter”是专门为Struts2设计的,用于增强应用的安全性和功能性。 过滤器(Filter)在Java Servlet规范中定义,是基于请求/响应模型工作的。它们通过实现`javax.servlet.Filter`接口,并重写...
过滤器主要用于数据转换、编码、安全检查等。 2. 拦截器与过滤器的区别 - **工作范围**:拦截器作用于Action层面,而过滤器作用于整个Web应用。 - **执行流程**:拦截器遵循“先调用后返回”的原则,即先调用所有...
在实际开发中,你可以根据项目需求创建更多的过滤器,如CSRF防护、URL编码解码、字符集转换等,以增强应用的安全性和用户体验。同时,过滤器可以按照指定的顺序进行组合和调用,以满足更复杂的业务场景。
在Struts2的配置文件(struts.xml)中,我们可以添加一个全局拦截器链(interceptors)或过滤器链(filters)。以下是一个配置示例: ```xml <filter-name>charsetFilter <filter-class>...
1. **添加过滤器**:首先,我们需要在Web应用的`web.xml`文件中添加一个`CharacterEncodingFilter`,这个过滤器会在请求进入控制器之前设置正确的字符编码。 ```xml <filter-name>characterEncodingFilter ...
在`web.xml`文件中配置编码过滤器,可以统一处理整个Web应用的请求和响应编码,确保所有数据都在同一编码格式下处理。Struts2框架提供了`struts2-rest-plugin`,它内置了处理编码的过滤器。但在某些情况下,可能需要...
本项目中的过滤器可能解决了中文乱码问题,这通常是通过设置字符编码过滤器实现的,例如`CharacterEncodingFilter`,确保请求和响应都使用正确的字符编码,如UTF-8。 4. **中文乱码问题**:在处理中文字符时,如果...
Java Servlet过滤器是Java Web应用程序中的重要组件,它在请求被Servlet处理之前和响应返回给客户端之后进行拦截,可以用于实现各种功能,如字符编码转换、URL重写、权限控制等。本篇将深入讲解Java Servlet过滤器的...
4. **配置文件**:通过struts.xml配置文件,定义Action、拦截器和结果类型的关系。 将Hibernate与Struts2结合,可以轻松实现添删改查功能: 1. **添加(Create)**:在Action类中创建一个新的Java对象,设置其属性...