編寫一個EncodingFilter
1.讀取web.xml文件中配置的當前WEB應用的初始化參數encoding
2.指定請求的字符編碼為1讀取到的編碼
3.調用chain.doFilter()方法"放行"請求
web.xml
<context-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </context-param>
<filter> <filter-name>EncodingFilter</filter-name> <filter-class>com.demo.filter.EncodingFilter</filter-class> </filter> <filter-mapping> <filter-name>EncodingFilter</filter-name> <url-pattern>/filter/b.jsp</url-pattern> </filter-mapping>
EncodingFilter
package com.demo.filter; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class EncodingFilter extends HttpFilter { private String encoding; @Override protected void init() { encoding = getFilterConfig().getServletContext().getInitParameter("encoding"); System.out.println(encoding); } @Override public void doFilter(HttpServletResponse response, HttpServletRequest request, FilterChain filterChain) throws IOException, ServletException { request.setCharacterEncoding(encoding); filterChain.doFilter(request,response); } }