自己手写一个Filter来处理前台发送的请求:
对前台打来的请求进行设置,servletRequest.setCharacterEncoding("utf-8");
然后放行,继续执行即可。
package com.gyh.web.filter; import javax.servlet.*; import java.io.IOException; public class myFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { servletRequest.setCharacterEncoding("utf-8"); filterChain.doFilter(servletRequest, servletResponse); } @Override public void destroy() { } }
还需要在web.xml文件中进行配置:
<filter> <filter-name>myFilter</filter-name> <filter-class>com.gyh.web.filter.myFilter</filter-class> </filter> <filter-mapping> <filter-name>myFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
这种方法的缺点是以及把处理的字符写死了,即拦截处理为UTF-8,无法对其他的进行处理。
第二种方法是通过springmvc自带的过滤器来进行:
<filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
这样就可以实现将中文乱码转为中文了。