设计一个过滤器统一处理Post提交方式下参数值中文乱码问题。
1、index.jsp
<form action="servlet1" method="post">
输入姓名:<input type="text" name="name">
<input type="submit" value="提交">
</form>
<form action="servlet2" method="post">
输入爱好:<input type="text" name="hobby">
<input type="submit" value="提交">
</form>
2、servlet
com.servlets.Servlet1
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//request.setCharacterEncoding("utf-8");
System.out.println(request.getParameter("name"));
}
com.servlets.Servlet2:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//request.setCharacterEncoding("utf-8");
System.out.println(request.getParameter("hobby"));
}
3、filter
com.filters.Filter
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
// TODO Auto-generated method stub
System.out.println("请求过滤...");
arg0.setCharacterEncoding("utf-8");
arg2.doFilter(arg0, arg1);
System.out.println("响应过滤");
}
4、filter配置
<filter>
<filter-name>filter</filter-name>
<filter-class>com.filters.Filter</filter-class>
</filter>
<filter-mapping>
<filter-name>filter</filter-name>
<url-pattern>/servlet1</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>filter</filter-name>
<url-pattern>/servlet2</url-pattern>
</filter-mapping>
**该程序中有两个servlet,在配置时可用 * 全选。**以上filter配置代码可以换成:
<filter>
<filter-name>filter</filter-name>
<filter-class>com.filters.Filter</filter-class>
</filter>
<filter-mapping>
<filter-name>filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>