我是一个刚学几天的小白,写得不好,如果哪个地方有错误,欢迎你们指出。

在服务器端,我用的是Tomcat作为Servlet 容器,在容器中有一个Servlet接口,你编写一个servlet类放在Tomcat中,当你在浏览器中访问这个servlet的URL时,在这里假设你访问的是存在的servlet,我们都知道接下来就是WEB容器会解析请求,创建servlet 实例,然后调用service( )方法,然后把响应结果发送给浏览器,具体过程可以通过一些资料得知,我接下来要写的是我自己的一些迷惑和理解。

我是在eclipse ee 搭建Tomcat,然后创建一个项目,创建一个serlet类,在该servlet类中,你只看到无参构造方法、doGet()和doPost( )方法,并没有service( )方法,那么上面所说的调用service( )方法是什么意思呢?

其实通过eclipse 提供的servlet类模板,可以看到你所编写的servlet类是继承了HttpServlet类,而HttpServlet类是GenericServlet类的子类,GenericServlet类实现了Servlet容器中的Servlet接口,在Servlet接口中,就定义了service( )方法,这个方法是要由Servlet 容器来调用的,GenericServlet类实现该接口,由GenericServlet类的源码可看出,GenericServlet类并没有实现Service( )方法,而service()方法也成为了GenericServlet类中唯一的抽象方法,(GenericServlet类是抽象类),所以GenericServlet类的具体子类必须实现该方法,而HttpServlet是GenericServlet类的子类,所以在HttpServlet类中,由源码可知HttpServlet实现了Servlet接口中的service()方法,并且重载了该方法,重载后的该方法,会根据获得的客户端请求方式来调用匹配的服务方法,如果是Get方法,则调用doGet()方法,如果是Post方法,则调用doPost()方法,我们创建的servlet类继承了HttpServlet类,并且重载了doGet()和doPost(),这可以说是一种封装思想吧,你并不需要去修改service()方法,你只需要根据需要去修改doGet()和doPost()方法,通过源码,我们可以知道在HttpServlet中,有两个service()方法,第一个是实现了Servlet接口的service()方法,第二个则是重载service()方法,在第一个srevice()方法调用了重载的service()方法,重载的service()方法的功能,上面已经说过了,就是判断要调用哪个方法,

servlet的运行工作的更多相关文章

  1. Servlet生命周期+工作原理

    Servlet生命周期+工作原理 1.Servlet的生命周期:     Servlet加载,加载,服务,销毁. 2.典型函数解释:     Init():这个函数是用来初始化Servlet对象的.在 ...

  2. Servlet启动运行顺序

    1.web项目执行属性 启动web项目后,web容器首先回去找web.xml文件,读取这个文件. 容器会创建一个 ServletContext ( servlet 上下文),整个 web 项目的所有部 ...

  3. Servlet的运行流程以及web.xml文件中的几种配置方式

    Servlet的运行流程: 有俩种方式: 1.创建一个包,然后在包下创建一个class,class里面需要继承httpservlet,复写service方法------>配置web.xml文件: ...

  4. JDK - Tomcat - JSP - Servlet 配置运行全攻略(转)

    http://www.cnblogs.com/myqiao/archive/2005/08/29/225497.html 花了将近两个月的时间,从 JDK 开始一步一步摸索,历经千辛万苦,终于让第一个 ...

  5. JDK - Tomcat - Eclipse - JSP - Servlet 配置运行全攻略

    花了将近两个月的时间,从 JDK 开始一步一步摸索,历经千辛万苦,终于让第一个 Servlet 运行起来了,创建第一个 Servlet  程序确实要比创建第一个 Asp.net 程序困难多了,但是不要 ...

  6. Servlet主要相关类核心类 容器调用的过程浅析 servlet解读 怎么调用 Servlet是什么 工作机制

      WEB简介   Web项目 是 B/S结构 浏览器/服务器模式的 浏览器发起请求,服务器作出响应   请求的发起和响应使用HTTP协议进行通讯 所谓协议也就是一种固定格式   而Socket是应用 ...

  7. Java Servlet(四):Servlet接口service工作(ServletRequest,ServletResponse对象)(jdk7+tomcat7+eclipse)

    本篇将会记录,Servlet接收客户端传递来的参数信息,并返回信息使用的对象,及这些对象的函数相关用法. 还是在java ee工程中进行操作,在WebContent目录下创建一个login.jsp文件 ...

  8. servlet 容器,工作原理,优缺点

    转自http://blog.sina.com.cn/s/blog_b5a157500101ld71.html servlet:是以java技术为基础,应用于服务器端的程序组件,本质就是java代码,用 ...

  9. Servlet基础(工作原理、生命周期)

    (一)Servlet开发与配置 1.1 开发步骤 1)编写java类,继承HttpServlet类 2)重新doGet和doPost方法 3)Servlet程序交给tomcat服务器运行! 配置信息: ...

随机推荐

  1. CustomDialog——一个多功能、通用、可自定义的Dialog

    CustomDialog--一个多功能.通用.可自定义的Dialog  依赖 compile 'com.github.SiberiaDante:CustomDialog:v1.0.1'  说明[Cus ...

  2. python 基础之字符编码和文件处理

    一.字符编码 (1)计算机基础知识 (2)python 解释器执行py文件的原理 <1>python 解释器启动 <2>python解释器相当于一个文本编辑器,打开txt.py ...

  3. angular 时间戳转换

    .filter('getWeek', function() { return function(input) { var date = new Date(input * 1000); var week ...

  4. 你必知必会的SQL面试题

    写在前面的话 本文参考原博<走向面试之数据库基础:一.你必知必会的SQL语句练习-Part 1>和<走向面试之数据库基础:一.你必知必会的SQL语句练习-Part 2>进行练习 ...

  5. u盘分区装机版

    第一步:制作启动U盘前的软硬件准备 .准备一个最好大于2G的U盘,并先备份好里面的数据,防止接下来需要清空U盘的数据而出现丢失重要文件: 2.下载U盘启动盘制作工具6.1软件,直接放在桌面,方便接下来 ...

  6. Ansible系列(三):YAML语法和playbook写法

    html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

  7. Android 之JDBC

    JDBC(Java DataBase Connectivity)是使用 Java 存取数据库系统的标准解决方案,它将不同数据库间各自差异API与标准 SQL语句分开看待,实现数据库无关的 Java操作 ...

  8. JVM菜鸟进阶高手之路六(JVM每隔一小时执行一次Full GC)

    转载请注明原创出处,谢谢! 上次分析详细地址在:http://www.jianshu.com/p/a6236cd39e2d 以为上次问题是rmi的问题就此结束了,但是问题并没有结束,其实本次问题不是r ...

  9. Python 接口测试(二)

    三:http状态码含义(来源于w3school): 状态码: 1xx: 信息 消息:          描述: 100 Continue   服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客 ...

  10. js特效遮罩层(弹出层)

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...