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容器模型 ...
随机推荐
- 2016中国大数据技术大会( BDTC ) 共商大数据时代发展之计
中国大数据技术大会(BDTC)的前身是Hadoop中国云计算大会(HadoopinChina,HiC).从2008年仅60余人参加的技术沙龙发展到当下数千人的技术盛宴,目前已成为国内最具影响力.规模最 ...
- 《JS权威指南学习总结--8.6 函数闭包》
内容要点: 和其他大多数现代编程一样,JS也采用词法作用域,也就是说,函数的执行依赖于变量作用域,这个作用域是在函数定义时决定的,而不是函数调用时决定的. 为了实现这种词法作用域,JS函数对象的内部状 ...
- lorem ipsum text占位符
Web开发者通常用lorem ipsum text来做占位符,占位符就是占着位置的一些文字,没有实际意义. 为什么叫lorem ipsum text呢? 是因为lorem ipsum是古罗马西塞罗谚语 ...
- linux 添加定时任务脚本
主要分2个步骤第一步 编写要定时执行的脚本touch mytask.shvi mytask.sh里面写入:#! /bin/bashecho `date` >> /tmp/mytask.l ...
- 同一级目录js的引入
- lua 中操作系统库
time 和 date 两个函数在lua中实现所有的时钟查询功能. 函数time在没有参数时返回当前时钟的数值.(在许多操作系统中,该数值是距离某个特定时间的秒数). date是time的一种“反函数 ...
- poj 3278 Catch That Cow bfs
Description Farmer John has been informed of the location of a fugitive cow and wants to catch her i ...
- GDI+ 图片转存
摘自MSDN,其中 GetEncoderClsid 第一个参数可为 L"image/bmp" L"image/jpeg" L"image/gif&qu ...
- javascript焦点图左右按钮简单自动轮播
这里把css和html合在一块写了,这块代码只是布局和样式不是重点 <!DOCTYPE html> <html> <head> <meta charset=& ...
- 《JavaScript高级程序设计》读书笔记 ---基本概念小结
ECMAScript 中的基本数据类型包括Undefined.Null.Boolean.Number 和String. 与其他语言不同,ECMScript 没有为整数和浮点数值分别定义不同的数据 ...