SpringMVC框架中编码问题
实现有三种方法
实现:第一种
直接在请求放方法中加入下面这三句话
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("test/html;charSet=utf-8");
直接在请求方法中加入这三句编码工作比较麻烦,都是重复性的工作,我们可以使用过滤器统一处理。
第二实现:
1.写一个过滤器实现Filter接口实现其下三个方法,并在web.xml中配置过滤器
public class EncodingFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/heml;charset=utf-8");
chain.doFilter(request,response);
}
@Override
public void destroy() {
}
}
<filter>
<filter-name>encodingFilte</filter-name>
<filter-class>com.wlxy.filt.EncodingFilt</filter-class>
</filter>
<filter-mapping>
<filter-name>encodingFilte</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
此方法是自己编写一个过滤器,但是SpringMVC框架帮我们编写好了类,只需要配置即可。
第三种实现方法
直接在web.xml中配置即可
SpringMVC已经帮我们写好的类
CharacterEncodingFilter
<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>
该方法比较方便,当我们需要使用其他编码时只需要修改value的值即可。