欢迎访问wabc.cc — 源码交易 · 软件定制 · 建站服务一站式平台
全部分类
首页 - 首页 - 解决方案 - 推荐文章 - Java知识点分享之监听器和过滤器的介绍及应用

Java知识点分享之监听器和过滤器的介绍及应用

分类:推荐文章 · 发布:2025-12-21 · 浏览:2

 今天千锋重庆小编继续给大家分享关于Java开发技术的知识点。

       JavaWeb中,监听器是一种组件,能够监听项目的启动和停止,用户会话的创建和销毁,以及各种组件的添加、更新和删除,能够通过监听对象的状态改变,自动做出反应执行响应代码。

  应用场景:启动网站后进行初始化、检测用户的数量等。

  常用的监听器接口:

  ServletContextListener 监听项目的启动和停止

  方法:

  contextInitialized 项目加载完成

  contextDestroyed 项目停止

  HttpSessionListener 监听用户会话的创建和销毁

  sessionCreated 每一个用户第一次访问时调用

  sessionDestroyed 每个用户退出系统后调用

  监听器的配置:

  方式1 web.xml

1.jpg

   方式2 注解

  @WebListener

  案例:监听网站的启动

2.jpg

案例:监听网站的用户数

3.jpg

1531115906583.jpg

4.jpg

 JSP页面:

5.jpg

 过滤器

  能够对网站中的各种内容进行过滤(页面、Servlet、图片、文件),可以在网站内容请求和响应时进行一些操作,完成一些通用的功能。

  过滤器

  在项目中可以创建多个过滤器,网站内容可能会经过多个过滤器,多个过滤器就形成了过滤器链。

6.png

实现方法:

  1、实现Filter接口

  init 初始化

  doFilter 进行过滤

  参数:

  ServletRequest 请求

  ServletResponse 响应

  FilterChain 过滤器链

  //让请求通过,执行下一个过滤器,如果不执行这个方法,请求就被拦截

  chain.doFilter(request, response);

  destroy 销毁

  2、配置

  web.xml

8.jpg

 注解:

  @WebFilter({"/*"})

  @WebFilter({"/test1.jsp","/test2.jsp"})

  过滤器执行的顺序:

  如果是注解配置的,按名字顺序进行执行

  如果是web.xml配置的,按过滤器filter定义的顺序

  案例:表单重复提交问题

  把表单数据多次提交给服务器

  问题:1、加大服务器的负担 2、多次插入重复的数据

  可能出现重复提交的情况:

  1、提交表单后,用forward跳转到其它页面,刷新页面

  2、提交表单后,服务器还没有响应前,多次刷新页面

  3、提交表单后,服务器还没有响应前,多次点击提交按钮

  4、提交表单后,跳转后点击返回,点击提交

  解决方法:

  1、进入表单页面前,在过滤器中创建Token(令牌)随机字符串,保存到Session中。

  2、在表单中添加一个隐藏域,值是Token字符串,会和表单一起提交服务器

  3、提交服务器后,将表单中Token和Session中Token进行比较,如果相同就正常提交表单,否则就是重复提交。

  4、如果能够成功提交后,把Session中的Token去掉。

 JSP页面:

1.jpg

总结:本章学习的监听器能够监听项目中各种对象的状态,如项目的启动和停止、用户会话的创建和销毁、会话属性的添加删除等,然后自动调用对应的方法,在实际工作中能完成缓存的提前加载,和项目的相关配置工作。而过滤器能过滤网站中的各种资源,给Servlet和JSP添加一些额外的功能,如:设置编码格式、对用户进行登录验证、解决重复提交问题等。

  千锋重庆Java开发培训作为中国IT研发人才一体化服务的开拓者,为学生制定合理有序的学习计划,2周免费试听不满意不收费,与学员签订就业协议,坚持良心面授,从千锋重庆Java开发培训班出去的学员均已高薪就业。千锋重庆推出的免费Java视频教程,让学员能够更好的巩固基础技术能力。


上一篇:恩百思洗衣宝投资系统
下一篇:黄褐斑好治吗?科学去斑快速法给你意想不到的收获

相关文章

源码分类

热门源码

最新资讯

联系我们