Servlet入门(一)

Servlet基础



前言

Servlet基础


以下是本篇文章正文内容,下面案例可供参考

一、Servlet概念

servlet名叫servlet规范是javaEE的一种规范之一,它有点类似于java中的API。使用JavaEE帮助文档学习servlet这个API。

JavaEE帮助文档对中Servlet该API的总结如下:

1.Servlet是运行在web服务器端的Java小程序
2.Servlet可以接收和响应客户端的请求
3.Servlet的实现三种方式(Servlet接口、继承GenericServlet和HttpServlet抽象类)
4.Servlet可以配置

二、Servlet的实现过程

基于B/S架构:
也就是基于浏览器的对Servlet的请求与响应。

从客户浏览器—>Tomcat服务器–>我们的应用Servletdemo–>该应用下的demo.xml–>对应的FirstServlet–>返回给浏览器

二、Servlet的类关系图

HttpServlet继承自GenericServlet
GenericServlet继承自Servlet
在这里插入图片描述

三、Servlet的创建(三种方式)

1.Servlet接口创建

新建一个类,实现Servlet接口,重写接口的所有方法

2.继承GenericServlet抽象类创建

新建一个类,继承GenericServlet抽象类,重写Servlet方法,使Servlet开发变得简洁,表示在接受和响应客户端请求方面有重写的需求,但与Http协议无关。

3.继承HttpServlet抽象类创建

新建一个类,继承HttpServlet抽象类,重写DoGet和DoPost方法,不需要覆盖Servlet方法,此创建方式与Http协议有关,也就是客户端的请求与响应都符合Http协议规范。

四 、Servlet的运行过程

Servlet的生命周期

Servlet该对象的生命周期包含:创建—运行—销毁的过程。

1.Servlet的创建:当浏览器发送第一次请求到达servlet该对象被创建出来,并且初始化,放入内存中。

2.Servlet的运行:在tomcat服务器运行期间,该对象一直在运行。

3.Servlet的销毁:当tomcat服务器停止或者销毁时,该对象跟着销毁。

由此可以看出,Servlet对象在整个过程中只会被创建一次,而且只被初始化、实例化一次,销毁也只会随着服务器销毁一次,所以该对象只有一个实例,又称它为单例模式。

五、Servlet的配置

1.Servlet三种映射方式

新建一个Servlet类(ServletDemo1继承HttpServlet抽象类实现Servlet)
在这里插入图片描述
1.指名道姓式–>也就是准确的指明该Servlet类名

<!--servlet声明-->
 	<servlet>
        <servlet-name>ServletDemo1</servlet-name>
        <servlet-class>test.servlet.ServletDemo1</servlet-class>
    </servlet>
 <!--servlet映射-->
     <servlet-mapping>
        <servlet-name>ServletDemo1</servlet-name>
        <url-pattern>/ServletDemo1</url-pattern>
    </servlet-mapping>

2./开头+通配符的方式–>此种方式,只要符合目录结构即可,不用考虑结尾是什么。

<!--servlet声明-->
 	<servlet>
        <servlet-name>ServletDemo1</servlet-name>
        <servlet-class>test.servlet.ServletDemo1</servlet-class>
    </servlet>
 <!--servlet映射-->
     <servlet-mapping>
        <servlet-name>ServletDemo1</servlet-name>
        <url-pattern>/Servlet/*</url-pattern>
    </servlet-mapping>

3.通配符+固定格式结尾

<!--servlet声明-->
 	<servlet>
        <servlet-name>ServletDemo1</servlet-name>
        <servlet-class>test.servlet.ServletDemo1</servlet-class>
    </servlet>
 <!--servlet映射-->
     <servlet-mapping>
        <servlet-name>ServletDemo1</servlet-name>
        <url-pattern>/*.all</url-pattern>
    </servlet-mapping>

越具体的优先级越高,所以第一种优先级大于第二种,第二种优先级大于第三种

2.Servlet的创建时机

第一种:应用加载时创建Servlet,它的优势是在服务器启动时,就把需要的对象都创建完成了,从而在使用的时候减少了创建对象的时间,提高了首次执行的效率。它的弊端也同样明显,因为在应用加载时就创建了Servlet对象,因此,导致内存中充斥着大量用不上的Servlet对象,造成了内存的浪费。

<!----在javaEE7中的web.xml中配置>
servlet>
    <servlet-name>servletDemo3</servlet-name>
    <servlet-class>com.itheima.web.servlet.ServletDemo3</servlet-class>
    <!--配置Servlet的创建顺序,当配置此标签时,Servlet就会改为应用加载时创建
        配置项的取值只能是正整数(包括0),数值越小,表明创建的优先级越高
    -->
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>servletDemo3</servlet-name>
    <url-pattern>/servletDemo3</url-pattern>
</servlet-mapping>

第二种:请求第一次访问是创建Servlet,它的优势就是减少了对服务器内存的浪费,因为那些一直没有被访问过的Servlet对象都没有创建,因此也提高了服务器的启动时间。而它的弊端就是,如果有一些要在应用加载时就做的初始化操作,它都没法完成,从而要考虑其他技术实现

通过上面的描述,相信同学们都能分析得出何时采用第一种方式,何时采用第二种方式。就是当需要在应用加载就要完成一些工作时,就需要选择第一种方式。当有很多Servlet的使用时机并不确定是,就选择第二种方式。

3. Tomcat默认Servlet

tomcat中有默认的servlet,配置在web.xml中
在这里插入图片描述

它的映射路径是<url-pattern>/<url-pattern>,当浏览器在发送请求时,首先会在我们应用中的web.xml中查找映射配置,如果有就执行,如果没有对应的Servlet路径时,就去找默认的Servlet,由默认Servlet处理。所以,一切都是Servlet。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值