servlet配置

容器:
web容器:可以部署多个WEB应用程序的环境。

Tomcat容器:是Java Servlet,JavaServer Pages,Java Expression Language和Java WebSocket(Java EE)技术的开源实现。

Servlet容器:全称server applet,意为服务程序。主要作用是给上级容器(Tomcat)提供doGet()和doPost()等方法。其生命周期实例化、初始化、调用、销毁受控于Tomcat容器。

一、什么是servlet

  • Servlet通常称为服务器端小程序,是运行在服务器端的程序,用于处理及响应客户的请求。
  • Servlet是个特殊的java类,继承于HttpServlet。
  • 客户端通常只有GET和POST两种请求方式,Servlet为了响应则两种请求,必须重写doGet()和doPost()方法。
  • 大部分时候,Servlet对于所有的请求响应都是完全一样的,此时只需要重写service()方法即可响应客户端的所有请求。
    另外,HttpServlet有两个方法:
    (1). init(ServletConfig config):创建Servlet实例时,调用该方法的初始化Servlet资源。
    (2). destroy():销毁Servlet实例时,自动调用该方法的回收资源。
    通常无需重写init()和destroy()两个方法,除非需要在初始化Servlet时,完成某些资源初始化的方法,才考虑重写init()方法,如果重写了init()方法,应在重写该方法的第一行调用super.init(config),该方法将调用HttpServlet的init()方法。如果需要在销毁Servlet之前,先完成某些资源的回收,比如关闭数据库连接,才需要重写destory方法()。

二、servlet生命周期

(1). 创建Servlet实例。
(2). Web容器调用Servlet的init()方法,对Servlet进行初始化。
(3). Servlet初始化后,将一直存在于容器中,用于响应客户端请求,如果客户端发送GET请求,容器调用Servlet的doGet()方法处理并响应请求;如果客户端发送POST请求,容器调用Servlet的doPost()方法处理并响应请求。或者统一使用service()方法处理来响应用户请求。
(4). Web容器决定销毁Servlet时,先调用Servlet的destory()方法,通常在关闭Web应用时销毁Servlet实例。
为了让Servlet能响应用户请求,还必须将Servlet配置在web应用中,配置Servlet需要修改web.xml文件。从Servlet3.0开始,配置Servlet有两种方式:
(1). 在Servlet类中使用@WebServlet Annotation进行配置。
(2). 在web.xml文件中进行配置。
我们用web.xml文件来配置Servlet,需要配置和。用来声明一个Servlet。、和元素的用法和的用法相同。元素与元素具有相同的元素描述符,可以使用子元素将初始化参数名和参数值传递给Servlet,访问Servlet配置参数通过ServletConfig对象来完成,ServletConfig提供如下方法:
java.lang.String.getInitParameter(java.lang.String name):用于获取初始化参数
ServletConfig获取配置参数的方法和ServletContext获取配置参数的方法完全一样,只是ServletConfig是取得当前Servlet的配置参数,而ServletContext是获取整个Web应用的配置参数。

(1). <description>、<display-name>和<icon>
1). <description>:为Servlet指定一个文本描述。
2). <display-name>:为Servlet提供一个简短的名字被某些工具显示。
3). <icon>:为Servlet指定一个图标,在图形管理工具中表示该Servlet。
(2). <servlet-name>、和元素
必须含有和,或者和。 描述如下:
1). 用来定义servlet的名称,该名称在整个应用中必须是惟一的。
2). 用来指定servlet的完全限定的名称。
3). 用来指定应用中JSP文件的完整路径。这个完整路径必须由/开始。
(3).
如果load-on-startup元素存在,而且也指定了jsp-file元素,则JSP文件会被重新编译成Servlet,同时产生的Servlet也被载入内存。的内容可以为空,或者是一个整数。这个值表示由Web容器载入内存的顺序。
举个例子:如果有两个Servlet元素都含有子元素,则子元素值较小的Servlet将先被加载。如果子元素值为空或负值,则由Web容器决定什么时候加载Servlet。如果两个Servlet的子元素值相同,则由Web容器决定先加载哪一个Servlet。1表示启动容器时,初始化Servlet。
(4).
含有和
1). :Servlet的名字,唯一性和一致性,与元素中声明的名字一致。
2). :指定相对于Servlet的URL的路径。该路径相对于web应用程序上下文的根路径。将URL模式映射到某个Servlet,即该Servlet处理的URL。
(5). 加载Servlet的过程
容器的Context对象对请求路径(URL)做出处理,去掉请求URL的上下文路径后,按路径映射规则和Servlet映射路径()做匹配,如果匹配成功,则调用这个Servlet处理请求。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值