1 :-->执行顺序:
过滤器1请求
第二个过滤器请求:
第二个过滤器响应!
过滤器2响应
解说:过这个结果可以得知在调用FilterChain对象的doFilter
方法之前的代码都是对请求的过滤,在此之后的都是对响应的过滤。
2:--->配置文件
<filter>
<filter-name>firstFilter</filter-name>
<filter-class>com.xasxt.filter.FirstFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>firstFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>SecondFilter</filter-name>
<filter-class>com.xasxt.filter.SecondFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SecondFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 字符问题 -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>com.xasxt.filter2.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>characterEncoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3:---> 作用
1:request.setCharacterEncoding("UTF-8");
2:Hibernate中的作用1-->为了提交事务
<filter-mapping>
<filter-name>myFilter</filter-name>
<url-pattern>*.do</url-pattern>//过滤所有的*。do,
</filter-mapping>
Session session = HibernateSessionFactory.getSession();
Transaction ts = session.beginTransaction();
try{
chain.doFilter(request, response);
ts.commit();
}catch(RuntimeException e){
ts.rollback();
System.out.println("异常错误信息:"+e.getMessage());
throw e;
}