JAVAweb开发(二)(servlet生命周期,Web.xml,@WebServlet()详解)

JAVAweb开发(二)(servlet,Web.xml,@WebServlet()详解)

一.servlet

(1)servlet的生命周期

加载类—>实例化(为对象分配空间)—>初始化(为对象的属性赋值)—>请求处理(服务阶段)—>销毁

  • 服务器启动时(web.xml中配置load-on-startup=1,默认为0)或者第一次请求该servlet时,就会初始化一个Servlet对象,执行init()方法
  • 该servlet对象去处理所有客户端请求,service()方法中执行
  • 最后服务器关闭时,才会销毁这个servlet对象,执行destroy()方法。

(2)servlet的继承结构

在这里插入图片描述

图有点儿糊,但是我们可以看出,我们用的HttpServlet继承于GenericServlet,再实现Servlet接口

Servlet接口中有init(),servlet(),destroy()的三个重要的方法,init()的负责初始化,servlet()负责调用dopost,doget等方法,destroy负责销毁对象。

二.web.xml和@WebServlet的作用

当我们有一个请求的时候,我们的服务器要怎么才能找到相应的Servlet来进行服务呢?这个时候我们就需要web.xml还有@WebServlet标签,来找到我们的servlet

(1)@WebServlet标签的使用

@WebServlet(name = "123",
           urlPatterns = {"/hello.do"},
           initParams = {
               @WebInitParam(name="admin",value="你爸爸")
           }

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xihNlSfX-1594955288856)(C:\Users\13710795181\Desktop\recent1\webservlet.png)]

(1).loadOnStartup属性:标记容器是否在启动应用时就加载Servlet,默认不配置或数值为负数时表示客户端第一次请求Servlet时再加载;0或正数表示启动应用就加载,正数情况下,数值越小,加载该Servlet的优先级越高;

(2).name属性:可以指定也可以不指定,通过getServletName()可以获取到,若不指定,则为默认是Servlet的完整类名

(3).urlPatterns/value属性: String[]类型,可以配置多个映射,如:urlPatterns={"/user/test", “/user/example”},拦截多个请求

(4).urlPatterns的常用规则:

  • /*或者/:拦截所
  • *.do:拦截指定后缀
  • /user/test:拦截路径
  • /user/.do、/.do、test*.do都是非法的,启动时候会报错

(2)web.xml

<servlet>
        <servlet-name>123</servlet-name>3.名字相对应
        <servlet-class>apps</servlet-class>4.找到相应的类
</servlet>
<servlet-mapping>
        <servlet-name>123</servlet-name>2.找到名字
        <url-pattern>/my</url-pattern>1.服务器先从这里找
</servlet-mapping>

web.xml的配置和@WebServlet作用一样,会覆盖@WebServlet的配置

web.xml流程

1.客户端向服务端请求

2.服务器在web.xml寻找相应的url形式

3.在servletmaping找出servlet的名字

4.名字找出servlet的class

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值