⑴ web.xml中的过滤器可否动态配置
直接使用spring的过滤器就可以定义好对应filter和filter-mapping之后即可自动进行过滤,典型的回就是编码过答滤器。
<filter>
<filter-name>CharacterEncodingFilter</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>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
备注:
这个是固定写法,代码中的“*”表示所有内容都必须经过此过滤器,也可以自定义类型。
也可以自动与过滤器,之后只需要继承自Filter 即可。
⑵ jsp中的中文乱码过滤器如何写,在web.xml里如何配置有没劳永逸的决绝方案
写在jsp文件中 只对post有效. request.setCharacterEncoding("gbk");该代码一般放在最前面. 上面这行代码只能getParameter()前设置,否则此代码无效.
⑶ 如何配置Filter过滤器处理JSP中文乱码
注意问题:在学习用selvert的过滤器filter处理中文乱码时,在filter配置初始化时用了utf-8处理中文乱码,而在提交的jsp页面中却用了gbk。虽然两种都可以出来中文乱码,但是却造成了处理乱码的格式不一致。所以编译出错。
解决方法:所有地方都用utf-8或gbk
//过滤器类
CharactorFilter.jsp
package cn.com.Filter;
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 CharactorFilter implements Filter { //继承Filter类
//字符编码
String encoding=null;
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if(encoding!=null){
//设置request字符编码
request.setCharacterEncoding(encoding);
//设置response字符编码
response.setContentType("text/html;charset="+encoding);
}
//传递给下一个过滤器
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
//获取初始化参数
encoding=filterConfig.getInitParameter("encoding");
}
public void destroy() {
// TODO Auto-generated method stub
encoding=null;
}
}
web.xml
<filter> <!--注意这里是filter,不要配置成servlet-->
<filter-name>CharactorFilter</filter-name> <!--过滤器名称-->
<filter-class>cn.com.Filter.CharactorFilter</filter-class> <!--过滤器的完整类名-->
<init-param> <!--初始化参数-->
<param-name>encoding</param-name> <!--参数名称-->
<param-value>utf-8</param-value> <!--参数值-->
</init-param>
</filter>
<filter-mapping> <!--过滤器映射-->
<filter-name>CharactorFilter</filter-name><!--过滤器名称-->
<url-pattern>/*</url-pattern><!--URL映射,给所有页面处理乱码-->
</filter-mapping>
⑷ 在web.xml中,配置过滤器出现的问题
你把顺序写错了,它是根据上面的dtd规范来的,你把鼠标移上错误那里去看,它有每个标签的先后顺序,看那filter和filter-mapping是写在servlet前面的,明白问题所在了么
⑸ web.xml 配置过滤器 问题
伙计,别这样写了,出错的原因不在过滤器本身,而是在xml文件上,xml文件不支持通配符版,所以你可以把<url-pattern>的值权改为"*",默认全都过滤,然后在过滤器里面写一个正则表达式:
String str = "[\\w]{1,}\\.jsp$";来判断是否是jsp页面,如果是就不执行doFilter()方法,这样过滤才算灵活,获取请求的文件名不用我说了吧?相信你会的
⑹ Java XML 配置过滤器错误
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>//这里填你过滤器的路径com.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>/*</url-pattern>
</filter-mapping>
<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-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
⑺ 在web.xml中加入过滤器
在web.xml中加入过滤器,参考代码如下:
<filter>
<filter-name>authority</filter-name> //过滤器的名称,可以自行修改
<filter-class>com.topcheer.filter.AuthorityFilter</filter-class>
<init-param> //初始化的参数
<param-name>NotRequiredAuthorityURL</param-name>
<param-value>/downloadImageControl.action,/initLogin.action,/default.jsp,/logout.jsp,/invalidation.jsp,/login.action,/default.action</param-value>
</init-param> //初始化的参数
<init-param> //初始化的参数
<param-name>invalidURL</param-name> //过滤器要过滤的对象,可自行设置
<param-value>/invalidation.jsp</param-value>
</init-param>
</filter>
<filter-mapping> //过滤器映射
<filter-name>authority</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping> //过滤器映射
<filter-mapping> //过滤器映射
<filter-name>authority</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
⑻ 为什么我项目创建了过滤器web。XML配置也没问题,还存在中文乱码的问题
<?xml version="1.0" encoding="UTF-8"?>
你的xml,指定编码没。第一行。
⑼ 懂java进,为什么我在web.xml中配置过滤器,然后就找不到路径了,都是404错误
因为你的filter可能配置错误,导致tomcat无法启动你的web应用,于是就404了,对于filter错误是最麻烦的,因为每次错误都基本不太一样。需要仔细检查
⑽ web-xml文件配置过滤器就报404或者直接进不了网页
加载你配抄置的类出错了吧
找不到类的说
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
... 30 more
Caused by: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/RequestContext
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.(Class.java:2389)