//生成自己的过滤器
package org.perfect.struts.filters;
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.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ChineseFilter extends HttpServlet implements Filter {
private FilterConfig filterConfig;
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) {
try {
String encoding=filterConfig.getInitParameter("encoding");//从WEB.xml配置文件中取出参数,这样我们可以通过配置修改编码格式.
request.setCharacterEncoding(encoding);//设置请求的编码格式
System.out.println(encoding);
filterChain.doFilter(request, response);
} catch (ServletException sx) {
filterConfig.getServletContext().log(sx.getMessage());
} catch (IOException iox) {
filterConfig.getServletContext().log(iox.getMessage());
}
}
public void destroy() {
}
protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
super.doGet(arg0, arg1);
}
protected void doPost(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
super.doPost(arg0, arg1);
}
}
===============================
在web.xml中做结扎.
<filter>
<filter-name>ChineseFilter</filter-name>
<filter-class>org.perfect.struts.filters.ChineseFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>ChineseFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
=================================
jsp中
<%@ page contentType="text/html; charset=GBK" language="java" %>
分享到:
相关推荐
页面开发时经常会出现中文乱码问题,需要我们对编码进行转换。手工转换很麻烦,写个过滤器就好多了。
中文乱码问题很头疼,但一个好的过滤器就可以解决问题啦
Struts2提供了一个名为`ActionContextCleanUp`的过滤器,它负责清理ActionContext,确保请求处理过程中使用的字符集是UTF-8。在web.xml中添加此过滤器并配置为全局过滤器,可以确保所有请求都使用UTF-8编码,避免...
Struts框架中的ActionForm乱码问题以及Servlet全局过滤器的转义编码处理是Java Web开发中常见的字符编码问题。在开发基于Struts的Web应用时,乱码主要出现在三个方面:页面显示乱码、参数传递乱码以及国际化资源文件...
通过这些配置,大部分Struts中文乱码问题都能得到解决。但有时,问题可能源自于其他因素,比如静态资源(如CSS、JavaScript文件)的编码设置,或者是第三方库的编码处理不当。因此,排查问题时需全方位考虑,确保每...
Struts 是一个经典的Java Web框架...通过这个小项目,初学者可以了解到一个完整的Java Web应用的基本结构,学习如何在Struts框架下实现分页和过滤器,以及如何处理中文乱码问题,这些都是实际开发中常见的需求和挑战。
这些过滤器各有用途,例如`TilesFilter`用于处理Struts2的Tiles视图定义,`OpenSessionInViewFilter`则在请求结束时确保数据库会话关闭,防止长时间打开的连接导致资源浪费。 在实际项目中,过滤器可以组合使用,...
总结来说,解决Struts下的汉字乱码问题,需要从页面、过滤器、服务器配置和Struts核心Servlet等多方面进行设置,确保在整个请求生命周期中,中文字符始终以正确的编码进行处理。这不仅涉及了前端的展示,还涉及到...
在Struts1中,核心控制器是`ActionServlet`,而Struts2则采用了过滤器(Filter)的设计模式来实现控制器功能。`FilterDispatcher`作为一个过滤器,其主要职责是接收用户的HTTP请求并进行相应的处理。 **核心控制器...
描述中提到的"Struts过滤器可以解决页面之间的乱码问题",这是因为在Web应用中,尤其是涉及到中文字符时,乱码问题经常出现。Struts框架提供了一种机制,即通过自定义过滤器来处理这个问题。我们可以通过继承Struts...
1. **拦截器机制**:这是Struts2的核心概念之一,类似于过滤器,但更加灵活。拦截器可以处理请求的各个阶段,包括输入参数的校验、事务管理、日志记录等,极大地提高了开发效率和代码的复用性。 2. **结果类型**:...
在Struts2的各个版本和不同过滤器设置下,GET方式提交的中文乱码问题仍然存在。一种可行的解决方案是在Tomcat服务器的配置文件`server.xml`中,修改`<Connector>`标签,添加`URIEncoding="UTF-8"`属性。这将强制...
然后,在你的`web.xml`配置文件中,你需要注册这个过滤器,并确保它在Struts2的`FilterDispatcher`之前执行,因为Struts2的过滤器可能会先处理请求,如果在这之后设置编码,可能已经来不及了。下面是如何在`web.xml`...
- **执行流程概述**:当用户通过浏览器向服务器发送请求时,该请求首先被Struts2过滤器拦截,然后根据配置文件将请求分发给对应的Action类进行处理,最后返回结果视图给用户。 - **具体步骤**: - 用户发起HTTP...
本篇文章将详细探讨SSH框架中的中文乱码问题,以及如何通过实现自定义过滤器(Filter)来解决这一问题。 首先,我们要理解乱码的产生原因。在HTTP请求中,数据编码格式不一致是导致乱码的主要因素。例如,客户端...
在Struts框架中,可以配置`struts-default.xml`或自定义的配置文件,添加全局过滤器来设定字符编码。例如: ```xml <filter-name>charsetFilter <filter-class>org.apache.struts2.dispatcher.filter....
2. **修改`web.xml`**:在项目的`WEB-INF/web.xml`文件中,添加过滤器以确保请求和响应都使用UTF-8编码: ```xml <filter-name>characterEncodingFilter <filter-class>org.springframework.web.filter....
4. **过滤器处理**:可以创建一个自定义过滤器,用于在请求进入Struts2之前统一转换编码。在`web.xml`中配置这个过滤器,并在过滤器类中实现转换逻辑: ```xml <filter-name>CharacterEncodingFilter ...
在深入了解如何通过Struts2框架中的Servlet过滤器解决字符编码问题之前,我们先简要回顾一下字符编码的基本概念。字符编码是将计算机内部二进制数据转换为人类可读的文字的过程。常见的字符编码方式包括ASCII、GBK、...