Servlet、过滤器和监听器

 

目录

1、Servlet

1、什么是Servlet

2、Servlet与JSP的关系

3、Servlet API

1、Servlet接口

2、ServletConfig接口

3、GenericServlet抽象类

4、HttpServlet抽象类

请求、响应相关接口:

1、ServletRequest接口

2、HttpServletRequest接口

3、ServletResponse接口

4、HttpServletResponse接口

4、Servlet的生命周期

1、加载和实例化

2、初始化

3、提供服务,请求处理

4、销毁

 5、生命周期的各个阶段

5、 Servlet的应用

1、创建Servlet

2、Servlet的部署与运行

3、初始化参数设置

4、Servlet的运行

2、过滤器

1、过滤器概述

1、过滤器简介

2、过滤器的生命周期

2、过滤器的应用

1、使用过滤器的步骤

2、Filter接口

3、过滤器的配置

 3、监听器


使用JSP技术编写服务器动态网页:

在JSP技术出现之前——编写服务器动态网页

1、Servlet

1、什么是Servlet

Servlet 是一种独立于平台和协议的服务器端Java应用程序,通过Servlet可以生成动态的Web页面。同时,使用Servlet还可以在服务器端对客户端的请求进行处理,控制程序的执行。Servlet的主要作用就是交互式地浏览和更新数据,并生成动态的页面内容展示。

 

2、Servlet与JSP的关系

JSP在被Web容器解析的时候,最终会编译成一个Servlet类。

3、Servlet API

Servlet其实是两个单词的合成:server和applet,所以它是一种服务器端的Java应用程序。但不是所有在服务器上的的Java应用程序都是Servlet,只有当服务器使用Servlet API 时,才能算是一个Servlet。Servlet又被称为Java Servlet应用程序接口,包含了很多Servlet中重要的接口和类,如下:

1、Servlet接口

定义了所有Servlet需要实现的方法

方法名称

功能描述

public void init(ServletConfig config)

由 servlet 容器调用,用于完成Servlet对象在处理客户请求前的初始化工作

public  void service(ServletRequest   req, ServletResponse  res)

由 servlet 容器调用,用来处理客户端的请求

public  void destroy()

由 servlet 容器调用,释放Servlet对象所使用的资源

public ServletConfig getServletConfig()

返回ServletConfig  对象,该对象包含此 servlet 的初始化和启动参数。返回的 ServletConfig 对象是传递给 init() 方法的对象

public String getServletInfo()

返回有关 servlet 的信息,比如作者、版本和版权。返回的字符串是纯文本,而不是任何种类的标记(比如 HTML、XML,等等)

2、ServletConfig接口

  • 在Servlet初始化过程中获取配置信息
  • 一个Servlet只有一个ServletConfig对象

方法名称

功能描述

public String getInitParameter(String name) 

获取web.xml中设置的以name命名的初始化参数值

public ServletContext getServletContext( )

返回Servlet的上下文对象引用

3、GenericServlet抽象类

提供了Servlet与ServletConfig接口的默认实现方法

方法名称

功能描述

public  void init(ServletConfig config)

调用Servlet接口中的init()方法。此方法还有一无参的重载方法,其功能与此方法相同

public String getInitParameter(Stringname)

返回名称为name的初始化参数的值

public ServletContext getServletContext()

返回ServletContext对象的引用

4、HttpServlet抽象类

  • 继承于GenericServlet
  • 处理HTTP协议的请求和响应

方法名称

功能描述

public void service(ServletRequest req, ServletResponse res)

调用GenericServlet类中service()方法的实现

public void service(HttpServletRequest

 req, HttpServletResponseres)

接收HTTP 请求,并将它们分发给此类中定义的 doXXX 方法

public void doXXX(HttpServletRequest

req,HttpServletResponse res)

根据请求方式的不同,分别调用相应的处理方法,例如doGet()、doPost()等

请求、响应相关接口:

1、ServletRequest接口

获取客户端的请求数据

方法名称

功能描述

public Object getAttribute(String name)

获取名称为name的属性值

public void setAttribute(String name, Object object)

在请求中保存名称为name的属性

public void removeAttribute(String name)

清除请求中名字为name的属性

2、HttpServletRequest接口

除了继承ServletRequest接口中的方法,还增加了一些用于读取请求信息的方法

 

方法名称

功能描述

public String getContextPath()

返回请求URI中表示请求上下文的路径,上下文路径是请求URI的开始部分

public Cookie[ ]  getCookies()

返回客户端在此次请求中发送的所有cookie对象

public HttpSession  getSession()

返回和此次请求相关联的session,如果没有给客户端分配session,则创建一个新的session

public String  getMethod()

返回此次请求所使用的HTTP方法的名字,如GET、POST

3、ServletResponse接口

向客户端发送响应数据

方法名称

功能描述

public PrintWriter  getWriter()

返回PrintWrite对象,用于向客户端发送文本

public String  getCharacterEncoding()

返回在响应中发送的正文所使用的字符编码

public void  setCharacterEncoding()

设置发送到客户端的响应的字符编码

public void  setContentType(String type)

设置发送到客户端的响应的内容类型,此时响应的状态属于尚未提交

4、HttpServletResponse接口

除了继承ServletResponse接口中的方法,还增加了新的方法

方法名称

功能描述

public void  addCookie(Cookie cookie)

增加一个cookie到响应中,这个方法可多次调用,设置多个cookie

public void  addHeader(String name,String value)

将一个名称为name,值为value的响应报头添加到响应中

public void  sendRedirect(String  location)

发送一个临时的重定向响应到客户端,以便客户端访问新的URL

public void  encodeURL(String url)

使用session ID对用于重定向的URL进行编码

4、Servlet的生命周期

在了解Servlet生命周期之前,需要先了解一个名词:Servlet容器。

Servlet容器是用来装载Servlet对象的一种容器,是负责管理Servlet的一类组件。

Servlet生命周期是指Servlet从创建到销毁的过程,这包括以下几个环节:

1、加载和实例化

 Servlet容器根据Servlet类的位置加载Servlet类,加载成功后,由容器创建Servlet实例。

2、初始化

对于每一个Servlet实例,init方法只被调用一次。 

3、提供服务,请求处理

4、销毁

 5、生命周期的各个阶段

 

5、 Servlet的应用

1、创建Servlet

2、Servlet的部署与运行

3、初始化参数设置

4、Servlet的运行

2、过滤器

1、过滤器概述

1、过滤器简介

1、过滤器

 

2、过滤器链

3、过滤器的应用场合

2、过滤器的生命周期

2、过滤器的应用

1、使用过滤器的步骤

2、Filter接口

实现过滤器的过程与实现Servlet有些类似。在开发过滤器时,需要实现Filter接口,这个接口存在于javax.servlet包下

Filter接口提供了一个不带参数的构造方法,还有三个方法如下:

Filter接口没有相应的实现类进行继承,所以在编写过滤器时,必须实现Filter接口。 

3、过滤器的配置

 

  <filter>
    <filter-name>charSet</filter-name>
    <filter-class>filter.CharSetFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>charSet</filter-name>
    <url-pattern>*.do</url-pattern>
  </filter-mapping>

 3、监听器

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Servlet过滤器监听器是Java Web开发中的两个重要组件,可以在求到达Servlet之前或者之后对求和响应进行拦截、处理和修改,从而实现一些自定义的功能。 下面是Servlet过滤器监听器的配置及应用: 1. 过滤器的配置和应用: (1)在web.xml文件中配置过滤器: ```xml <filter> <filter-name>MyFilter</filter-name> <filter-class>com.example.MyFilter</filter-class> </filter> <filter-mapping> <filter-name>MyFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` (2)编写过滤器类: ```java public class MyFilter implements Filter { @Override public void init(FilterConfig config) throws ServletException { // 过滤器初始化代码 } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // 过滤器逻辑代码 chain.doFilter(request, response); } @Override public void destroy() { // 过滤器销毁代码 } } ``` (3)应用过滤器过滤器可以应用于所有的Servlet求,或者只应用于特定的URL模式。在上面的配置中,我们将过滤器应用于所有的URL模式。 2. 监听器的配置和应用: (1)在web.xml文件中配置监听器: ```xml <listener> <listener-class>com.example.MyListener</listener-class> </listener> ``` (2)编写监听器类: ```java public class MyListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent event) { // 应用初始化代码 } @Override public void contextDestroyed(ServletContextEvent event) { // 应用销毁代码 } } ``` (3)应用监听器监听器可以监听应用程序的生命周期事件,比如应用程序的初始化、销毁等事件。在上面的配置中,我们将监听器应用于应用程序的初始化和销毁事件。 以上就是Servlet过滤器监听器的配置及应用的基本介绍。它们可以为我们提供很多灵活的机制来扩展和定制我们的Web应用程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值