栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Servlet(监听器与过滤器)(下)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Servlet(监听器与过滤器)(下)

Servlet的扩展工具及应用

文章目录
  • Servlet的扩展工具及应用
    • 1.监听器接口(Listener)
      • (1).监听器的概述:
      • (2).作用域对象:
      • (3).监听器接口详解:
        • a.ServletContextListener接口:
        • b.ServletContextAttributeListener接口:
    • 2.过滤器接口(Filter)
      • (1).过滤器的概述:
      • (2).使用规范:
      • (3).使用语法:
      • (4).过滤器的应用(防止用户恶意登录)
    • 3.通信流程图的总结:

1.监听器接口(Listener) (1).监听器的概述:

简介:

①来自Servlet规范中,存在共8个接口;
②需要开发人员自行去实现,并无现成的实现类;

作用:

用于监控 【作用域对象生命周期变化时刻】
或者【作用域对象共享数据变化时刻】。

(2).作用域对象:

概念:

Servlet中,服务器内存中可存在某些条件下为两个Servlet间提供数据共享的对象,叫作作用域对象。

分类:

Ⅰ.ServletContext:全局作用域对象;
Ⅱ.HttpSession:会话作用域对象;
Ⅲ. HttpServletRequest:请求作用域对象;

监听器接口实现类开发规范:

Ⅰ.根据实际情况,选择适当的作用域对象;
Ⅱ.重写监听器接口声明【监听事件处理方法】;
Ⅲ.在web.xml文件将监听器接口实现对象注册到Http中。

web.xml文件的注册语法:


	(接口实现src下的地址+类名)

(3).监听器接口详解: a.ServletContextListener接口:

作用:

合法的检测【全局作用域对象】被初始化销毁时刻;

语法规则:

//【全局作用域对象】被初始化时被调用
public void contextInitialized();

//【全局作用域对象】被销毁时被调用
public void contextDestroyed();
b.ServletContextAttributeListener接口:

作用:

合法监测全局作用域对象共享数据变化时刻。

语法规则:

//在【全局作用域对象】中添加数据时被调用
public void attributeAdded();

//在【全局作用域对象】中更新数据时被调用
public void attributeReplaced();

//在【全局作用域对象】中删除数据时被调用
public void attributeRemoved();

修改数据的案例:

//拿到【全局作用域对象】
ServletContext application = request.getServletContext();
//增添数据
application.setAttribute("key1",100);
//修改数据
application.setAttribute("key1",200);
//删除数据
application.removeAttribute("key1");
2.过滤器接口(Filter) (1).过滤器的概述:

简介:

Ⅰ.来自Servlet规范,存在与servlet-api.jar包下;
Ⅱ.需开发人员自行实现,无现成实现类;

作用:

Ⅰ.用于服务器调用资源以前,进行拦截;
Ⅱ.拦截Http服务器,检测当前请求的合法性;
Ⅲ.拦截Http服务器,对当前请求进行增强操作;

(2).使用规范:

Ⅰ.创建一个类,实现Filter接口;
Ⅱ.实现doFilter()方法;
Ⅲ.在web.xml中注册到Http服务器中;

在web.xml中的注册语法:
需被拦截文件名处的三种泛指:
(假设img目录下存储图片ice.jpg)
Ⅰ./img/ice.jpg
Ⅱ.*.jpg
Ⅲ./img HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; HttpSession session = null; //通过【请求对象】获取到请求行中的uri String uri = request.getRequestURI(); //如果登录信息出现login相关的,过滤器无条件通过 if (uri.indexOf("login")!=-1 || "/myWeb/".equals(uri)){ filterChain.doFilter(servletRequest, servletResponse); return; } //如果访问其他资源文件,则需验证用户的session session = request.getSession(false); if (session != null){ filterChain.doFilter(servletRequest, servletResponse); return; } request.getRequestDispatcher("login_error.html").forward(servletRequest, servletResponse); } 3.通信流程图的总结:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/292831.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号