个人笔记---Servlet

目录

一、概述

二、创建

1.注解方式配置Servlet程序

2.配置文件方式配置Servlet程序(提供web.xml)

三、Servlet的继承结构 

 四、Servlet的生命周期

1.init()方法

2.service() 方法

3.doGet() 方法

4.doPost() 方法

5.destroy() 方法

五、Request 

1.概述

2.请求对象有两个:

 3.常用的方法:

 4.请求转发:

1)概述

2)测试过程 

六、Response

1.概述

2.常用的方法 

3.重定向

 1)概述


一、概述

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成 动态Web内容。这个过程为:

  1. 客户端发送请求至服务器端
  2. 服务器将请求信息发送至 Servlet
  3. Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求
  4. 服务器将响应返回给客户端

Servlet 看起来像是通常的 Java 程序。Servlet 需要导入特定的属于 Java Servlet API 的包。

二、创建

Servlet有三种实现方式:实现Servlet接口, 继承抽象类GenericServlet, 继承HttpServlet

1.注解方式配置Servlet程序

1.直接在Servlet类上加一个注解就可以了
//Servlet程序想要别浏览器访问,使用@WebServlet规定了浏览器的访问方式
@WebServlet("/hello/Servlet1")
2.打开浏览器直接访问这个Servlet就可以了
http://localhost:8080/hello/Servlet1

2.配置文件方式配置Servlet程序(提供web.xml)

三、Servlet的继承结构 

 四、Servlet的生命周期

Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 重要阶段遵循的过程:

  1. 初始化阶段 调用init()方法
  2. 响应客户请求阶段 调用service()方法
  3. 终止阶段 调用destroy()方法

最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。

1.init()方法

init 方法被设计成只调用一次。它在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用。因此,它是用于一次性初始化,Servlet 创建于用户第一次调用对应于该 Servlet 的 URL 时,但是您也可以指定 Servlet 在服务器第一次启动时被加载。
当用户调用一个 Servlet 时,就会创建一个 Servlet 实例,每一个用户请求都会产生一个新的线程,适当的时候移交给 doGet 或 doPost 方法。init() 方法简单地创建或加载一些数据,这些数据将被用于 Servlet 的整个生命周期。

2.service() 方法

它是Servlet的核心,每当一个客户请求一个HttpServlet对象,该对象的Service()方法就要调用,而且传递给这个方法一个“请求”(ServletRequest)对象和一个“响应”(ServletResponse)对象作为参数。在HttpServlet中已存在Service()方法。
service() 方法会检查 HTTP 请求类型(GET、POST、PUT、DELETE 等),并在适当的时候调用 doGet、doPost、doPut,doDelete 等方法,service() 方法由容器调用,您只需要根据来自客户端的请求类型来重写 doGet() 或 doPost() 即可。
doGet() 和 doPost() 方法是每次服务请求中最常用的方法。

3.doGet() 方法

GET 请求来自于一个 URL 的正常请求,或者来自于一个未指定 METHOD 的 HTML 表单,它由 doGet() 方法处理。

4.doPost() 方法

POST 请求来自于一个特别指定了 METHOD 为 POST 的 HTML 表单,它由 doPost() 方法处理。

5.destroy() 方法

destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。destroy() 方法可以让您的 Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并执行其他类似的清理活动。在调用 destroy() 方法之后,servlet 对象被标记为垃圾回收。

五、Request 

1.概述

Request对象用来解析请求参数,当浏览器访问服务器时,携带着一些请求参数,可以通过Servlet提供的Request对象提供的API来解析请求参数

2.请求对象有两个:

 3.常用的方法:

 4.请求转发:

1)概述

请求转发是服务器内部资源的一种跳转方式,即当浏览器发送请求访问服务器中的某一个资源时,该资源将请求转交给另外一个资源进行处理的过程,就叫做请求转发,具有以下特点:

  1. 请求转发整个过程是一次请求、一次响应
  2. 请求转发前后,浏览器地址栏地址不会发生变化(浏览器–访问–>A–转发–>B,地址栏地址始终指向A的地址)
  3. 请求转发前后的request对象是同一个
  4. 转发前后的两个资源必须属于同一个Web应用,否则将无法进行转发
  5. 使用代码: request.getRequestDispatcher(访问目的资源的路径).forward(request,response);
  6. 也可以使用 setAttribute()/getAttribute()来验证

 

2)测试过程 

六、Response

1.概述

Response是代表Http响应信息的对象,其中将会封装服务器要发送给浏览器的响应信息,将response对象作为参数传递给service方法,在service方法处理请求的过程中,可以将要发送给浏览器的数据,先写入response对象中,在service方法执行完后,服务器负责从response对象中获取到响应信息,再按照http响应信息的格式组织成响应消息,发送给浏览器。

2.常用的方法 

3.重定向

 1)概述

当浏览器向服务器发送请求访问某一个资源A时,资源A在响应时通知浏览器需要再进一步请求才能获取到对应的资源,浏览器再次向服务器发送请求访问资源B,最终是由资源B响应浏览器要获取的数据,这个过程叫做重定向,具有以下特点:

  1. 重定向前后是两次请求、两次响应
  2. 重定向前后,浏览器地址栏地址会发生变化(因为两次请求都是通过浏览器发起,浏览器知道这个跳转过程,因此地址栏地址会发生变化)。
  3. 重定向前后的request对象不是同一个 (因此重定向前后是两次请求,服务器根据两次请求会创建两个request对象,因此request对象不是同一个)
  4. 重定向前后的两个资源可以来自不同的Web应用,甚至可以是来自不同的虚拟主机或者服务器。
  5. 使用代码: response.sendRedirect(“重定向到资源的路径”);

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值