基于java servlet过滤器和监听器(详解)
1 过滤器
1.过滤器是什么?
servlet规范当中定义的一种特殊的组件,用于拦截容器的调用.
注:容器收到请求之后,如果有过滤器,会先调用过滤器,然后在调用servlet.
2.如何写一个过滤器?
1.写一个java类,实现Filter接口;
2.在接口方法中实现拦截方法;
3.配置过滤器(web.xml);
3.配置初始化参数
1.配置初始化参数.(init-param)
2.通过filterconfig提供的getinitparamenter方法读取初始化的值.
4.优先级:
当有多个过滤器都满足拦截要求,则容器依据<filter-mapping>配置的先后顺序执行.
2 监听器
1.什么是监听器?
servlet规范当中定义的一种特殊的属性,用于监听容器产生的事件的.
注:有两大类事件
I) 声明周期相关的事件:
指得是,当容器创建或者销毁了request,session,servlet上下文对象时,产生的事件.
II) 绑定数据相关的事件:
指的是,当调用了request,session,servlet上下文的setattribute,removeAttrbute时产生的事件.
1.如何写监听器?
1.写一个java类实现监听器接口.
注:依据监听的事件类型选择相应的接口,例如:要监听session创建或者销毁对应的事件,需要实现httpsessionlistener接口
2.在接口方法中,实现监听处理逻辑;
3.配置监听器(web.xml).
2.Serlvet上下文
1.什么是servlet上下文?
容器启动以后,会为每一个web应用创建一个唯一符合servletcontext接口的对象,该对象就是servlet上下文.
2.特点:
I) 唯一性:一个web应用对应一个servlet上下文.
II) 持久性:只要服务器不关闭,应用没有被卸载,则上下文就会一直在.
1.如何获得servlet上下文?
GenericServlet,ServletConfig,FilterConfig,HttpSession都提供了一个方法(getServletContext)
2.上下文的作用
I) 绑定数据
setattribute,getattribute,removeattribute
注:从生存的时间长度比较:request<session<上下文
在满足使用条件的情况下,优先使用声明周期短的.
II) 读取全局的初始化参数.
以上这篇基于java servlet过滤器和监听器(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
详解Servlet之过滤器(Filter)
过滤器 1.为什么使用它? 有很多全站性的东西需要处理,例如乱码问题,通过过滤器统一进行过滤更简单 2.有什么用? 实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截.简单说,就是可以实现web容器对某资源的访问前截获进行相关的处理,还可以在某资源向web容器返回响应前进行截获进行处理. 3.怎么用? 步骤1:先写一个类实现javax.servlet.Filter接口 步骤2:重写抽象方法 步骤3:在doFilter()方法中写处理代码,最后用FilterChain调用FilterCha
-
Java中的拦截器、过滤器、监听器用法详解
本文实例讲述了Java中的拦截器.过滤器.监听器用法.分享给大家供大家参考,具体如下: 一.拦截器 :是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,在你调用方 法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至在你抛出异常的时候做业务逻辑的操作. 1.Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,
-
深入解析Java的Servlet过滤器的原理及其应用
1.Servlet过滤器 1.1 什么是过滤器 过滤器是一个程序,它先于与之相关的servlet或JSP页面运行在服务器上.过滤器可附加到一个或多个servlet或JSP页面上,并且可以检查进入这些资源的请求信息.在这之后,过滤器可以作如下的选择: ①以常规的方式调用资源(即,调用servlet或JSP页面). ②利用修改过的请求信息调用资源. ③调用资源,但在发送响应到客户机前对其进行修改. ④阻止该资源调用,代之以转到其他的资源,返回一个特定的状态代码或生成替换输出. 1.2 Servl
-
Java基础 Servlet监听器详解
Java基础 Servlet监听器详解 1 概念:Servlet监听器,用来监听web容器的一些对象状态的变化,主要是ServletContext.HttpSession.HttpServletRequestl三类对象状态.Servlet的监听器 2 Servlet2.4和JSP2.0规范中一共定义了有八个接口类和六种事件. 3 web.xml中定义Servlet的url-pattern时如果url-pattern的值的"/",则说明该Servlet是该项目的默认Servlet,当请
-
基于java servlet过滤器和监听器(详解)
1 过滤器 1.过滤器是什么? servlet规范当中定义的一种特殊的组件,用于拦截容器的调用. 注:容器收到请求之后,如果有过滤器,会先调用过滤器,然后在调用servlet. 2.如何写一个过滤器? 1.写一个java类,实现Filter接口; 2.在接口方法中实现拦截方法; 3.配置过滤器(web.xml); 3.配置初始化参数 1.配置初始化参数.(init-param) 2.通过filterconfig提供的getinitparamenter方法读取初始化的值. 4.优先级: 当有多个过
-
基于Java中的StringTokenizer类详解(推荐)
StringTokenizer是字符串分隔解析类型,属于:Java.util包. 1.StringTokenizer的构造函数 StringTokenizer(String str):构造一个用来解析str的StringTokenizer对象.java默认的分隔符是"空格"."制表符('\t')"."换行符('\n')"."回车符('\r')". StringTokenizer(String str,String delim)
-
基于Java中字符串内存位置详解
前言 之前写过一篇关于JVM内存区域划分的文章,但是昨天接到蚂蚁金服的面试,问到JVM相关的内容,解释一下JVM的内存区域划分,这部分答得还不错,但是后来又问了Java里面String存放的位置,之前只记得String是一个不变的量,应该是要存放在常量池里面的,但是后来问到new一个String出来应该是放到哪里的,这个应该是放到堆里面的,后来又问到String的引用是放在什么地方的,当时傻逼的说也是放在堆里面的,现在总结一下:基本类型的变量数据和对象的引用都是放在栈里面的,对象本身放在堆里面,
-
基于java中集合的概念(详解)
1.集合是储存对象的,长度可变,可以封装不同的对象 2.迭代器: 其实就是取出元素的方式(只能判断,取出,移除,无法增加) 就是把取出方式定义在集合内部,这样取出方式就可以直接访问集合内部的元素,那么取出方式就被定义成了内部类. 二每一个容器的数据结构不同,所以取出的动作细节也不一样.但是都有共性内容判断和取出,那么可以将共性提取,这些内部类都符合一个规则Iterator Iterator it = list.iterator(); while(it.hasNext()){ System.out
-
基于Java ORM框架的使用详解
ORM框架不是一个新话题,它已经流传了很多年.它的优点在于提供了概念性的.易于理解的数据模型,将数据库中的表和内存中的对象建立了很好的映射关系.我们在这里主要关注Java中常用的两个ORM框架:Hibernate和iBatis.下面来介绍这两个框架简单的使用方法,如果将来有时间,我会深入的写一些更有意思的相关文章.HibernateHibernate是一个持久化框架和ORM框架,持久化和ORM是两个有区别的概念,持久化注重对象的存储方法是否随着程序的退出而消亡,ORM关注的是如何在数据库表和内存
-
Java Servlet响应httpServletResponse过程详解
目录 一.核心方法 1.setStatus 2.setHeader(Stringname,Stringvalue) 3.addHeader(Stringname,Stringvalue) 4.setContentType(Stringtype) 二.响应一个网页 三.返回一个文件 四.返回json数据 一.核心方法 1.setStatus 设置响应状态码 如果没有调用这个方法,默认返回200状态码(前提:正常执行,没有异常) 如果出现异常,返回500 前端代码: <body> <h3&g
-
基于java Springboot实现教务管理系统详解
目录 视频演示 研究背景 我国教务现状与反思 主要技术和环境: 功能截图: 总结: 视频演示 研究背景 在当今信息社会发展中中,计算机科学的飞速发展,大多数学校开始注意办公效率的发展是很关键,对学校的管理起到举足轻重的作用.基于 Internet 网络的信息服务,快速成长为现代学校中一项不可或缺的内容措施.很多校园都已经不满意商务办公管理的缓慢成长方式.学院的需求是一个功能强大的,能提供完善管理,管理信息系统的速度.社会持续向前发展,尤其是大多地方普及计算机,计算机应用已经开始向大容量的数据存储
-
基于Java代码操作Redis过程详解
Jedis简介 实际开发中,我们需要用Redis的连接工具连接Redis然后操作Redis, 对于主流语言,Redis都提供了对应的客户端: 提供了很多客户端 官方推荐的是Jedis 托管地址:https://github.com/xetorthio/jedis 要使用redis首先得下载pom依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId&g
-
基于java TCP网络通信的实例详解
JAVA中设计网络编程模式的主要有TCP和UDP两种,TCP是属于即时通信,UDP是通过数据包来进行通信,UDP当中就会牵扯到数据的解析和传送.在安全性能方面,TCP要略胜一筹,通信过程中不容易出现数据丢失的现象,有一方中断,两方的通信就会结束,UDP数据包传送的过程当中,一方中断,数据包有很大的可能丢失,还有可能传来的数据包的顺序是错乱的:在效率方面,UDP要比TCP快的不只是一点点的问题,若终端有解析数据方法的函数,数据包就会源源不断的传送过来,然后反馈回去.以上都是我自己的理解,下面是关于
-
基于Java字符编码的使用详解
1,什么是字符编码? 字符(Character)是文字与符号的总称,包括文字.图形符号.数学符号等.一组抽象字符的集合就是字符集(Charset).字符集的出现是为了信息进行传播储存提供方便.目前常用到字符集有:ASCII,ISO 8859-1,Unicode,GB2312 2,各种编码集有哪些特点? ASCII: ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统. 包含内容:
随机推荐
- Vue组件之Tooltip的示例代码
- 浅谈redis的maxmemory设置以及淘汰策略
- WMI StdRegProv 通过wmi操作注册表的vbscript实现代码 (本地或远程)
- Nginx伪静态配置和常用Rewrite伪静态规则集锦
- Android之沉浸式状态栏的实现方法、状态栏透明
- Swift循环遍历集合的方法总结分享
- PHP中func_get_args(),func_get_arg(),func_num_args()的区别
- php通过ajax实现双击table修改内容
- 深入认识javascript中的eval函数
- mac 中docker安装mysql的图文教程
- 什么是Unicode,什么是UTF-8
- 5分钟了解MySQL5.7中union all用法的黑科技
- 利用adt-bundle轻松搭建Android开发环境与Hello world(Linux)
- iis 创建应用程序池的方法与分析第1/3页
- 《C++ primer plus》读书笔记(一)
- 详解state状态模式及在C++设计模式编程中的使用实例
- visual studio 2013中配置opencv图文教程 Opencv2.4.9安装配置教程
- asp.net Repeater 自增
- Android刮刮卡效果实现代码
- Android实现图片异步加载及本地缓存