Servlet接口实现类

* Servlet接口: Servlet接口是来自于Servlet规范下的一个接口,存在于HTTP服务器(Tomcat)所提供的jar包中。Servlet-api.jar。

* Servlet-api.jar 该jar包在 Tomcat服务器目录下的lib文件夹下的一个jar包。该jar包中存放了Servlet接口。(javax.servlet.Servlet).

* 在Servlet规范中,规定了Http服务器能调用的【动态资源文件】,必须是一个Servlet接口的实现类。(实现了Servlet接口的类就是一个动态资源文件)

   - 例如:

           class Student{
//不是一个动态资源文件,没有实现Servlet接口,所以 Servlet无权到调用该类。
} class Student implements Servlet{
//实现了Servlet接口,属于合法的动态资源文件, Servlet有权调用
Servlet object= new Student();
object.doGet();
} * Servlet接口实现类开发步骤 - 第一步:创建一个类继承HttpServlet父类,使之成为一个Servlet接口实现类。 oneServlet(HttpServlet实现类)---继承--->HttpServlet(abstract)---继承--->GenericServlet(abstract)---实现---> Servlet接口 - 第二步:重写HttpServlet父类中的两个方法 doGet() 和 doPost()。 - 如果浏览器以---get--> 发送请求给Servlet,那面Servlet就会调用doGet()方法来处理 - 如果浏览器以---post--> 发送请求给Servlet,那面Servlet就会调用doPost()方法来处理 - 第三步:将Servlet接口实现类的信息【注册】到Tomcat服务器中。 -【网站项目】---> web文件夹---> WEB-INF文件夹 ---> web.xml文件 将当前Servlet接口实现类的信息写到该文件中,就相当于完成了【注册】 - 需要在 web.xml 文件中写的内容: <servlet> <servlet-name>pathName</servlet-name> <!-- 创建一个变量来存储Servlet类路径 (变量命随意但是要和 <servlet-mapping> 中的<servlet-name> 保持一致)--> <servlet-class>com.shige.controller.oneServlet</servlet-class> <!-- 声明Servlet接口实现类的类路径:包名+类名 --> Tomcat会声明一个变量 String pathName="com.shige.controller.oneServlet "; </servlet> <servlet-mapping> <!-- 由于Servlet接口实现类的路径都比较长(包名+类名),为了更方便访问Servlet接口实现类,所以要给该实现类起一个简单的别名,从而更方便访问--> <servlet-name>pathName</servlet-name> <!--给Tomcat服务器中虚拟路径名为pathName的路径起别名 --> <url-pattern>/simple</url-pattern> <!--设置别名,别名必须以 / 开头--> </servlet-mapping> - 如果浏览器向Tomcat服务器请求oneServlet实现类时,地址是: http://local:8080/网站名/simple - 第四步: 将WEB项目部署到Tomcat服务器上,run---->Edit Configurations----->选择Tomcat服务器---->Deplyment 选择要部署的WEB项目----->Application context 定义浏览器访问时的项目名----->ok

* 抽象类的作用:简化接口实现类对接口实现过程中的难度。将接口中不需要实现的抽象方法,交给该抽象父类去完成,这样最后一层继承抽象父类的实现类只需要去实现所需要的方法就可以了。 * 在 Servlet 接口中有五个方法 : init(), getServletConfig(), service(), getServletInfo(), destroy(). 在这五个方法中,目前只需要servic()方法。所以如果直接实现Servlet接口,那么就必须同时重写这五个方法。 * Servlet接口中各方法的使用? 1.无参数构造方法 实例化Servlet实现类对象,创建实例对象。 2.init方法 - 1,2方法执行时间几乎相同,执行次数都是一次,构造方法执行的时候Servlet对象之正在创建,而init方法执行时Servlet方法已经创建,若系统要求在对象创建时刻执行一段特殊程序,这段程序尽量写在init方法中。 - 为什么不建议将代码写在构造方法中呢? > 因为存在风险,当程序员编写构造方法的时候,可能会导致无参构造方法失效。(因为当一个类中不编写任何构造函数的时候,默认有一个无参数构造方法,但一旦编写一个有参数构造方法的时候,系统则不再提供无参数构造). > init方法是sun公司为程序员提供的一个初始化时刻,若希望程序在初始化时刻执行一段特殊的程序,该程序可以编写到init方法中,将来会被自动调用。 3.service方法 - service方法是必然要重写的,因为这个方法需要完成业务逻辑处理,请求的处理以及响应。 4.destroy方法 - 这个方法也是为SUN公司为java程序提供的一个特殊时刻,这个特殊时刻被称为对象销毁时刻,若希望在销毁时刻执行一段特殊的代码,需要将该段代码写在destory方法中,自动被程序调用。 5.回顾 1.类加载时刻执行代码写到静态代码块中。 * Service()方法为什么有用: - service()用来获取浏览器的请求方式,判断浏览器发过来的请求方式的类型。从而决定用哪种方法去处理浏览器的请求。 - Tomcat 根据Servlet规范调用Servlet接口实现类规则: 1. Tomcat有权创建Servlet接口实现类对象 Servlet oneServlet = new oneServlet(); 2. Tomcat通过实例对象调用HttpServlet 抽象类中的service方法处理当前请求 oneServlet.service() 3. 因为在HttpServlet父类中已经重写了service方法,在该方法中决定了什么时候调用doGet()方法,什么时候调用doPost()方法。(而这种通过父类决定在何种情况下调用子类方法的作法,在设计模式中称为 模板设计模式) 例如:HttpServlet 中的 service()方法 public void service(){ // HttpServlet service()方法, 在service方法中出现的this,指的是调用service方法的实例对象,哪个实例对象调用service方法,this就指哪个子类 if(浏览器请求方式==Get){
this.doGet(); //oneServlet.service() 此时 this---> oneServlet, 因为子类中重写了doGet()方法,所以son.doGet()调用的是子类中重写的doGet()方法,而不是HttpServlet中的doGet()。 }else if(浏览器请求方式==Post){
this.doPost();
}
} oneServlet doGet() do Post() Servlet oneServlet = new oneServlet() oneServlet.service();

JAVAEE_Servlet_02_Servlet接口实现类HttpServlet的更多相关文章

  1. servlet接口实现类HttpServlet以及开发中一些细节

    1. 但是eclipse不会帮我们改web.xml配置文件,所以我们也要在web.xml文件里面手动改 2. 这个样子的话你在用浏览器访问的时候链接的映射就改成了t_day05,这个主要用于你建立完一 ...

  2. Servlet API遍程常用接口和类

    本文主要总结Servlet  API遍程常用接口和类 Servlet API http://tomcat.apache.org/tomcat-5.5-doc/servletapi/index.html ...

  3. Servlet基础之一:Servlet基本接口与类

    1.概述 Servlet API中共有5个包,约113个接口和类: javax.servlet javax.servlet.http javax.servlet.jsp javax.servlet.a ...

  4. javaWeb学习总结(3)- Servlet总结(servlet的主要接口、类)

    Servlet总结01——servlet的主要接口.类 (一)servlet类 Servlet主要类.接口的结构如下图所示: 要编写一个Servlet需要实现javax.servlet.Servlet ...

  5. Servlet常用的接口和类

    使用接口和类的作用:Servlet也是依靠继承父类和实现接口来实现的.使用Servlet必须要引入两个包:javax.servlet和javax.servlet.http.所有的Servlet应用都是 ...

  6. Servlet基本用法(二)接口和类

    一.摘要 本文主要简单介绍开发Servlet需要用到的接口和类. 二.ServletRequest和ServletResponse接口 当客户请求到来时,由容器创建一个ServletRequest对象 ...

  7. Servlet基本用法二接口和类

    转自:http://www.cnblogs.com/xujian2014/p/4536168.html 一.摘要 本文主要简单介绍开发Servlet需要用到的接口和类. 二.ServletReques ...

  8. JavaWeb学习——Servlet相关的接口和类

    JavaWeb学习——Servlet相关的接口和类 摘要:本文主要学习了Servlet相关的接口和类. Servlet的接口和类 三种方式 实现Servlet有三种方式: 实现javax.servle ...

  9. Myeclipse中打开接口实现类的快捷键

    Myeclipse中打开接口实现类的快捷键-----Ctrl + T Myeclipse中 Open Type快捷键-----Ctrl + Shift + T

随机推荐

  1. 为WebView 同步cookie

    import android.os.Build;import android.text.TextUtils;import android.webkit.CookieManager;import and ...

  2. 如何系统的了解Kafka

    1.概述 在大数据的浪潮下,时时刻刻都会产生大量的数据.比如社交媒体.博客.电子商务等等,这些数据会以不同的类型存储在不同的平台里面.为了执行ETL(提取.转换.加载)操作,需要一个消息中间件系统,该 ...

  3. 用量子计算模拟器ProjectQ生成随机数,并用pytest进行单元测试与覆盖率测试

    技术背景 本文中主要包含有三个领域的知识点:随机数的应用.量子计算模拟产生随机数与基于pytest框架的单元测试与覆盖率测试,这里先简单分别介绍一下背景知识. 随机数的应用 在上一篇介绍量子态模拟采样 ...

  4. 面试系列二:精选大数据面试真题JVM专项-附答案详细解析

    公众号(五分钟学大数据)已推出大数据面试系列文章-五分钟小面试,此系列文章将会深入研究各大厂笔面试真题,并根据笔面试题扩展相关的知识点,助力大家都能够成功入职大厂! 大数据笔面试系列文章分为两种类型: ...

  5. 在C#的WPF程序使用XAML实现画线

    在WPF中画直线.新建WPF应用程序,使用XAML画直线.使用X1.Y1两个属性可以设置直线的起点坐标,X2.Y2两个属性则可以设置直线的终点坐标.控制起点/终点坐标就可以实现平行.交错等效果.Str ...

  6. 一文了解python的 @property

    参考自: https://www.programiz.com/python-programming/property Python为我们提供了一个内置装饰器@property,此方法使得getter和 ...

  7. [Elementary Mechanics-01]Two masses and a spring

    [Elementary Mechanics Using Python-01] Question 5.28 Two masses and a spring. Two particles of m = 0 ...

  8. Typescript开发学习总结(附大量代码)

    如果评定前端在最近五年的重大突破,Typescript肯定能名列其中,重大到各大技术论坛.大厂面试都认为Typescript应当是前端的一项必会技能.作为一名消息闭塞到被同事调侃成"新石器时 ...

  9. weblogic弱口令+后台getshell

     https://www.cnblogs.com/bmjoker/p/9822886.html利用docker环境模拟了一个真实的weblogic环境,其后台存在一个弱口令,并且前台存在任意文件读取漏 ...

  10. Linux sed 使用笔记

    sed 工具使用笔记 Linux中经常需要对一些超大的文本文件进行操作,例如 GB 级别的 CSV.TXT.LOG 文件,如果使用 vi 或者 vim 编辑器操作会非常慢且卡,此时 sed 工具或许可 ...