第一种直接在web.xml加上过滤器,简单粗暴
<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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
第二种用拦截器
1实现HandlerInterceptor接口
/**
* 拦截器相关的工具
*
* @author User
*
*/
public class RequrstCharacterFilter implements HandlerInterceptor {
/**
* 执行顺序
* 1.preHandle 在controller之前
* 2.controller{"name":"王麻子"} controller执行结果
* 3.postHandle在controller之后
* 4.afterCompletion 最后执行
*/
public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
}
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object arg2, ModelAndView arg3)
throws Exception {
}
/**
* 此方法为拦截主体方法 return true则通过 return false 则拦截
*/
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {
request.setCharacterEncoding("utf-8");
return true;
}
}
applicationContext-servlet.xml文件加上拦截器的配置
<mvc:interceptors>
<mvc:interceptor >
<mvc:mapping path="/**"/>
<bean id="requrstCharacterFilter" class="com.nsu.pmes.filter.RequrstCharacterFilter" />
</mvc:interceptor>
</mvc:interceptors>