几分钟了解Servlet

对Servlet的认识总结

1.什么是Servlet

Servlet是运行在服务端的一个Java类,该类内部有request(请求对象)、reponse(响应对象)、且存在访问地址。

2.Servlet的作用

Servlet主要用于客户端请求并向客户端响应:

  • Servlet中主要负责获得请求及响应,在其中不做具体的功能处理,负责调用底层的功能处理的类及方法。

3.Servlet的使用

1.创建一个类,该类要继承HttpServlet类,当一个类继承了HttpServlet后,该类就成了一个Servlet类。

import javax.servlet.http.HttpServlet;
@WebServlet(name = "live",urlPatterns = "/live.do")//添加注解,Servlet配置方法之一,后面会提到
public class LiveServlet extends HttpServlet {
}

2.重写HttpServlet类中的两个方法doGet方法和doPost方法(包括重写其中一个或都重写)

  • doGet方法用于处理客户端提交的get请求
  • doPost方法用于处理客户端提交的post请求

3.对Servlet进行配置:

  • Servlet类的实例不是由开发者自己创建的,而是由应用服务器创建(tomcat),Servlet对象一旦创建成功就会保存咋服务端内存中。
  • Servlet对象创建后会存放到内存中,在程序中可以通过该Servlet对象的"映射地址"来访问该Servlet对象。
  • Servlet的访问路径:
    • (1)客户端直接访问url-pattern,服务器会根据url-pattern查找当前映射路径所对应的servlet对象。
    • (2)根据Servlet对象名查找当前对象所对应的类。
    • (3)根据请求的类型执行对象中对应的方法。

对Servlet进行配置的方式有两种:

1.在web.xml文件中进行配置:

  • Servlet配置:
    servlet-name:指定Servlet对象的对象名;
    servlet-class:指定当前Servlet对象的类。
  • Servlet映射配置
    servlet-name:Servlet的对象名,此处的名字必须和Servlet配置中的名字一致;
    url-pattern:配置当前Servlet的映射地址,地址名可以任意。
  <!--Servlet配置:
  servlet-name:指定Servlet对象的对象名
  servlet-class:指定当前Servlet对象的类
  -->
  <servlet>
    <servlet-name>LiveServlet</servlet-name>
    <servlet-class>com.xmy.servlets.ServletDemo</servlet-class>
  </servlet>
  <!--Servlet映射配置:
  servlet-name:Servlet的对象名,此处的名字必须和Servlet配置中的名字一致
  url-pattern:配置当前Servlet的映射地址,地址名可以任意
  -->
  <servlet-mapping>
    <servlet-name>LiveServlet</servlet-name>
    <url-pattern>/live.do</url-pattern>
  </servlet-mapping>

2.使用注解进行配置:

  • 在Servlet类的上面使用|@WebServlet("/live.do")注解进行配置即可
    • 参数为当前 Servlet的访问路径
    • 默认情况下Servlet的对象为类型首字母小写 eg.ServletDemo1–>servletDemo1
    • 完整的注解:
      • name:指定对象名
      • urlPatterns:指定路径名
@WebServlet(name = "live",urlPatterns = "/live.do")

4.Servlet的生命周期

生命周期指Servlet从创建到消亡的整个过程。
Servlet的生命周期包含以下几个阶段:
(1)实例化:调用无参数的构造方法来创建Servlet对象(由Web服务器tomcat创建)

  • 当第一次请求Servlet时,Web服务器会对该Servlet进行实例化创建Servlet类的对象,该对象是"单例"的,在第一次访问时创建,对象创建就常驻内存,其后每次访问时从内存中获取该对象直接使用。

(2)初始化:当一个Servlet对象创建后,会自动调用初始化方法,进行初始化操作,该方法只会被调用一次。

(3)服务:服务指doGet|doPost|doDelete|doPut|service…这些方法都是服务方法。

  • 每次请求一个Servlet时都会去执行某个服务方法,根据请求的类型不同执行的服务方法不同。

(4)销毁:当服务器关闭时会自动调用destory方法,来清理当前Servlet所占用的资源。

Servlet对象的创建时机:
1.默认情况下,用户第一次访问Servlet时,服务器会创建Servlet对象(懒加载机制)
2.我们可以在注解中加入“loadOnStartup=0”或在web.xml文件的|<servlet>标签中加入|<load-on-startup>配置该修改Servlet创建创建优先级,当值为0时表示服务器启动时自动创建Servlet对象

5.Servlet的类结构

1.Servlet接口:该接口是Servlet的根接口,接口中只提供了关于Servlet生命周期的相关方法的声明并没有实现

  • init:初始化方法
  • service:服务方法
  • destory:销毁方法

2.GenericServlet类:该类是一个抽象类,类中将Servlet生命周期的相关方法进行了实现,但并没有实现service方法。

  • 由于GenericServlet类是一个常规类,并没有指定Servlet的具体使用环境,所以在Servlet中的service方法是一个抽象方法。

3.HttpServlet类,该类是基于Http协议的Servlet,指定该类在使用时的具体环境为基于Http协议的环境

  • 该类中提供几个新的针对Http请求的服务方法。
  • doGet|doPost|doDelete|doPut|doHead|doOptions等方法,而这些方法分别对应了不同的Http请求,这些方法将请求具体化了,它针对不同的请求都有一个专门的方法来处理。
  • 该类对Service进行的具体实现。

4.Servlet的访问流程:

  • (1) 当一个请求进入到Servlet后,首先时交给service进行处理的(它是servlet服务的核心方法)。
  • (2) 在service中获得当前请求的请求方式(get|post|delete|…),根据不同的请求方式将请求转发到指定的具体方法中执行(service:该方法获得所有请求,任何请求进入到Servlet后都会执行该方法)。
  • 9
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值