控制器,过滤器,监听器的学习


前言

本文章记录了我对jee学习中遇到的三大器以及对其作用的理解。


提示:以下是本篇文章正文内容,下面案例可供参考

一、控制器

1.关于控制器

首先我们要知道jee的MVC模式,M为模型,对应JavaBean;V为视图,对应JSP页面;C即为控制器,对应相应的Servlet。当请求发起时,控制器将其分配到相应的Servlet,并且调用相关的JavaBean(即V)来处理请求,通过jsp呈现处理结果。

2.控制器的配置

 

二、过滤器

1.关于过滤器

设置首先需要创建一个过滤器类,基于父类Filter

过滤器类基本上是这样一个格式,有构造方法,初始化方法init,销毁方法destroy,和过滤方法doFilter,当请求需要通过控制器或页面时,会先通过相应的过滤器,过滤器在doFilter方法中对请求进行相应的处理,通过处理后才会放行到后面的过滤器或者控制器。我们也可以通过通配符/*设置整个webapp的过滤器。

2.过滤器的配置

还是跟之前相同的配置。

3.过滤器链

当多个过滤器拥有相同的url配置时,会根据filter-mapping的配置顺序一个个通过相应的过滤器,满足条件则放行到下一个过滤器,直到请求结束,当然,如果有通配符的过滤器,会优先考虑。

三.监听器

1.关于监听器

监听器用于监听webapp中的三个作用域,当相应对象创建,销毁,里面的数据变化时,都会被相应的监听器监听到,具体创建,销毁,数据设置可以参考我前面的文章

这里以session为例:

SessionListener的sessionCreated,sessionDestroyed分别监听session的创建和销毁。
SessionAttributeListener的attributeAdded,attributeRemoved,attributeReplaced分别监听session属性的增加,删除,替换。

这里就涉及到一个问题,什么时候会创建session

在这里插入图片描述

因为我们监听器是监听创建相应对象,以及调用相应方法,所以我们要知道什么时候创建对象,第一种就是在Servlet中有创建对象,这是我们在后端可见的。但是jsp也是会自动创建session对象的,我之前在学习的时候就遇到在代码里面并没有用到session,但是监听器却检测到的情况,困扰了很久才发现在JSP页面中只要你不自动添加指令标签 <% @page session="false"%>去禁用session的话,那么在JSP被编译成Servlet时,就会自动加上这样一条语句HttpSession session = HttpServletRequest.getSession(true); 来创建session了。

2.监听器的配置

 直接给相应的源根路径就行,监听器会根据相应的类完成监听。


总结

过滤器和监听器在启动webapp时就会进行初始化,当有请求通过时会完成对应的职责,我们可以通过这些东西完成自动登录,在线用户统计,点击量统计等等操作,所以这些东西都是完成业务所需要的操作,所以我们要在合适的地方使用合适的器才能更好完成业务,文章内容也是博主四处学习总结的,希望文章对大家学习jee有帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值