EncodingFilter用来处理请求编码问题。
我们知道,如果是POST请求,我们需要调用request.setCharacterEncoding(“utf-8”)方法来设计编码;如果是GET请求,我们需要自己手动来处理编码问题。如果我们使用了EncodingFilter,那么就处理了POST和GET请求的编码问题。
web.xm
<filter> <filter-name>EncdoingFilter</filter-name> <filter-class>cn.itcast.filter.EncodingFilter</filter-class> </filter> <filter-mapping> <filter-name>EncdoingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
index.jsp
<%--请求EncodingServlet的test方法 --%><!--请求EncdoingServlet的test方法 --> <a href="<c:url value='/EncodingServlet?method=test &name=张三'/>">点击这里发出GET请求</a><br/> <form action="<c:url value='/EncodingServlet'/>" method="post"> <!-- 请求EncodingServlet的test方法--> <input type="hidden" name="method" value="test"/> <input type="text" name="name" value="李四"/> <input type="submit" value="请求这里发出POST请求"/> </form>
EncodingServlet
/** * 测试EncodingFilter * @author qdmmy6 * */ //因为添加了EncodingFilter过滤器,那么所有的Servlet都不用再去处理请求编码的问题了。 public class EncodingServlet extends BaseServlet { /** * 可以使用POST和GET两种方式请求test()方法!查看输出是否为乱码! */ public String test(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); System.out.println(name); return null; } }