`

jsp,action乱码问题

 
阅读更多

解决思路:

1,手写过滤器,在web.xml中配置,并且注意filter-mapping的顺序设置在基础过滤器前面

代码如下:

package filter;

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 Administrator
 *
 */
public class SetCodeFilter  implements Filter{

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1,
			FilterChain arg2) throws IOException, ServletException {
		// TODO Auto-generated method stub
		arg0.setCharacterEncoding("UTF-8");//将请求编码设为UTF-8
		arg1.setCharacterEncoding("UTF-8");//将请求编码设为UTF-8
		arg2.doFilter(arg0, arg1);
	}

	@Override
	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub
		
	}

	 

	 
 
 

 

	
}

  web.xml代码

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

	<!-- struts基本过滤器 -->
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    	<!--编码过滤器 -->
	<filter>
	<filter-name>encoding</filter-name>
	<filter-class>filter.SetCodeFilter</filter-class>
	</filter>
		<filter-mapping>
	<filter-name>encoding</filter-name>
	<url-pattern>/*</url-pattern>
	</filter-mapping>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

</web-app>

 

2,如果使用的是tomcat服务器的话,有必要在config文件夹下面的servel.xml中配置如下:

 <Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8"
               connectionTimeout="20000"
               redirectPort="8443" />

3,在sturts.xml中新增contant标签:

    <constant name="struts.i18n.encoding" value="UTF-8" />

通过上述3个步骤,一般就能解决

 

4,写一下我刚发现的解决方案,适应于struts2.1.6版本

如果你用的是这个版本,<constant name="struts.i18n.encoding" value="UTF-8" />配置这个常量不能解决 问题,因为官网上说这是struts2.1.6的bug,在2.1.7已经解决这BUG,如果我们还想用2.1.6版本,那么修改一下web.xml的默认filter即可。

即:将org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 改成

org.apache.struts2.dispatcher.FilterDispatcher。

分享到:
评论

相关推荐

    Struts2资源文件在jsp页面中显示乱码解决

    Struts2资源文件在jsp页面中显示乱码解决

    url传值到Action乱码解决方案

    解决:delete.action?title=()%&gt;传到action类出现乱码的问题

    JSP.rar_Action!_jsp传值

    可以解决在jsp页面向action传值遇到的中文乱码问题。

    从js向Action传中文参数出现乱码问题的解决方法

    做项目的时候,发现Action获取jsp表单中的中文参数,只要整个项目都采用UTF-8编码格式都不会出现乱码问题;但JSP中用到JS,并从JS向Action传中文参数,就会出现中文乱的现象。几经询问百度,上面说法很多。 经过实践...

    jsp解析

    jsp指令:*...解决中午乱码问题: request.setCharacterEncoding("utf-8"); 获取页面数据: String name=request.getParameter(""); String[] names=request.getParameterValues(""); 转发,可以保留值:

    处理中文乱码

    从显示页面html或者是jsp到action里容易出现中文乱码问题,则可以用文档里的方法试试看

    java中文乱码解决方案

    这边有必有说明的是如果是jsp+java bean+servlet的方案,中文乱码很好解决,统一设成gb2312就可以了。 1.2 使用struts框架字符集不能设成gb2312,要改成utf-8。  2. 在struts.properties 添加: struts.devMode=...

    页面往action传中文参数,如何不变成乱码

    属于一篇的博文的资源文件,请配合博文食用。一个很简单的小demo

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    全书一共被压缩为5个rar,这是第二个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    全书一共被压缩为5个rar,这是第三个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    全书一共被压缩为5个rar,这是第四个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...

    java结合jsp写的上传文件代码

    // 设置字符编码为UTF-8, 统一编码,处理出现乱码问题 response.setCharacterEncoding("UTF-8"); // 实例化一个硬盘文件工厂,用来配置上传组件ServletFileUpload DiskFileItemFactory dfif = new ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    全书一共被压缩为5个rar,这是第五个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...

    从J2SE到J2EE知识点介绍

    5. JSP页面通过URL传递中文参数的乱码问题 139 四、 Struts2 140 (一) 基于struts2的web应用的开发步骤 140 1. MVC设计模式() 140 2. 基于struts的web应用的开发步骤 141 3. 如何写自定义action,实体,以及业务类...

    Jsp文件上传下载(工具类源码)

    // 设置字符编码为UTF-8, 统一编码,处理出现乱码问题 response.setCharacterEncoding("UTF-8"); // 实例化一个硬盘文件工厂,用来配置上传组件ServletFileUpload DiskFileItemFactory dfif = new ...

    struts2.1宝典

    13表单提交中文乱码问题 5 14.Jsp不能识别EL 5 15.自定义标签中访问Dao 获取dao 6 16.标签获取参数 6 17.Action之间传递错误验证信息 6 18第一个Ajax例子 Ajax+struts2 6 8.标签 7 8.Select标签 7 9.Checkbox 10 ...

    struts2+kindEditor4.1.7

    中文乱码不是问题,一般struts2+spring开发项目的时候,使用spring的filter就可以搞定 &lt;filter-name&gt;Set Character Encoding &lt;filter-class&gt;org.springframework.web.filter.CharacterEncodingFilter ...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    一共四个,其中pdf 三个包,源码一个包 第一章 J2EE快速入门 1.1 J2EE概述 1.1.1 J2EE的来源 1.1.2 J2EE整体框架 1.1.3 从J2EE到JavaEE ...15.11 解决Spring的中文乱码问题 15.12 运行验证程序 15.13 小结

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    2.8.2 访问JSP页面出现乱码 2.8.3 在JSP页面中使用Include指令后,JSP不能编译 2.9 精彩回顾 第3章前人栽树后人乘凉 ——、JSP内置对象 3.1 本章学习任务 3.1.1 本章知识体系 3.1.2 实例开发任务 3.2 简化开发JSP...

Global site tag (gtag.js) - Google Analytics