jsp乱码问题解决方案

1,页面上编码设置为"UTF-8"
2,写一个字符编码过滤器, 在web.xml中配置加载过滤器
3,设置tomcat的属性 在配置端口的节点上加入如下代码:URIEncoding="UTF-8"

1,代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
2,实现代码:
package com.mww.comm;

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.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class checkEcodingFelter implements Filter {

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

}

public void doFilter(ServletRequest servletrequest,
ServletResponse servletresponse, FilterChain filterChain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletrequest;
HttpServletResponse response = (HttpServletResponse) servletresponse;
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
filterChain.doFilter(servletrequest, servletresponse);
}

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

}

}
在web.xml中配置过滤器:
<!-- 字符编码过滤 -->
<filter>
<filter-name>checkEcodingFelter </filter-name>
<filter-class>com.mww.comm.checkEcodingFelter </filter-class> <!-- 配置过滤器类 包名+类名 -->
</filter>
<filter-mapping>
<filter-name>checkEcodingFelter </filter-name>
<url-pattern>/* </url-pattern> <!-- 过滤所有页面-->
</filter-mapping>
3,在tomcat配置端口的节点上配置该属性URIEncoding="UTF-8" :
<Connector port="8888" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>

按这一套下来乱码问题解
资料引用:http://www.knowsky.com/539512.html

猜你喜欢

转载自blog.csdn.net/liuzhang6966/article/details/83817026