servlet容器开发要点
- v1 是一个http服务器.
- v2 是一个servlet容器, 可以提供servlet的服务. => 动态load servlet字节码,并运行它( 按生命周期).
- servlet容器它来控制servlet的生命周期.
- Servlet类必须要实现一个接口 Servlet , 提供所有的Servlet都要有的方法( 生命周期)
- 对于要处理的资源有两种: 静态资源/动态资源. 定义一个接口,写两个实现.
动态资源: http://localhost:8888/servlet/hello
GET /servlet/hello HTTP/1.1
静态资源: http://localhost:8888/index.html
GET /index.html HTTP/1.1
=> 将这种处理定义成一个接口 Processor ( process() ) -> StaticProcessor
-> DynamicProcessor
Servlet运行;
第一次访问: 构造方法 -> init() -> service() -> doGet()/doPost()
第二次访问: -> service() -> doGet()/doPost()
get
http://localhost:8080/servlet/Hi?name=zy&age=20
GET /servlet/Hi?name=zy&age=20
功能:
1. 等待http请求, 接收请求,做一些解析 -> uri ( 静态资源/动态资源)
2. 解析http请求, 构造成一个 HttpServletRequest对象, HttpServletResponse对象.
3. 判断请求的资源的类型静态的资源/动态的资源 , 静态的资源 -> StaticProcessor类
动态资源 -> DynamicProcessor类, 必须要有 Request和Response对象
4. 动态加载Servlet的字节码,并调用service() -> 判断请求的方法, 调用对应的 Servlet中的doGet()/doPost()
由以下的类和接口组成:
HttpServer
ServerService
ServletRequest接口 -> HttpServletRequest类
ServletResponse接口 -> HttpServletResponse类
Processor接口 ( process( Request, Response) ) -> 静态资源 : StaticProcessor类
动态资源 : DynamicProcessor类
Servlet接口: 定义生命周期方法
TomcatConstants类:

servlet容器开发要点的更多相关文章
- nginx unit 1.8 支持基于java servlet 的开发模型
最近unit 1.8 发布了,有两个比较大的新特性,内部请求路由,以及java servlet 容器应用的开发 内部请求路由配置参考 { "routes": [ { "m ...
- JavaWeb开发之详解Servlet及Servlet容器
自JavaEE诞生伊始,Servlet容器和Servlet技术,就构成了JavaEE应用的核心,配合其它组件,它们完善了Java企业级开发的全套解决方案.小到一个静态博客网站,大到分布式的集群应用,都 ...
- 19. SpringBoot_web开发-使用外部Servlet容器&JSP支持
還沒有web.xml,生 配置tomcat 嵌入式Servlet容器:应用打成可执行的jar 优点:简单.便携: 缺点:默认不支持JSP.优化定制比较复杂 使用定制器[ServerPropertie ...
- (7)Spring Boot web开发 --- servlet容器
文章目录 配置嵌入式 Servlet 容器 注册 三大组件 使用其他 servlet 容器 使用外置的 `Servlet` 容器 配置嵌入式 Servlet 容器 Spirng Boot 默认使用自带 ...
- springboot开发之使用外部servlet容器及对jsp的支持
一般而言,springboot是使用自己内嵌的servlet容器,比如tomcat等等,而且默认的模板引擎是thymeleaf,那么如何让springboot使用外部的servlet容器并支持对jsp ...
- 深入剖析tomcat之一个简单的servlet容器
上一篇,我们讲解了如果开发一个简单的Http服务器,这一篇,我们扩展一下,让我们的服务器具备servlet的解析功能. 简单介绍下Servlet接口 如果我们想要自定义一个Servlet,那么我们必须 ...
- servlet的开发流程介绍
servlet的开发部署流程 1.在%TOMCAT_HOME%/webapps下WEB-INF的文件夹,写一个文件web.xml(该网站的配置信息),建立一个classes的子文件夹,也可以从别的目录 ...
- Java使用Jetty实现嵌入式Web服务器及Servlet容器
Jetty是一个Java实现的开源的servlet容器,它既可以像Tomcat一样作为一个完整的Web服务器和Servlet容器,同时也可以嵌入在Java应用程序中,在Java程序中调用Jetty. ...
- Servlet容器的启动(Tomcat为例)
一.容器简介 在tomcat容器等级中,context容器直接管理servlet在容器中的包装类Wrapper,所以Context容器如何运行将直接影响servlet的工作方式. tomcat容器模型 ...
随机推荐
- java中字符串的操作
//创建一个字符数组 char[] charArr = {'a','b','c','d','e','f','g'}; //创建一个字符串 String str = new String(charArr ...
- js正则函数中test和match的区别
test是RegExp的方法,参数是字符串,返回值是boolean类型. match是String的方法,参数是正则表达式,返回值是数组. <script type="text/jav ...
- NSCondition
一.NSCondition是对条件变量和互斥量的一个封装,用于线程之间的同步. 其中的互斥量用于保护对条件变量的修改,条件变量变化以信号量的方式通知其它线程实现线程之间的同步. 二.NSConditi ...
- UltraEdit 中的常用正则表达式
正则表达式 (UltraEdit Syntax): % 匹配行首 - 表明要搜索的字符串一定在行首. $ 匹配行尾 - 表明要搜索的字符串一定在行尾 ? 匹配除换行符外的任一单个字符. ...
- Openjudge-计算概论(A)-求特殊自然数
描述: 一个十进制自然数,它的七进制与九进制表示都是三位数,且七进制与九进制的三位数码表示顺序正好相反.编程求此自然数,并输出显示. 输入为1时,输出此自然数的十进制表达式:输入为2时,输出此自然数的 ...
- 【卷一】正则四 |> 练习
参考:<Python核心编程(3rd)>—P39 1-1 识别后续的字符串: "bat", "bit", "but" &quo ...
- 34.编写2个接口:InterfaceA和InterfaceB;在接口InterfaceA中有个方法void printCapitalLetter();在接口InterfaceB中有个方法void printLowercaseLetter();然 后写一个类Print实现接口InterfaceA和InterfaceB,要求printCapitalLetter()方法 实现输出大写英文字母表的功能,
//接口InterfaceA package jieKou; public interface IInterfaceA { void printCapitalLetter(); } //接口Inter ...
- Foundations of Computer Science
1, Iteration, Induction and Recursion 2, the running time of program 3, combinatorics and probabilit ...
- docker私服
1.下载私服镜像docker pull registry 2.启动容器docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registr ...
- IOS 第三方库之-MBProgressHUD的使用详解
转自作者: weidfyr http://www.aiuxian.com/article/p-3121607.html 1,MBProgressHUD常用属性和用法Demo - (void)test ...