前言
本文章记录了我对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有帮助。