适合情况 -> 从jsp传入到action时的乱码情况,这里以GBK为例
1.建立一个用于转换编码的filter
文件位置举例:src.util.SetCharacterEncodingFilter.java
- package util;
- import java.io.IOException;
- import javax.servlet.Filter;
- import javax.servlet.FilterChain;
- import javax.servlet.FilterConfig;
- import javax.servlet.ServletException;
- import javax.servlet.ServletRequest;
- import javax.servlet.ServletResponse;
- import javax.servlet.UnavailableException;
- /**
- * Example filter that sets the character encoding to be used in parsing the
- * incoming request
- */
- public class SetCharacterEncodingFilter implements Filter {
- /**
- * Take this filter out of service.
- */
- public void destroy() {
- }
- /**
- * Select and set (if specified) the character encoding to be used to
- * interpret request parameters for this request.
- */
- public void doFilter(ServletRequest request, ServletResponse response,
- FilterChain chain)throws IOException, ServletException {
- request.setCharacterEncoding("gbk");
- // 传递控制到下一个过滤器
- chain.doFilter(request, response);
- }
- public void init(FilterConfig filterConfig) throws ServletException {
- }
- }
2.修改web.xml,在struts的FilterDispatcher映射之前添加2个filter
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.5"
- xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
- http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <filter>
- <filter-name>Set Character Encoding</filter-name>
- <filter-class>util.SetCharacterEncodingFilter</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>Set Character Encoding</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- <filter>
- <filter-name>struts-cleanup</filter-name>
- <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>struts-cleanup</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- <filter>
- <filter-name>struts2</filter-name>
- <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>struts2</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- </web-app>
3.你的JSP头应该有