filter代码:public class EncodingFilter implements Filter {
protected String encoding = null; //编码方式
protected FilterConfig config;
/*
* 初始化编码方式
*/
public void init(FilterConfig filterConfig) throws ServletException{
this.config = filterConfig;
//从web.xml中获取编码方式的配置
this.encoding = filterConfig.getInitParameter("Encoding");
} /*
* 统一编码方式
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException{
if(request.getCharacterEncoding() == null){
String encode = getEncoding();
if(encode != null){
//设置request的编码方式
request.setCharacterEncoding(encode);
}
}
System.out.println("encoding:"+request.getCharacterEncoding()+"*");
chain.doFilter(request, response);
}
public String getEncoding(){
return encoding;
}
public void destroy(){
}
}filter配置:
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>com.kaituo.filter.EncodingFilter</filter-class>
<init-param>
<param-name>Encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我想过滤全部文件(根目录下问价及其子文件夹下的所有文件,但是<url-pattern>/*</url-pattern>
这样设置在查看员工列表时控制台没有打印出编码方式,也就是filter没有过滤这个请求,同时分页查询时还是有乱码,大侠说下,为什么啊?
protected String encoding = null; //编码方式
protected FilterConfig config;
/*
* 初始化编码方式
*/
public void init(FilterConfig filterConfig) throws ServletException{
this.config = filterConfig;
//从web.xml中获取编码方式的配置
this.encoding = filterConfig.getInitParameter("Encoding");
} /*
* 统一编码方式
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException{
if(request.getCharacterEncoding() == null){
String encode = getEncoding();
if(encode != null){
//设置request的编码方式
request.setCharacterEncoding(encode);
}
}
System.out.println("encoding:"+request.getCharacterEncoding()+"*");
chain.doFilter(request, response);
}
public String getEncoding(){
return encoding;
}
public void destroy(){
}
}filter配置:
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>com.kaituo.filter.EncodingFilter</filter-class>
<init-param>
<param-name>Encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我想过滤全部文件(根目录下问价及其子文件夹下的所有文件,但是<url-pattern>/*</url-pattern>
这样设置在查看员工列表时控制台没有打印出编码方式,也就是filter没有过滤这个请求,同时分页查询时还是有乱码,大侠说下,为什么啊?
到了servlet-2.4中Filter默认下只拦截外部提交的请求,forward和include这些内部转发都不会被过滤,但是有时候我们需要forward的时候也用到Filter,这样就需要如下配置。
<filter>
<filter-name>TestFilter</filtername>
<filter-class>anni.TestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>TestFilter</filtername>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>EXCEPTION</dispatcher>
</filter-mapping>
整个方法中的语句都try catch.看有没有异常。
你的那个方法我不会你试试servlet的这个方法可以的。