Servlet学习笔记(一)(规范介绍、接口实现类、开发步骤、生命周期)

一、Servlet规范介绍

1、Servlet规范来自Java EE 规范中的一种

2、作用:

(1)指定“动态资源文件”的开发步骤

(2)指定Http服务器调用“动态资源文件”的规则

(3)指定Http服务器管理"动态资源文件"实例对象的规则

二、Servlet接口实现类

1、Servlet接口来自Servlet规范下的一个接口,这个接口存在于Http服务器提供的jar包中

2、Tomcat服务器下的lib文件夹有一个servlet.api.jar用来存放Servlet接口(javax.servlet.Servlet接口)

3、在Servlet规范中,Http服务器能调用的“动态资源文件”必须是一个Servlet接口实现类

//举例
class Student{
//不是动态资源文件,Tomcat无权调用
}

class Teacher implements Servlet{
//合法动态资源文件,Tomcat有权利调用
}

  Servlet obj=new Teacher();
  obj.doGet();

三、Servlet接口实现类开发步骤

第一步:新建一个类oneServlet,并继承HttpServlet父类,使之成为Servlet接口实现类

              Tomcat根据Servlet规范调用Servlet接口实现类的规则:
                         1、Tomcat有权调用Servlet接口实现类的实例对象
                                   Servlet oneServlet=new Servlet();
                         2、Tomcat根据当前实例对象调用service方法处理当前请求
                                   oneServlet.service();

                                           extends                                          extends                                             implements
                              oneServlet---------------->(abstract)HttpServlet--------------->(abstract)GenericServlet------------------>Servlet接口
                                                                                                                                              init
                                                                                                                                              getServletConfig
                                                                                                                                              getServletInfo
                                                                                                                                              destory
                       在这里用到了抽象类
                       抽象类的作用:
                       降低接口实现类对接口实现过程的难度,让接口中不需要使用的抽象方法交给抽象类来完成,这样接口实现类只需要对自身需要使用的方法进行重写即可。

第二步:重写HttpServlet父类的两个方法,即doGet和doPost

               父类决定在何种情况下调用子类中的方法,这使用了一种设计模式,即模板模式

HttpServlet : service(){
   if(请求方法==GET){
        this.doGet();
    }else if(请求方法==POST){
         this.doPost();
    }
}

第三步:将Servlet接口实现类的信息“注册”到Tomcat服务器,在web.xml中进行书写

<!-- 将Servlet接口实现类的类路径交给Tomcat -->
<servlet>
   <servlet-name>oneServlet</servlet-name>  <!-- 声明一个变量存储 -->
   <servlet-class>com.mrliu22.oneServlet</servlet-class>  <!-- Servlet接口类的类路径,我的是com.mrliu22包下的oneServlet -->
<servlet/>

<!-- 为了降低用户访问Servlet接口实现类的难度,可以给其起个别名 -->
<servlet-mapping>
    <servlet-name>oneServlet</servlet-name>
    <url-pattern>/one</url-pattern>  <!-- 别名必须以“/”为开头 -->
</servlet-mapping>

访问路径:http://localhost:8080/项目名称/one

四、Servlet对象生命周期

1、网站中的所有Servlet接口实现类的实例对象都是由Http服务器创建的,开发人员不能手动创建

2、在默认情况下,只有当Http服务器接收到对当前Servlet接口实现类的请求时,才会自动创建Servlet接口实现类的实例对象。也可以通过手动配置,来让Http服务器启动时就创建某个Servlet接口实现类的实例对象,可以这样配置:

<servlet>
   <servlet-name>oneServlet</servlet-name>
   <servlet-class>com.mrliu22.oneServlet</servlet-class>
   <!-- 这里只要填写一个大于0的整数就可以手动设置Http服务器一启动就自动创建oneServlet接口实现类 -->
   <load-on-startup>30</load-on-startup>  
</servlet>

3、在Http服务器运行期间,一个Servlet接口实现类只会被创建出一个实例对象。可以通过在构造方法中打印信息,然后多次访问来验证。

 

 

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/MrLiu22/article/details/113030873
今日推荐