过滤器和监听器

文章目录


内容回顾

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 中都去进请求和响应的额编格式设置会显
得代码重复臃肿;
使用过滤器可以解决这个问题,在每一个请求被服务器处理之前将编码格式设置好即可;

案例

在这里插入图片描述

监听器
简介

监听器用于 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

在这里插入图片描述

获取在线人数 jsp 页面

在这里插入图片描述
注销用户页面

在这里插入图片描述

日历插件

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

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

在这里插入图片描述

如果复制到 web 下不能征程使用,可以同项目重构进行设置
在这里插入图片描述
在这里插入图片描述
页面代码

在这里插入图片描述
效果

在这里插入图片描述
富文本编辑器

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

下载 UEditor 工具

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

在这里插入图片描述
将解压包复制到项目的 web 目录下,并在项目构造中进行文件的添加;和 my97 时
间控件操作方法一致;
在这里插入图片描述
在 jsp 引入

在这里插入图片描述
在这里插入图片描述
页面效果

在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

划水的阿瞒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值