Filter解决tomcat服务器的乱码问题

解决tomcat的乱码问题是一个比较麻烦的问题,也分很多种情况,对于不同的情况可以采用不同的方法

方法一

 更改 \Tomcat-Home\conf\server.xml,指定浏览器的编码格式为“简体中文”:

 找到 server.xml 中的

    <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" redirectPort="8443" acceptCount="100"
    connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='GBK' />

方法二

  也是在平时开发中比较常用的,建议这样(使用Filter过滤器)

package com.web.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;
import javax.servlet.http.HttpServletRequest;

public class CodeFilter implements Filter {

	public void destroy() {
	}

	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain filterChain) throws IOException, ServletException {
		HttpServletRequest httpServletRequest = (HttpServletRequest) request;
		httpServletRequest.setCharacterEncoding("gbk");
		filterChain.doFilter(request, response);
	}

	public void init(FilterConfig arg0) throws ServletException {
	}

}

 然后在web.xml中配置

  <filter>
  	<filter-name>myTomcatFilter</filter-name>
  	<filter-class>com.web.filter.CodeFilter</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>myTomcatFilter</filter-name>
  	<url-pattern>*.do</url-pattern>
  </filter-mapping>
    <filter-mapping>
  	<filter-name>myTomcatFilter</filter-name>
  	<url-pattern>*.jsp</url-pattern>
  </filter-mapping>

 注意,如果你没有使用struts来开发,就不用在配置*.do了直接配置*.jsp就ok了

你可能感兴趣的:(tomcat,jsp,Web,浏览器,servlet)