过滤器

1.配置web.xml

<filter>
      <filter-name>encodingFilter</filter-name>
      <filter-class>com.hx.shopping.web.EncodingFilter</filter-class>
      <init-param>
          <param-name>encoding</param-name>
          <param-value>utf-8</param-value>
      </init-param>
  </filter>
  <filter-mapping>
      <filter-name>encodingFilter</filter-name>
      <url-pattern>/*</url-pattern>
      <!-- /* 表示拦截所有请求 -->

  </filter-mapping>


2.写一个类继承Filter

package com.hx.shopping.web;

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.annotation.WebFilter;
//@WebFilter("/encodingFilter")
/**
 * 过滤器
 * @author Administrator
 *
 */
public class EncodingFilter implements Filter {
    String encoding;
    @Override
    public void destroy() {

    }
    @Override
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
            throws IOException, ServletException {
        // 解决form表单 post提交的问题
        resp.setContentType("text/html;charset="+encoding);
        req.setCharacterEncoding(encoding);
        resp.setCharacterEncoding(encoding);
        chain.doFilter(req, resp);
    }
    @Override
    public void init(FilterConfig fc) throws ServletException {
        String ed = fc.getInitParameter("encoding").trim();
        if(ed != null && !"".equals(ed)){
            encoding = ed;
        }else{
            encoding = "utf-8";
        }
    }
}

3.服务器Tomcat配置文件中配置字符集

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页