前言

开心一笑~~~

一个年轻的程序员和一个项目经理登上了一列在山里行驶的火车,他们发现列车上几乎都坐满了,只有两个在一起的空位,这个空位的对面是一个老奶奶和一个年轻漂亮的姑娘。两个上前坐了下来。程序员和那个姑娘他们比较暧昧地相互看对方。这时,火车进入山洞,车厢里一片漆黑。此时,只听见一个亲嘴的声音,随后就听到一个响亮的巴掌声。很快火车出了山洞,他们四个人都不说话。那个老奶奶在喃喃道,“这个年轻小伙怎么这么无礼,不过我很高兴我的孙女扇了一个巴掌”。项目经理在想,“没想到这个程序员居然这么大胆,敢去亲那姑娘,只可惜那姑娘打错了人,居然给打了我。”
漂亮的姑娘想,“他亲了我真好,希望我的祖母没有打疼他”。 程序员坐在那里露出了笑容,“生活真好啊。这一辈子能有几次机会可以在亲一个美女的同时打项目经理一巴掌啊”

内容

Filter是AOP思想的实践者,它体现了一种横切性的技术。Filter技术在servlet2.3规范中才开始加入,大部分的jsp/servlet容器都支持。其实Filter提供了一种声明式服务,非常强大的服务,具有可插拔的能力。

原理

Filter对Http协议过程中的request和response进行了拦截,用户的请求不管是request还是response都要经过Filter,Filter就可以自定义服务,然后切入到里面。进行解耦合的完美服务。需要注意的是,Filter只对Post请求起作用。

实例

采用Filter完成字符集的统一设置。

Tomcat启动时,进行Filter初始化。

Demo

/*
* 采用Filter统一处理字符集
* 作者:周丽同
*/
public class CharsetEncodingFilter implements Filter { //获取init()中endcoding的值
private String endcoding; public void destroy() {
} //进行http请求的时候,进行doFilter
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
//设置字符集
request.setCharacterEncoding(endcoding);
//继续执行
chain.doFilter(request, response);
} //① tomcat启动时,完成Filter初始化
public void init(FilterConfig filterConfig) throws ServletException {
//读配置文件的值
this.endcoding = filterConfig.getInitParameter("encoding");
System.out.println("CharsetEncodingFilter.init()-->> endcoding=" + endcoding);
} }

Web.xml

	<filter>
<filter-name>CharsetEncodingFilter</filter-name>
<filter-class>com.bjpowernode.drp.util.filter.CharsetEncodingFilter</filter-class> <init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter> <filter-mapping>
<filter-name>CharsetEncodingFilter</filter-name>
<!-- 对所有jsp起作用 -->
<url-pattern>*.jsp</url-pattern>
</filter-mapping>

小结

很简单的一个小例子,希望通过这个例子,加深印象。

感谢您的宝贵时间···

最新文章

  1. 【javascript 技巧】Array.prototype.slice的妙用
  2. Failed to retrieve data for this request. (Microsoft.SqlServer.Management.Sdk.Sfc)
  3. css总集
  4. VIM使用(二) 浏览内核源代码
  5. Java后台传前台json数组
  6. javaweb学习总结(六)——Servlet开发(二)
  7. 信息安全系统设计基础exp_1
  8. Oracle OCCI学习之开篇
  9. JavaWeb基础:Servlet
  10. PO &gt; Create PO时关于汇率问题需要注意的步骤
  11. Java ----------- SQL语句总结(更新中。。。。。。)
  12. IO之流程与buffer概览
  13. JTable demo
  14. nginx 配置https 负载均衡
  15. 离开Visual Studio C#的编译(你不知道的C#)
  16. 删除项目中的.pyc文件
  17. js 中 的 BOM对象
  18. docker安装问题:E: Package &#39;docker-ce&#39; has no installation candidate
  19. python 搭建一个http服务的小例子
  20. MyBatis之Hello world(Mybatis入门)

热门文章

  1. openLDAP 2
  2. FP回写报错
  3. 依赖VUE组件通讯机制实现场景游戏切换
  4. 对加密的了解(DES/3DES/AES区别 )
  5. Opencv读取图片像素值
  6. 673. Number of Longest Increasing Subsequence最长递增子序列的数量
  7. KVM下raw和qcow2格式磁盘文件IO测试
  8. [Training Video - 3] [Groovy in Detail] Non-static and Static variables, objects and object referances
  9. Go 网络编程笔记
  10. 如何查找文件中的schema约束