Servlet回顾

1、Servlet概述

Servlet回顾_第1张图片

Servlet是运行在服务器端的java类,负责处理请求和构造响应信息;

Servlet运行在Servlet容器中,并能使用Servelt容器中的服务;

当有一个Http请求发来时,如果请求的是静态资源,那么Web服务器将资源返回,如果请求的是Servlet,那么会将请求交给Servlet容器;

针对同一次Servlet请求,如果Servlet第一次收到Http请求的话,那么Servlet容器将会创建一个Servlet实例,并创建一个线程处理请求;如果是第n次请求,那么Servlet容器将不会重复创建Servlet实例,而是使用多个线程处理请求;

多线程执行Servlet可提高Web容器的性能,降低Web服务器的负担;

2、Servlet接口

HttpServlet

HttpServlet是Java Web编程中一个更加具体的Servlet类,实现了Servlet接口。它提供了一些处理HTTP协议的方法,例如doGet()、doPost()等方法,使得Servlet更加灵活、易用。与Servlet接口不同的是,HttpServlet类为每个HttpServletRequest提供了一个HttpServletResponse对象。

HttpServlet接口定义了以下几个方法:

  1. doGet(HttpServletRequest req, HttpServletResponse resp):处理HTTP GET请求。

  2. doPost(HttpServletRequest req, HttpServletResponse resp):处理HTTP POST请求。

  3. doPut(HttpServletRequest req, HttpServletResponse resp):处理HTTP PUT请求。

  4. doDelete(HttpServletRequest req, HttpServletResponse resp):处理HTTP DELETE请求。

  5. service(HttpServletRequest req, HttpServletResponse resp):根据请求方法的不同,分别调用doGet()、doPost()、doPut()、doDelete()方法。

  6. init()方法: 用于初始化。

  7. destroy()方法: 用于销毁。

当然还有独立于协议的抽象类GenericServlet,但不常使用。

3、Servlet生命周期

Servlet运行在Servlet容器中,其生命周期有Servlet容器进行管理,Servlet生命周期主要有四个阶段:实例化,初始化,处理请求,服务终止4个阶段。

1、加载和实例化

当Servlet容器启动或者用户请求时,Servlet容器会负责加载Servelt类,并使用默认的构造方法创建Servlet实例。

2、初始化

在Servlet实例化后,Servelt容器会调用Servlet类的init()方法初始化Servlet对象;每个Servelt实例只能初始化一次

3、处理请求

Service容器使用service方法处理请求并返回响应,Servlet容器会将Servlet容器创建的两个参数传给service方法——ServletRequest,ServletResponse

4、服务终止

当Servlet容器检测到Servlet实例从服务中被移除时,Servlet容器调用Servelt的destroy()方法,释放所有的资源。

4、Servlet中的一些重要对象

1、HttpServletRequest,HttpServletResponse

HttpServletRequest和HttpServletResponse接口用来处理HTTP请求和响应。它们在http请求的时候被Servlet容器创建,其中HttpServletRequest封装了http的请求信息,它继承了HttpRequest。

HttpServletResponse封装了http的响应信息,继承了HttpResponse。

2、ServletConfig

ServletConfig是Servlet在初始化时从Web容器中获取初始化参数的一个对象。

常用方法:

  1. String getServletName():返回Servlet的名称。

  2. ServletContext getServletContext():返回ServletContext对象。

  3. String getInitParameter(String name):返回指定名称的初始化参数值。

  4. Enumeration getInitParameterNames():返回所有初始化参数名的枚举。

3、ServletContext

它代表着一个Web应用程序运行时的环境。ServletContext是容器在初始化Web应用程序时创建的一个对象,它在整个Web应用程序内部都是共享的。

常用方法

  1. getInitParameter(String name):获取初始化参数的值。

  2. setAttribute(String name, Object object):向ServletContext中添加一个属性。

  3. getAttribute(String name):获取ServletContext中的指定属性值。

  4. getRealPath(String path):获取一个路径的真实路径。

  5. getResourceAsStream(String path):获取一个Java资源作为输入流。

  6. getRequestDispatcher(String path):获取一个请求分派器。

4、HttpSession

HttpSession提供了一种在多个HTTP请求/响应之间共享数据的机制,允许在客户端和服务器之间保持状态信息,它只在一个用户第一次请求时创建。

以下是HttpSession提供的一些常用方法:

  1. setAttribute(String name, Object value):将指定名称的属性设置为指定的值。

  2. getAttribute(String name):返回与指定名称关联的属性值。

  3. removeAttribute(String name):删除指定名称的属性。

  4. invalidate():使此会话无效。

  5. getId():返回指定会话的唯一ID。

HttpSession的工作原理是在服务器端为每个会话创建一个唯一的ID,并将这个ID发送到客户端浏览器中。客户端每次向服务器发送请求时,都会包含这个ID。服务器使用这个ID,找到对应的会话,并从中检索或存储数据。

5、servlet的web服务原理图:

Servlet回顾_第2张图片

Servlet回顾_第3张图片

 

 

 

你可能感兴趣的:(servlet,java)