servlet的运行工作
我是一个刚学几天的小白,写得不好,如果哪个地方有错误,欢迎你们指出。
在服务器端,我用的是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的运行工作的更多相关文章
- Servlet生命周期+工作原理
Servlet生命周期+工作原理 1.Servlet的生命周期: Servlet加载,加载,服务,销毁. 2.典型函数解释: Init():这个函数是用来初始化Servlet对象的.在 ...
- Servlet启动运行顺序
1.web项目执行属性 启动web项目后,web容器首先回去找web.xml文件,读取这个文件. 容器会创建一个 ServletContext ( servlet 上下文),整个 web 项目的所有部 ...
- Servlet的运行流程以及web.xml文件中的几种配置方式
Servlet的运行流程: 有俩种方式: 1.创建一个包,然后在包下创建一个class,class里面需要继承httpservlet,复写service方法------>配置web.xml文件: ...
- JDK - Tomcat - JSP - Servlet 配置运行全攻略(转)
http://www.cnblogs.com/myqiao/archive/2005/08/29/225497.html 花了将近两个月的时间,从 JDK 开始一步一步摸索,历经千辛万苦,终于让第一个 ...
- JDK - Tomcat - Eclipse - JSP - Servlet 配置运行全攻略
花了将近两个月的时间,从 JDK 开始一步一步摸索,历经千辛万苦,终于让第一个 Servlet 运行起来了,创建第一个 Servlet 程序确实要比创建第一个 Asp.net 程序困难多了,但是不要 ...
- Servlet主要相关类核心类 容器调用的过程浅析 servlet解读 怎么调用 Servlet是什么 工作机制
WEB简介 Web项目 是 B/S结构 浏览器/服务器模式的 浏览器发起请求,服务器作出响应 请求的发起和响应使用HTTP协议进行通讯 所谓协议也就是一种固定格式 而Socket是应用 ...
- Java Servlet(四):Servlet接口service工作(ServletRequest,ServletResponse对象)(jdk7+tomcat7+eclipse)
本篇将会记录,Servlet接收客户端传递来的参数信息,并返回信息使用的对象,及这些对象的函数相关用法. 还是在java ee工程中进行操作,在WebContent目录下创建一个login.jsp文件 ...
- servlet 容器,工作原理,优缺点
转自http://blog.sina.com.cn/s/blog_b5a157500101ld71.html servlet:是以java技术为基础,应用于服务器端的程序组件,本质就是java代码,用 ...
- Servlet基础(工作原理、生命周期)
(一)Servlet开发与配置 1.1 开发步骤 1)编写java类,继承HttpServlet类 2)重新doGet和doPost方法 3)Servlet程序交给tomcat服务器运行! 配置信息: ...
随机推荐
- Project Euler:99 Largest exponential C++
Comparing two numbers written in index form like 211 and 37 is not difficult, as any calculator woul ...
- Spring第八篇【XML、注解实现事务控制】
前言 本博文主要讲解Spring的事务控制,如何使用Spring来对程序进行事务控制-. 一般地,我们事务控制都是在service层做的..为什么是在service层而不是在dao层呢??有没有这样的 ...
- JavaScript中的for in循环
在学习AJAX的时候,发现JavaScript中for in循环,这种循环对于遍历JSON是很好用的.于是写下了这篇博文 作用 for in循环本质上是forEach循环,它主要有两个作用 遍历数组 ...
- python实例编写(2)--等待,一组对象,层级元素,frame对象处理
一.设置等待 #coding=utf-8 from selenium import webdriver from selenium.webdriver.support.ui import WebDri ...
- python 集合的操作
list_1 = set([1,2,3,4,5])#print(list_1,type(list_1))list_2 = set([1,2,3,6,7,8,9,10])#print(list_2,ty ...
- 都是Javascript的作用域惹得祸
案件重现 今天有位然之OA 系统的定制开发用户咨询了个问题,他想在新加的功能模块的操作面板中,实现用户点击删除按钮时提示友好提醒,如下: 问题很简单,虽然他自己最终达到目的效果了,但不知道起初问题出在 ...
- JVM读书笔记PART3
一.早期(编译器)优化 语法糖 c#和java的泛型截然不同看似相同,c#是真实的泛型 编译运行一直存在 List<string> 和List<int> 就完全是两个类 而Ja ...
- 巧用Mono.Cecil反射加载类型和方法信息
最近在做服务的细粒度治理,统一管理所有服务的方法.参数.返回值信息.方便后续的各个模块之间的对接和协作. 目前系统中所有的服务,管理到接口契约粒度,即服务接口声明和服务接口实现.要做服务的细粒度治理: ...
- mybatis 架构
官网地址:http://code.google.com/p/mybatis/ 版本:mybatis 3.2.3 生成工具:mybatis-generator-core-1.3.2-bundle.zip ...
- 风趣的JavaScript面向对象入门课程一
在我们程序猿界一直流传这这么一个joke,没女票我们可以new一个.没房子没票子没车子我们同样new一个!当然这听着更像是一种自嘲,毕竟我们程序猿都爱自嘲,哈哈,废话不多说,今天就由我带着你们来入Ja ...