戏说Java web开发中的listener和filter

发表于:2010-2-08 10:44

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

#
java

  今天在公司看到有同事在写filter,晚上一个人在家无聊,就想聊聊这个东西。

  jsp开发中的监听器和过滤器,这两个东西要说起来,很大,很繁。今天我想用一个现实的例子,来说明这两个东东的作用。

  案例描述

  假设你平时生活在北京,有天你去一个很边远很贫穷的山村体验生活,到了那个山村后,你想要什么东西,村长都会同意,然后安排村民送给你,但是有一点例外的是,一旦你问他们要钱,村长坚决不给,还会带领村民把你打回北京去。

  你为了从村民那里带走尽量多的东西,所以你在出发前准备了一个大袋子,希望把村民给的东西都放到袋子里;然后你在回到城市后,这个袋子就没用了,你就把这个袋子给扔了。

  代码模拟

  恩,我想用如下简单代码来模拟以上案例,大家可以想一下监听器扮演者什么角色?过滤器扮演什么角色?

  1. 新建一个java web project;

  2. 默认的index.jsp页面上加上两个链接,模拟要村民要红薯和要钱,如下:

1. <html>  
2.   <body>  
3.     <h1>欢迎掉入无名村,哈哈</h1><br>  
4.     <a href="hongshu.jsp">给红薯</a><br/>  
5.     <a href="money.jsp">给钱</a><br/>  
6.   </body>  
7. </html>

  3. 新建一个大布袋类:BigBag.java,如下:

1. package chb.demo.web;  
2.  
3. import java.util.HashMap;  
4.  
5. public class BigBag ...{  
6.     public static HashMap<String, Integer> bag;//村民的东西就放在这个袋子里  
7. } 

  4. 新建一个监听器:MyListener.java,如下:

1. package chb.demo.web;  
2.  
3. import java.util.HashMap;  
4.  
5. import javax.servlet.ServletContextEvent;  
6. import javax.servlet.ServletContextListener;  
7.  
8. public class MyListener implements ServletContextListener...{  
9.  
10.     public void contextDestroyed(ServletContextEvent arg0) ...{  
11.         BigBag.bag = null;  
12.         System.out.println("回城了,让掉烂袋子吧");  
13.     }  
14.  
15.     public void contextInitialized(ServletContextEvent arg0) ...{  
16.         BigBag.bag = new HashMap<String, Integer>();  
17.         System.out.println("要进山了,准备好布袋子");  
18.     }  
19.  
20. } 

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号