当请求到来时, 必须有人实例化 servlet, 或者至少建立一个新的线程来处理这个请求. 必须有人调用 servlet 的 doPost()或 doGet()方法. 另外还的有人管理 servlet的”生”与”死”, 这个管理方就是 web 容器

什么是容器

servlet 没有 main() 方法, 它们受控于一个 java 应用, 这个 java应用称为 容器

Tomcat 就是这样一个容器, web服务器得到一个servlet请求(不是其他请求,例如一个静态页面请求), 服务器不是把这个请求交个servlet本身,而是交给了部署该servlet的容器, 容器创建新的线程, 要由容器向线程提供http请求和响应, 而且要容器调用servlet方法(doGet()和doPost())

如果没有 tomcat, 那么所有的内容就要自己编写, 例如自己写 socket 等

多亏有了容器, 你可以更专注于自己的业务逻辑, 而不用考虑为线程管理, 安全性和网络通信编写代码.

容器会自动的为它接收的每个servlet请求创建一个新的java线程.

利用容器, 可以使用 XML部署描述文件来配置(和修改)安全性.

容器怎么样把 servlet 映射到 url ?

1. 客户使用 servlet 绝对路径和文件名

2. 容器开发商提供工具完成映射

3. 某种属性来映射

首先, 处于安全性和软件维护方面考虑, 不能使用方案1, 因为不需要让用户知道web的目录结构, 另外, 当要修改目录结构时, 如果采用这种方式, 难于修改, ( 应该做个间接, 做到一改全改 )

而直接使用开发商提供的工具, 又缺乏灵活性, 所以 需要使用部署描述文件把 url 映射到 servlet

在把 servlet部署到web容器时, 会创建一个相当简单的 xml 文档, 这称为 部署描述文件(DD),该文件会告诉容器如何运行你的servlet和jsp。

<servlet> 把内部名映射到完全限定类名

<servlet-mapping> 把内部名映射到公共URL

JSP web 流程

JSP世界中的MVC

最新文章

  1. zTree默认勾选指定ID并执行事件
  2. android手机调试时不能打印Logcat日志信息
  3. mysql备份与还原
  4. Delphi管理多线程之线程局部存储:threadvar
  5. 转自:C#中TextBox水印提示的简单实现
  6. NSString 的 compare 方法
  7. linux下安装mysql手记
  8. ImportError: No module named setuptools
  9. c语言的一些库
  10. MapSearch 阅读随笔
  11. 获得临时文件目录(Temp文件夹)
  12. DOS批处理命令-注释
  13. Local Binary Convolutional Neural Networks ---卷积深度网络移植到嵌入式设备上?
  14. sql server 实现split功能 行转列
  15. 编程入门视频【 Python、PHP、ThinkPHP、Laravel、Mysql、微信小程序】
  16. docker整理
  17. IM群聊消息的已读回执功能该怎么实现?
  18. python属性管理(1):基础
  19. dasd
  20. BZOJ1096 [ZJOI2007]仓库建设 动态规划 斜率优化

热门文章

  1. 研究Dropbox Server端文件系统
  2. 您可能不知道的ASP.Net小技巧
  3. CentOS 6下安装nginx
  4. 大一暑假为期五周的ACM实验室培训结束了(2013.8.24)
  5. 无线Ad-hoc网络的关键技术之路由(转)
  6. select into from和insert into select from两种表复制语句区别
  7. C#程序重启自己
  8. 在Unity中使用贝塞尔曲线(转)
  9. C#日期大全
  10. Haproxy安装及配置