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. 后端程序员之路 18、朴素贝叶斯模型(Naive Bayesian Model,NBM)

    贝叶斯推断及其互联网应用(一):定理简介 - 阮一峰的网络日志http://www.ruanyifeng.com/blog/2011/08/bayesian_inference_part_one.ht ...

  2. Nginx配置翻译

    Windows 格式 server { listen 82; server_name localhost; root "D:/testfile/"; location / { in ...

  3. #progma pack(x)说明

    1.字节对齐(内存相关) 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数 ...

  4. 剑指 Offer 26. 树的子结构

    剑指 Offer 26. 树的子结构 Offer 26 题目详情: 题解分析 解法一: 第一种比较容易想到的解法就是查看这两棵树的前序遍历和中序遍历序列是否都匹配. 因为前序遍历和中序遍历可以唯一确定 ...

  5. 记录 Allsec 解题过程

    开局打开URL:http://119.3.191.245:65532/#/allsecPlayGame,前去做游戏 游戏URL:http://119.3.191.245:8877/Login.php ...

  6. Celery:小试牛刀

    Celery是如何工作的? Celery 由于 其分布式体系结构,在某种程度上可能难以理解.下图是典型Django-Celery设置的高级示意图(FROM O'REILLY): 当请求到达时,您可以在 ...

  7. 计算机二级Python学习笔记(一):温度转换

    今天通过一个温度转换的十行代码,理解了一些Python的基本元素. 所谓温度转换,就是摄氏度和华氏度的转换,要求输入摄氏度,可以输出华氏度,反之一样能实现.代码如下: #TempConvert.py ...

  8. 2019 GDUT Rating Contest II : Problem F. Teleportation

    题面: Problem F. Teleportation Input file: standard input Output file: standard output Time limit: 15 se ...

  9. 正则表达式-Python实现

    1.概述: Regular Expression.缩写regex,regexp,R等: 正则表达式是文本处理极为重要的工具.用它可以对字符串按照某种规则进行检索,替换. Shell编程和高级编程语言中 ...

  10. Shuffle Card HDU - 6707

    题目链接:https://vjudge.net/problem/HDU-6707 题意:给你一个数组a[ ](a[1]=1,a[2]=2.....a[n]=n),然后m次操作,每次把那个数拿到最前面去 ...