Filter确保是第一个执行么?
web.xml要先 filer-mapping 再 servlet-mapping
web.xml要先 filer-mapping 再 servlet-mapping
解决方案 »
- debug模式可以成功,但运行时没效果
- 求大神帮帮忙,帮我看看程序代码!谢谢了
- 用java写的web在linux下能否在服务器端调用第三方的产品?
- 大家在开发电子商务的网站时操作数据库的代码是写在哪里?
- 怎样把数据库中的科学记数法转换成正常的数字.........
- 谁知道表格的这个功能是怎么实现的?在线等!
- 表单属性为enctype="multipart/form-data"如何判断提交是否合法
- 关于编码转换问题,解决就给分!
- 运行Tomcat4.0.1时,出现错误提示:out of enviroment Using CLASSPATH,如何解决?谢谢!
- 如何得到客户端的IP地址?
- 怎么把从后台查询到的一条记录显示到页面上呢?(在线等)
- AOP 是不是一个上锁的功能?
<filter-name>encodingFilter</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>encodingFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
配置可以看webapps\examples\WEB-INF\web.xml。
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;public class SetCharacterEncodingFilter implements Filter { protected String encoding = null; protected FilterConfig filterConfig = null; protected boolean ignore = true; public void destroy() { this.encoding = null;
this.filterConfig = null;
} 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); } 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; } protected String selectEncoding(ServletRequest request) { return (this.encoding); }
}web.xml设置
<filter>
<filter-name>SetCharsetEncodingFilter</filter-name>
<filter-class>[color=#FF0000]过滤器所在。。</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8或者GBK</param-value>
</init-param>
</filter>
[/color]这段代码要在所有<servlet>标签前面
<filter-mapping>
<filter-name>SetCharsetEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>SetCharsetEncodingFilter</filter-name>
<filter-class>过滤器所在。。</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>(自己设定的编码集名称)</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharsetEncodingFilter </filter-name>
<url-pattern>/* </url-pattern>
</filter-mapping>
2、如果走到了的话,你换个charset看看页面上面的字符是不是发生变化
3、如果发生变化了,说明不是你filter的问题,是你本身页面上面的问题字符编码的问题