JavaWeb的三大组件 Servlet、Listener、Filter

版权声明:小佳 https://blog.csdn.net/qq_37870901/article/details/83513937

1.Servlet

Servlet 是一个 Java程序,是在服务器上运行以处理客户端请求并做出响应的程序

 Servlet的生命周期

是一个servlet的从初始化(出生)到销毁(死亡)。

  Init() -> service() -> destroy().

加载类型:加载class文件

实例化类型:Servlet 容器创建 Servlet 的实例

初始化:该容器调用 init() 方法

请求处理:如果请求 Servlet,则容器调用 service() 方法

服务终止:销毁实例之前调用 destroy() 方法

Servlet的继承层次

ServletConfig

ServletConfig对象: 主要是用于加载servlet的初始化参数。在一个web应用可以存在多个ServletConfig对象(一个Servlet对应一个ServletConfig对象)

创建时机: 在创建完servlet对象之后,在调用init方法之前创建。

得到对象: 直接从有参数的init方法中得到!!!

ServletContext

ServletContext对象 ,叫做Servlet的上下文对象。表示一个当前的web应用环境。

一个web应用中只有一个ServletContext对象。

ServletContext就是一个域对象!

 

保存数据:void setAttribute(java.lang.String name, java.lang.Object object)

获取数据: java.lang.Object getAttribute(java.lang.String name)  

删除数据: void removeAttribute(java.lang.String name) 

ServletContext域对象:作用范围在整个web应用中有效!

所有域对象:

HttpServletRequet 域对象

ServletContext域对象

HttpSession 域对象

PageContext域对象

2.过滤器

,它与Servlet很相似!不它过滤器是用来拦截请求的,而不是处理请求的。

当用户请求某个Servlet时,会先执行部署在这个请求上的Filter,如果Filter“放行”,那么会继承执行用户请求的Servlet;如果Filter不“放行”,那么就不会执行用户请求的Servlet。

其实可以这样理解,当用户请求某个Servlet时,Tomcat会去执行注册在这个请求上的Filter,然后是否“放行”由Filter来决定。可以理解为,Filter来决定是否调用Servlet!当执行完成Servlet的代码后,还会执行Filter后面的代码。

      1. Filter作用

   1:可以拦截请求(request)

   2:也可以拦截响应(response)

   3:放行,同意通过连接器

   4:统计

3.Listener

1:监听器就是 j2EE中的一个类(接口)

2:监听什么对象,主要是监听 三大域对象request,session,application (ServletRequest,HttpSession,ServletContext)

3:监听什么内容:

       A: 监听域对象的创建与销毁  也就是生命周期监听

       B: 监听域对象的属性添加,更新,移除动作

       C:监听 被加入域对象中的对象 

ServletRequest对象:

       生命周期监听:ServletRequestListener

       属性监听:ServletRequestAttributeListener

HttSession对象:

       生命周期监听:HttpSessionListener

       属性监听:HttpSessionAttributeListener

       对象绑定监听1:HttpSessionBindingListener

对象钝化活化监听2:HttpSessionActivationListener

ServletContext对象:

     生命周期监听:ServletContextListener

     属性监听:ServletContextAttributeListener

       

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_37870901/article/details/83513937