我已经设了过滤器了,这是我的web.xml<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app> <context-param>
<param-name>configFile</param-name>
<param-value>/oneks.properties</param-value>
</context-param> <context-param>
<param-name>uploadFilePath</param-name>
<param-value>pages/upload/</param-value>
</context-param>
<context-param>
<param-name>securityConfigPath</param-name>
<param-value>WEB-INF/security/acl-config.xml</param-value>
</context-param>
<context-param>
<param-name>indexPath</param-name>
<param-value>WEB-INF/index/</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/spring/*.xml</param-value>
</context-param>
<context-param>
<param-name>extremecomponentsPreferencesLocation</param-name>
<param-value>/extremetable.properties</param-value>
</context-param>
<!--由Sprng载入的Log4j配置文件位置-->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>org.king.framework.web.filter.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter>
<filter-name>Acl Filter</filter-name>
<filter-class>org.king.security.web.filter.AclFilter</filter-class>
</filter>
<filter>
<filter-name>Compression Filter</filter-name>
<filter-class>org.king.framework.web.filter.compression.CompressionFilter</filter-class>
<init-param>
<param-name>compressionThreshold</param-name>
<param-value>10</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
</filter>
<filter>
<filter-name>eXtremeExport</filter-name>
<filter-class>org.extremecomponents.table.filter.ExportFilter</filter-class>
</filter>
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter>
<filter-name>logoutFilter</filter-name>
<filter-class>org.king.security.web.filter.LogoutFilter</filter-class>
</filter>
<filter>
<filter-name>verifyFilter</filter-name>
<filter-class>org.king.security.web.filter.VerifyFilter</filter-class>
</filter>
<filter>
<filter-name>localVerifyFilter</filter-name>
<filter-class>org.king.security.web.filter.LocalVerifyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>logoutFilter</filter-name>
<url-pattern>*.logout</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>verifyFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>localVerifyFilter</filter-name>
<url-pattern>*.aspx</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Acl Filter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Compression Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping> <filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>eXtremeExport</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--Spring log4j Config loader-->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<listener>
<listener-class>org.king.security.web.listener.InitListener</listener-class>
</listener>
<!-- Standard Action Servlet Configuration (with debugging) -->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>
/WEB-INF/struts/struts-config.xml
</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet>
<servlet-name>NoSuchUser</servlet-name>
<servlet-class>org.king.security.web.servlet.NoSuchUser</servlet-class>
</servlet>
<servlet>
<servlet-name>webGui-init</servlet-name>
<servlet-class>com.pow2.webgui.resources.WebGuiInit</servlet-class>
<init-param>
<param-name>webGui.prototypes.properties</param-name>
<param-value>/WEB-INF/webgui/wgPrototypes.properties</param-value>
</init-param>
<init-param>
<param-name>webGui.velocity.properties</param-name>
<param-value>/WEB-INF/webgui/velocity.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>DictionaryInit</servlet-name>
<servlet-class>org.king.classmanage.web.servlet.DictionaryInitServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param> </servlet>
<servlet>
<servlet-name>CheckCodeImage</servlet-name>
<servlet-class>org.king.security.web.servlet.CheckCodeImage</servlet-class>
</servlet>
<!-- dwr Servlet -->
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWR Servlet</display-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<!-- dwr Servlet Mapping -->
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping> <!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>NoSuchUser</servlet-name>
<url-pattern>/NoSuchUser</url-pattern>
</servlet-mapping> <!-- CheckCode Image Servlet Mapping -->
<servlet-mapping>
<servlet-name>CheckCodeImage</servlet-name>
<url-pattern>/CheckCodeImage</url-pattern>
</servlet-mapping> <session-config>
<session-timeout>30</session-timeout>
</session-config> <!-- The Usual Welcome File List -->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!--Error Page-->
<error-page>
<error-code>500</error-code>
<location>/error.jsp</location>
</error-page>
<error-page>
<error-code>400</error-code>
<location>/index.jsp</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/403.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
<resource-ref>
<res-ref-name>jdbc/freshmen</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref></web-app>以前都是好的,最近突然客户说出现这个问题,看了filter也没有问题呀,不知道为什么就变乱码了,jsp也是utf-8的编码,这是jsp的头<%@page pageEncoding="UTF-8"%>
<%@ include file="../tiles/include.jsp"%>为什么用filter后还是会乱码啊?
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app> <context-param>
<param-name>configFile</param-name>
<param-value>/oneks.properties</param-value>
</context-param> <context-param>
<param-name>uploadFilePath</param-name>
<param-value>pages/upload/</param-value>
</context-param>
<context-param>
<param-name>securityConfigPath</param-name>
<param-value>WEB-INF/security/acl-config.xml</param-value>
</context-param>
<context-param>
<param-name>indexPath</param-name>
<param-value>WEB-INF/index/</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/spring/*.xml</param-value>
</context-param>
<context-param>
<param-name>extremecomponentsPreferencesLocation</param-name>
<param-value>/extremetable.properties</param-value>
</context-param>
<!--由Sprng载入的Log4j配置文件位置-->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>org.king.framework.web.filter.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter>
<filter-name>Acl Filter</filter-name>
<filter-class>org.king.security.web.filter.AclFilter</filter-class>
</filter>
<filter>
<filter-name>Compression Filter</filter-name>
<filter-class>org.king.framework.web.filter.compression.CompressionFilter</filter-class>
<init-param>
<param-name>compressionThreshold</param-name>
<param-value>10</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
</filter>
<filter>
<filter-name>eXtremeExport</filter-name>
<filter-class>org.extremecomponents.table.filter.ExportFilter</filter-class>
</filter>
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter>
<filter-name>logoutFilter</filter-name>
<filter-class>org.king.security.web.filter.LogoutFilter</filter-class>
</filter>
<filter>
<filter-name>verifyFilter</filter-name>
<filter-class>org.king.security.web.filter.VerifyFilter</filter-class>
</filter>
<filter>
<filter-name>localVerifyFilter</filter-name>
<filter-class>org.king.security.web.filter.LocalVerifyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>logoutFilter</filter-name>
<url-pattern>*.logout</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>verifyFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>localVerifyFilter</filter-name>
<url-pattern>*.aspx</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Acl Filter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Compression Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping> <filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>eXtremeExport</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--Spring log4j Config loader-->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<listener>
<listener-class>org.king.security.web.listener.InitListener</listener-class>
</listener>
<!-- Standard Action Servlet Configuration (with debugging) -->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>
/WEB-INF/struts/struts-config.xml
</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet>
<servlet-name>NoSuchUser</servlet-name>
<servlet-class>org.king.security.web.servlet.NoSuchUser</servlet-class>
</servlet>
<servlet>
<servlet-name>webGui-init</servlet-name>
<servlet-class>com.pow2.webgui.resources.WebGuiInit</servlet-class>
<init-param>
<param-name>webGui.prototypes.properties</param-name>
<param-value>/WEB-INF/webgui/wgPrototypes.properties</param-value>
</init-param>
<init-param>
<param-name>webGui.velocity.properties</param-name>
<param-value>/WEB-INF/webgui/velocity.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>DictionaryInit</servlet-name>
<servlet-class>org.king.classmanage.web.servlet.DictionaryInitServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param> </servlet>
<servlet>
<servlet-name>CheckCodeImage</servlet-name>
<servlet-class>org.king.security.web.servlet.CheckCodeImage</servlet-class>
</servlet>
<!-- dwr Servlet -->
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWR Servlet</display-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<!-- dwr Servlet Mapping -->
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping> <!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>NoSuchUser</servlet-name>
<url-pattern>/NoSuchUser</url-pattern>
</servlet-mapping> <!-- CheckCode Image Servlet Mapping -->
<servlet-mapping>
<servlet-name>CheckCodeImage</servlet-name>
<url-pattern>/CheckCodeImage</url-pattern>
</servlet-mapping> <session-config>
<session-timeout>30</session-timeout>
</session-config> <!-- The Usual Welcome File List -->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!--Error Page-->
<error-page>
<error-code>500</error-code>
<location>/error.jsp</location>
</error-page>
<error-page>
<error-code>400</error-code>
<location>/index.jsp</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/403.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
<resource-ref>
<res-ref-name>jdbc/freshmen</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref></web-app>以前都是好的,最近突然客户说出现这个问题,看了filter也没有问题呀,不知道为什么就变乱码了,jsp也是utf-8的编码,这是jsp的头<%@page pageEncoding="UTF-8"%>
<%@ include file="../tiles/include.jsp"%>为什么用filter后还是会乱码啊?
这是filterpublic class EncodingFilter
implements Filter
{ public EncodingFilter()
{
filterConfig = null;
encoding = null;
ignore = true;
} public final void destroy()
{
encoding = null;
filterConfig = null;
} public final void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException
{
if(ignore || request.getCharacterEncoding() == null)
{ String encoding1 = selectEncoding(request);
if(encoding1 != null){
request.setCharacterEncoding(encoding1);
}
}
chain.doFilter(request, response);
} public final void init(FilterConfig arg0)
throws ServletException
{
filterConfig = arg0;
encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if(value == null)
ignore = true;
else
if(value.equalsIgnoreCase("true"))
ignore = true;
else
if(value.equalsIgnoreCase("yes"))
ignore = true;
else
ignore = false;
} protected final String selectEncoding(ServletRequest request)
{
return encoding;
} private FilterConfig filterConfig;
private String encoding;
private boolean ignore;
}
刚才发现form上加了enctype="multipart/form-data"就可以正常提交中文了
但之前都不用加的,只能这样的话,要加好几十张页面了
恩,就是这情况,比较奇怪,我又没有上传文件,只是提交form表单而已,以前都不用加的呀,现在加的话,那所有的页面都要重新加一次了