首先要搞清出现乱码的原因
1.当为post请求的时候,可理解为发数据包,根据页面jsp的设置来进行编码。jsp默认编码是
ISO-8859-1。
<%@ page pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" %>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
同时,可自定义过滤器。
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// 设置请求响应字符编码
request.setCharacterEncoding(charset);
response.setCharacterEncoding(charset);
HttpServletRequest req = (HttpServletRequest) request;
// 执行下一个过滤器(如果有的话,否则执行目标servlet)
chain.doFilter(req, response);
}
同时,将此filter配置到web.xml可解决此问题。
2.如为get请求,类似"?username=测试&password=123",刚才的修改不起作用。
如为tomcat可修改server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"
/>
缺点为:如一个tomcat下有多个应用容易发生混淆。
解决方案2:手动写一个GetHttpServletRequestWrapper。
public class GetHttpServletRequestWrapper extends HttpServletRequestWrapper {
private String charset = "UTF-8";
public GetHttpServletRequestWrapper(HttpServletRequest request) {
super(request);
}
/**
* 获得被装饰对象的引用和采用的字符编码
* @param request
* @param charset
*/
public GetHttpServletRequestWrapper(HttpServletRequest request,
String charset) {
super(request);
this.charset = charset;
}
/**
* 实际上就是调用被包装的请求对象的getParameter方法获得参数,然后再进行编码转换
*/
public String getParameter(String name) {
String value = super.getParameter(name);
value = value == null ? null : convert(value);
return value;
}
public String convert(String target) {
System.out.println("编码转换之前:" + target);
try {
return new String(target.trim().getBytes("ISO-8859-1"), charset);//此处ISO-8859-1为jsp默认编码
} catch (UnsupportedEncodingException e) {
return target;
}
}
}
在刚才filter中加上如下代码
if (req.getMethod().equalsIgnoreCase("get")) {
req = new GetHttpServletRequestWrapper(req, charset);
}
以上文字部分代码转自whistler文章
分享到:
相关推荐
一个DOC文档,在网上搜索并自己实验过的,解决JSP中文乱码问题。对于J2EE 的初学者有用!
JSP页面上出现中文乱码的几个解决办法 比较好的 一般都能解决问题
JSP中文问题解决办法,JSP页面传值,数据库等的中文乱码解决办法
jsp页面显示中文乱码解决.rar
Struts2资源文件在jsp页面中显示乱码解决
Tomcat环境下JSP中文乱码问题的解决
主要介绍了JSP页面传参出现中文乱码的解决方案,非常实用,需要的朋友可以参考下
很简单就修改好了头疼的jsp页面乱码问题
大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着您,我现在把我在JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考。 一、JSP页面显示乱码 二、表单提交中文时出现乱码 三、数据库连接时...
5种JSP页面显示为乱码的解决方法
遇到了这个问题, 按照一定的顺序解决了, 来这里总结一下, 希望能帮助大家. 咱们从前台到后台的顺序来解决. 1. JSP 这里需要设置一下JSP页面的统一编码格式: 打开Eclipse-window->preferences. 根据...
jsp中常见的乱码 1、JSP页面乱码 2、数据库乱码 3、中文作为参数传递乱码 4、JSP页面乱码加这句
页面传递中文参数 乱码 jsp开发 本人测试没问题
本ppt内容主要是解决方案Eclipse 开发JSP中文乱码问题,为初学使用ECLIPSE开发JAVA WEB项目的人提供方便。
中文乱码解决大全,表单使用Post方式提交后接收到的乱码问题,表单get提交方式的乱码处理方式,上传文件时的乱码解决,Java代码关于url请求,接受参数的乱码,关于jsp在MyEclipse中打开的乱码问题,关于html页面在eclipse...
对jsp两个页面间传递变量出现变量乱码的解决 word文档
jsp页面显示中文乱码解决.pdf
配置Filter过滤器处理JSP中文乱码 参考Tomcat服务器目录webapps的examples示例 简单配置步骤: 1.在项目web.xml文件添加过滤器标记和; 2.实现过滤器代码; 3.对Tomcat服务器conf目录里的Server.xml文件配置...
一、JSP页面中文乱码 在JSP页面中,中文显示乱码有两种情况:一种是HTML中的中文乱码,另一种是在JSP中动态输出的中文乱码。 先看一个JSP程序: <%@ page language=java import=java.util.* %> <html>...