public class EncodeFilter implements Filter {
@Override public void destroy() { // TODO Auto-generated method stub
} @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // TODO Auto-generated method stub //从浏览器中的到的二进制数据用utf-8编码 request.setCharacterEncoding("UTF-8"); chain.doFilter(request, response); }
在web.xml文件中配置filter:
<filter> <filter-name>encoding</filter-name> <filter-class>cn.itcase.strutsdemo.user.domain.EncodeFilter</filter-class> </filter> <filter-mapping> <filter-name>encoding</filter-name> <servlet-name>action</servlet-name> </filter-mapping>
②. 提供自定义的 ActionServlet
public class MyActionServlet extends ActionServlet {
private static final long serialVersionUID = 5165092497954010055L; @Override protected void process(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { request.setCharacterEncoding("UTF-8"); super.process(request, response); } } web.xml 文件中 <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> 改为 <servlet-class>cn.itcast.struts.servlet.MyActionServlet</servlet-class> ③. 提供自定义的 RequestProcessor public class MyRequestProcessor extends RequestProcessor {
@Override public void process(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { request.setCharacterEncoding("UTF-8"); super.process(request, response); } } 在 struts-config.xml 文件中加入如下内容: <controller processorClass="cn.itcast.struts.servlet.MyRequestProcessor"/>
@Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub
}
}
|