javaweb全站乱码解决

来源:互联网 发布:淘宝怎么挂东西卖 编辑:程序博客网 时间:2024/05/20 04:12

下面是常用代码,一遍以后开发使用

开发一个filter类

下面是常用代码,一遍以后开发使用
package cn.itcast.filter;import java.io.IOException;import java.io.UnsupportedEncodingException;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.HttpServletRequestWrapper;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpServletResponseWrapper;public class CharacterFilter implements Filter {private String character;private FilterConfig filterConfig;@Overridepublic void init(FilterConfig filterConfig) throws ServletException {// TODO Auto-generated method stubthis.filterConfig = filterConfig;}@Overridepublic void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {// TODO Auto-generated method stubHttpServletRequest req = (HttpServletRequest) request;HttpServletResponse res = (HttpServletResponse) response;/**设置默认字符集 **/character = filterConfig.getInitParameter("character");if(character ==null)character ="UTF-8";/**处理post乱码问题 ***/System.out.println(req.getCharacterEncoding());req.setCharacterEncoding(character);res.setContentType("text/html;charset="+ character);chain.doFilter(new MyHttpServletRequest(req),res);}@Overridepublic void destroy() {// TODO Auto-generated method stub}/** 处理get乱码问题 **/private class MyHttpServletRequest extends HttpServletRequestWrapper{HttpServletRequest request;public MyHttpServletRequest(HttpServletRequest request) {super(request);this.request = request;}@Overridepublic String getParameter(String name) {if(name==null)return null;String value = request.getParameter(name);if(value == null)return null;if(!request.getMethod().equals("GET"))return value;try {value = new String(value.getBytes("ISO8859-1"),character);} catch (UnsupportedEncodingException e) {e.printStackTrace();throw new RuntimeException(e);}return value;}}}


配置filter类

在web.xml家人如下代码:

<filter>          <filter-name>character</filter-name>  <filter-class>cn.itcast.filter.CharacterFilter</filter-class>    <init-param>    <description>字符集</description>    <param-name>character</param-name>    <param-value>UTF-8</param-value> </init-param></filter><filter-mapping>  <filter-name>character</filter-name>  <url-pattern>/*</url-pattern></filter-mapping>



原创粉丝点击