java基础-filter
来源:互联网 发布:js中函数的定义 编辑:程序博客网 时间:2024/05/29 10:30
我们先看看没有filter的时候,整个web客户端-服务端的一个流程。
接下来我们再看看引入了filter之后的Uml图。尝试分析这两者之间的差别。
filter从哪里来?
是在servlet2.3规范中加入的。
filter的生命周期?
同servlet的生命周期相同。
filter的执行过程?
看到这里有没有想起我们的数据库结构关于栈的描述,filter和栈一样,也是按照先进后出的顺序。
filter的实质(个人之言)
现阶段在我看来,filter其实是对http的请求进行过滤,所以有时候完全可以实现页面拦截的功能。它是一种声明式的服务,具有可插拔的能力。
应用:
1.继承filter
package com.bjpowernode.drp.util.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;/** * 采用Filter统一处理字符集 * @author Administrator * */public class CharsetEncodingFilter implements Filter {private String encoding; public void destroy() {}public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {System.out.print("刚刚进来");//设置字符集request.setCharacterEncoding("GB18030");//继续执行chain.doFilter(request, response);System.out.print("好了,结束了");}/** * @param filterConfig可以用来读取filter里头的参数 */public void init(FilterConfig filterConfig) throws ServletException {this.encoding = filterConfig.getInitParameter("encoding");System.out.print("encoding"+encoding);}}
2.在web.xml文件中配置
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name></display-name> <!-- 告诉tomcat去找那个filter --> <filter> <filter-name>CharsetEncodingFilter</filter-name> <filter-class>com.bjpowernode.drp.util.filter.CharsetEncodingFilter</filter-class> <!-- 在filter里头传入参数 --> <init-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </init-param> </filter><!-- 告诉哪个filter对哪些个servlet起作用 --> <filter-mapping> <filter-name>CharsetEncodingFilter</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> </web-app>
3.然后在页面加载的时候,就可以看到filter的效果了。
2 0
- java web filter 基础
- java web基础 --- Filter
- java基础-filter
- JAVA基础(七) Filter详解
- 【java基础】filter拦截器
- 【java基础】——Filter
- Java Web 基础 --- Filter 综述
- Java Web 基础 --- Filter 综述
- Java Web 基础 --- Filter 综述
- Java进阶(三十三)java基础-filter
- Java进阶(三十三)java基础-filter
- Java进阶(三十三)java基础-filter
- java web filter 之一 基础实现
- Java web filter 之一 基础实现
- java web filter 之一 基础实现
- 【Java基础】--filter过滤器原理解析
- java web基础 --- URL重定向Filter
- java web filter 之一 基础实现
- vc++的编译选项
- 【增强学习】Torch中的增强学习层
- 我的模板库
- Codeforces 638A:Home Numbers(规律)
- RTC对移动开发IDE的支持
- java基础-filter
- cocos2dx的命令行编译出现 error: undefined reference to ‘xxx’
- C++第7次实验—最大公约数和最小公倍数
- 通过NSURLSessionConfiguration构建NSURLSessionDataTask
- C++第七次作业
- C++实验7—最大公约数和最小公倍数
- 逻辑运算和位运算
- 如何提高机器速度 并行性
- 关于项目第三方库的选用