关于struts项目,本人有以下解决方案:
jsp 需修改:
<%
@ page contentType
=
"
text/html;charset=UTF-8
"
%>
< meta http - equiv = " Content-Type " content = " text/html; charset=GBK " >
< meta http - equiv = " Content-Type " content = " text/html; charset=GBK " >
js 需修改:eclipse 中文件属性的编码设置 :指定 UTF-8
过滤器类设置 :
public
class
SetCharacterEncodingFilter
extends
HttpServlet
implements
Filter
...
{
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
public void init(FilterConfig filterConfig) throws ServletException ...{
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if (value == null) ...{
this.ignore = true;
}
else if (value.equalsIgnoreCase("true")) ...{
this.ignore = true;
}
else if (value.equalsIgnoreCase("yes")) ...{
this.ignore = true;
}
else ...{
this.ignore = false;
}
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException ...{
if (ignore || (request.getCharacterEncoding() == null)) ...{
String encoding = selectEncoding(request);
if (encoding != null) ...{
request.setCharacterEncoding(encoding);
}
}
chain.doFilter(request, response);
}
protected String selectEncoding(ServletRequest request) ...{
r eturn (this.encoding);
}
public void destroy() ...{
this.encoding = null;
this.filterConfig = null;
}
}
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
public void init(FilterConfig filterConfig) throws ServletException ...{
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if (value == null) ...{
this.ignore = true;
}
else if (value.equalsIgnoreCase("true")) ...{
this.ignore = true;
}
else if (value.equalsIgnoreCase("yes")) ...{
this.ignore = true;
}
else ...{
this.ignore = false;
}
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException ...{
if (ignore || (request.getCharacterEncoding() == null)) ...{
String encoding = selectEncoding(request);
if (encoding != null) ...{
request.setCharacterEncoding(encoding);
}
}
chain.doFilter(request, response);
}
protected String selectEncoding(ServletRequest request) ...{
r eturn (this.encoding);
}
public void destroy() ...{
this.encoding = null;
this.filterConfig = null;
}
}
配置文件 /WEB-INF/web.xml
<
filter
>
< filter-name > setcharacterencodingfilter </ filter-name >
< filter-class > com.aide.zxdk.servlet.SetCharacterEncodingFilter </ filter-class >
< init-param >
< param-name > encoding </ param-name >
< param-value > UTF-8 </ param-value >
</ init-param >
< init-param >
< param-name > ignore </ param-name >
< param-value > true </ param-value >
</ init-param >
</ filter >
< filter-mapping >
< filter-name > setcharacterencodingfilter </ filter-name >
< url-pattern > /* </ url-pattern >
</ filter-mapping >
< filter-name > setcharacterencodingfilter </ filter-name >
< filter-class > com.aide.zxdk.servlet.SetCharacterEncodingFilter </ filter-class >
< init-param >
< param-name > encoding </ param-name >
< param-value > UTF-8 </ param-value >
</ init-param >
< init-param >
< param-name > ignore </ param-name >
< param-value > true </ param-value >
</ init-param >
</ filter >
< filter-mapping >
< filter-name > setcharacterencodingfilter </ filter-name >
< url-pattern > /* </ url-pattern >
</ filter-mapping >