欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入
publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,
FilterChainchain)throwsIOException,ServletException…{
HttpServletRequestreq=(HttpServletRequest)request;
HttpServletResponsersp=(HttpServletResponse)response;
if(req.getRequestURI().toString().endsWith(“money.jsp”))…{
//什么时候有过钱啊?打回北京去
rsp.sendRedirect(“gohome.jsp”);
System.out.println(“什么时候有过钱啊,滚回家去!”);
return;
}elseif(req.getRequestURI().toString().endsWith(“hongshu.jsp”))…{
if(BigBag.bag.containsKey(“hongshu”))…{
intnum=BigBag.bag.get(“hongshu”)+1;
BigBag.bag.put(“hongshu”,num);
System.out.println(“得到第”+num+”个红薯”);
}else…{
BigBag.bag.put(“hongshu”,1);
System.out.println(“得到第1个红薯”);
}
//村长同意了,下面就是到村民家中拿了。。
chain.doFilter(request,response);
}else…{
//只要不要钱就行,放行
chain.doFilter(request,response);
}
}
publicvoidinit(FilterConfigfilterConfig)throwsServletException…{
}
}
6. 在web.xml中配置监听器和过滤器,如下所示:
<?xmlversion=”1.0″encoding=”UTF-8″?>
<web-appversion=”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”>
<filter>
<filter-name>myFilter</filter-name>
<filter-class>chb.demo.web.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>myFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>chb.demo.web.MyListener</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
好了,大功告成,部署运行,观察结果怎样?
分析结果
我们会观察到如下结果:
当服务启动过程中,控制台输出“要进山了,准备好布袋子”
当点击一下“给红薯”的链接时,控制台会输出“得到第x个红薯”
当点击一下“给钱”的链接时,控制台输出“什么时候有过钱啊,滚回家去!”
怎么样?有点明白了?
其实,监听器就是在服务启动之前做好保证服务正常运行的准备工作,服务结束的时候再善后一下;对应案例中的情况,就是在上路之前把袋子准备好,回来了把袋子扔掉;类似保姆的工作,照顾孩子起床,再照顾孩子睡下。
过滤器就是针对服务器的请求,加以过滤限制;对应案例中的情况,就是村长了,掌握着生杀大权,什么事都得过我这关才行^_^
[1][2]
最可怕的敌人,就是没有坚强的信念。