过滤器和监听器

文章目录

    • 内容回顾


内容回顾

Cookie

跟踪用户信息,实现有效期内自动加载用户信息,无需手动输入;
Cookie 保存在客户端浏览器,默认是当浏览器关闭,cookie 销毁;如果需要在关闭浏览器
后的某段时间内有效,就需要设置 coolie 的有效期;
Cookie 由于使用浏览器进行数据的保存,相较而言安全性较低;
Cookie 使用:
① 后台进行 Cookie 的添加
a. 创建 Cookie -- 构造方法
b. 使用 Cookie 对象保存用户信息 --- 创建对象时传入需要保存的数据
Cookie cookie = new Cookie(key,value);
c. 设置 Cookie 有效期 --- setMaxAge(n秒)
d. 将 Cookie 响应给客户端浏览器 -- resp.addCookie(cookie);
② 页面获取 Cookie
<%
Cookie[] cks = request.getCookies();
for(Cookie cookie : cks){
request.setAttribute(cookie.getName(),
cookie,getVlaue);
}
%>
③ 表单显示用户信息
${username}/${pwd}

Session

服务器会话技术,将用户信息保存在 session 对象中,一旦建立会话,只要不主动结束会
话,整个站点内所有的页面都能共享 session 数据;
主要功能:
① 与 cookie 实现自动登录
② 登录权限验证

过滤器

当客户端发送给服务器一个请求时,先通过过滤器进行请求的拦截,在过滤器中判断如果请求
的内容满足条件再放行,如果不满足,一般操作时重定向到指定的页面;
过滤器可以有多个,针对每一个请求进行多次的拦截过滤;
过滤器使用:
① 自定义类实现 Filter 接口
② 过滤器生效,在 web.xml 配置自定义过滤器,或者使用 @WebFilter对自定义过
滤进行注解生效
③ @WebFilter("/*") -- 表示过滤所有的请求;在使用多个过滤器时,通过自定义
过滤器的类名先后顺序来确定过滤器执行的顺序;
④ 实现过滤
doFilter(servletRequest,servletRespnse,filterChain);
servletRequest: --- 请求 --- 获取 HttpServletRequset
servletResponse: -- 响应 -- 获取 HttpServletResponse
filterChain:用于请求放行 -- 放行的方法 doFilter(req,resp)
放行是为了将请求交给下一个过滤器或者服务器

编码过滤器
简介

在编码的过程中,会涉及多个请求和servlet,在 servlet 中请求参数和响应结果的时候
通常需要进行编码格式设置;如果在每个 servlet 中都去进请求和响应的额编格式设置会显
得代码重复臃肿;
使用过滤器可以解决这个问题,在每一个请求被服务器处理之前将编码格式设置好即可;

案例

过滤器和监听器_第1张图片

监听器
简介

监听器用于 web 程序事件的监听,用 Listener 接口进行表示;
Listener 使用观察者模式,事件发生时会自动触发该事件对应的Listener,
主要用于对 Session、request、context 三个对象进行监控;对应的监听器有 8 个,8
个监听器可按监听的内容划分为三类:
① 三个对象创建、修改、删除操作监听
Session -- HttpSessionListener
request -- ServletRequestListener
context -- ServletContextListener
② 三个对象内部属性变化的监听
Session -- HttpSessionAttributeListener
request -- ServletRequestAttributeListener
context -- ServletContextAttributeListener
③ 用于 Session 内部对象监听
HttpSessionBindingListener
HttpSessionActivationListener
注意:Session 内部对象监听器和前六种有所不同,不需要配置就能进行监听

统计在线用户数量(HttpSessionListener)
自定义监听器实现 HttpSessionListener

过滤器和监听器_第2张图片

获取在线人数 jsp 页面

过滤器和监听器_第3张图片
注销用户页面

过滤器和监听器_第4张图片

日历插件

如果 jsp 页面中需要进行日期的填写,手动的输入时间格式可能和后台解析时间的格式不匹
配导致时间解析和格式化失败;并且手动进行时间的录入也不太方便,这种时候咱们可以借助
时间插件来完成时间的填写;
my97

解压下载的压缩包,并将压缩包复制到 web 目录下

过滤器和监听器_第5张图片

如果复制到 web 下不能征程使用,可以同项目重构进行设置
过滤器和监听器_第6张图片
过滤器和监听器_第7张图片
页面代码

过滤器和监听器_第8张图片
效果

过滤器和监听器_第9张图片
富文本编辑器

如果页面上需要有大块区域进行文本的编写,并且能够在编写文本时对文本进行基本的样式设
置,普通的文本域满足不了需求,富文本编辑器具备这样的功能;所以需要的时候可以使用富
文本编辑器替代文本域;

下载 UEditor 工具

http://fex.baidu.com/ueditor/
下载后将压缩包解压

过滤器和监听器_第10张图片
将解压包复制到项目的 web 目录下,并在项目构造中进行文件的添加;和 my97 时
间控件操作方法一致;
过滤器和监听器_第11张图片
在 jsp 引入

过滤器和监听器_第12张图片
过滤器和监听器_第13张图片
页面效果

过滤器和监听器_第14张图片

你可能感兴趣的:(笔记,servlet,java,前端)