servlet中文乱码拦截器
今天看了看ajax但是当从后台获取前端的值时发现中文乱码,
无论在servlet中怎么设置都不行,
response.setContentType("text/html;charset=utf-8");
既然这么费劲干脆写一个拦截器不就什么问题就解决了
首先建立一个类WebFile(类名自己随便起)让该类实现File(在javax.servlet包中别导错包)然后复写接口中的三个方法
@Override // 应用程序启动前有容器调用 public void init(FilterConfig filterConfig) throws ServletException { encoding = filterConfig.getInitParameter("encoding"); } @Override // 对于每个URL映射到该过滤器的请求,由容器调用该方法 public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { if(encoding!=null){ servletRequest.setCharacterEncoding(encoding); servletResponse.setContentType("text/html;charset="+encoding); } filterChain.doFilter(servletRequest,servletResponse); } @Override //void destroy()在应用程序关闭时,由容器调用。 public void destroy() { encoding= null; }然后再在web.xml文件中配置<file><filter> <filter-name>statement</filter-name> <filter-class>com.you.WebFile</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>statement</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
然后就再也不用担心乱码问题