什么是容器?

servlet没用main方法,它们受控于另一个java应用程序,这个应用程序就称为容器。
tomcat就是这样一个容器。当web服务器得到一个指向某servlet的请求,此时服务器不是直接将请求交给该servlet本身,而是交由部署该servlet的容器,由容器向servlet提供HTTP请求和响应,而且要由容器调用servlet的方法,如doPost()或doGet()。容器主要提供一下几个支持:

  1. 通信支持:利用容器提供的方法,你能轻松的让servlet 与web服务器对话,无需自己建立与web服务器之间的通信
  2. 生命周期管理:控制servlet的生命周期:servlet的加载、实例化和初始化servlet、调用servlet方法,并使servlet能被垃圾回收器回收
  3. 多线程支持:容器会自动为它接受的每个请求创建一个新的java线程来处理此请求
  4. 声明方式实现安全:使用XML部署描述文件来配置安全性
  5. jsp支持

容器处理请求过程

  1. 用户点击一个链接,其url指向一个servlet而不是指向一个静态页面
  2. 容器根据url解析出对应的servlet,并为该请求创建两个对象:1)HttpServletResponse 2)HttpServletRequest
  3. 容器根据请求中的url找到正确的servlet,为这个请求创建或分配一个线程,并把该请求和响应传递给这个servlet线程
  4. 容器调用servlet的service()方法。根据请求的不同类型,service()方法会调用doGet()或doPost()方法。
  5. do**()方法生成动态页面,并把这个页面注入响应对象。
  6. 线程结束,容器把响应对象转换为一个http响应,并返回给客户,然后删除请求和响应对象。

下面是一个servlet示例:

public class HelloWoldServlet extends HttpServlet{
@Override
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException{
PrintWriter out = response.getWriter();
out.println("Hello World!");
}
}

转载于:https://www.cnblogs.com/graph/p/4545088.html

j2ee爬坑行之一:web容器相关推荐

  1. 腾讯王卡运营坑之一:web容器优雅停机缓慢

    什么叫做优雅停机: 通俗点理解(以tomcat为例),优雅停机就是当tomcat收到停机命令时,tomcat会关闭所有入口(表明我已经要停机了,你们别再来请求我了),同时对已经接受的请求继续完成相应的 ...

  2. Web容器自动对HTTP请求中参数进行URLDecode处理

    这篇文章转载自 : Web容器自动对HTTP请求中参数进行URLDecode处理 如题,在Java中也许很多人都没有注意到当我们发送一个http请求时,如果附带的参数被URLEncode之后,到达we ...

  3. 分层架构web容器的配置安全

    转自:http://hi.baidu.com/shineo__o/item/7520d54c24d234c71081da82 /ps:本以为这是一个偶然配置失误造成的问题,但最近几天无聊时测试发现,有 ...

  4. 【饿了么】—— Vue2.0高仿饿了么核心模块移动端Web App项目爬坑(一)

    [饿了么]-- Vue2.0高仿饿了么核心模块&移动端Web App项目爬坑(一) 前言:学习Vue.js高仿饿了么课程过程中,总结了这个Web App项目从准备到开发完毕自己觉得很重要的知识 ...

  5. j2ee servlet 和 threadlocal ,synchronized 与 web容器

    在传统的Web开发中,我们处理Http请求最常用的方式是通过实现Servlet对象来进行Http请求的响应.Servlet是J2EE的重要标准之一,规定了Java如何响应Http请求的规范.通过Htt ...

  6. 《第一行代码》读书笔记(七):album爬坑

    <第一行代码>读书笔记(七):album爬坑 权限问题 尽管书中提到4.4系统之前需要声明访问SD卡权限,不过很遗憾,4.4系统之后仍然需要 照片不显示问题 Android10对文件访问权 ...

  7. WEB 容器、WEB服务和应用服务器的区别与联系

    [web 容器] 何为容器: 容器是一种服务调用规范框架,J2EE 大量运用了容器和组件技术来构建分层的企业级应用.在 J2EE 规范中,相应的有 WEB Container 和 EJB Contai ...

  8. 【MyBatis】MyBatis自动生成代码之查询爬坑记

    前言 项目使用SSM框架搭建Web后台服务,前台后使用restful api,后台使用MyBatisGenerator自动生成代码,在前台使用关键字进行查询时,遇到了一些很宝贵的坑,现记录如下.为展示 ...

  9. 几种常见web 容器比较

    web 容器比较 tomcat jboss resin weblogic websphere glassfish Tomcat是Apache鼎力支持的Java Web应用服务器,由于它优秀的稳定性以及 ...

最新文章

  1. spring boot +spring data jpa +druid 多数据源配置
  2. 绘图: matplotlib Basemap简介
  3. STL之Deque的使用方法
  4. Hi3516A开发--I2C/SPI读写命令
  5. java项目皮肤包_java swing项目皮肤包+使用方法说明
  6. php xls 邮件,PHPMailer发送邮件
  7. es6判断对象key是否存在,ES6中获取对象的key
  8. 惊爆漏洞ShopEX4.8.5隐患漏洞,最终解决方法ShopEX4.8.5安装完成后打开显示:Access denied by install.lock...
  9. Redis基础学习(四)—Redis的持久化
  10. 6.4 First Missing Positive --- 图解
  11. 2020-04-06
  12. RANSAC算法拟合平面实现
  13. ecshop二次开发笔记
  14. Java md5加密算法
  15. 忆贵州三年的教书编程岁月:不弛于空想,不骛于虚声
  16. waves服务器系统盘,waves服务器:Waves现场声音解决方案
  17. wps打开服务器文件很慢,wps打开速度慢怎么办-wps打开速度慢解决方法 - 河东软件园...
  18. 消防管道标志色号_消防标志的起步问题
  19. 用Kubernetes部署超级账本Fabric的区块链即服务
  20. linux rcs 应用程序,Linux下的rcS文件的一些分析

热门文章

  1. Javascript 特效 转载
  2. Leetcode 133. 克隆图 解题思路及C++实现
  3. 【Linux】FrameBuffer操作入门
  4. 电脑安全注意事项_别墅装修设计注意事项 别墅装修的陷阱有哪些
  5. Zookeeper 服务注册与发现01——服务提供者
  6. bugku ctf 杂项 啊哒 writeup || foremost的安装
  7. JAVA的知识点3——浮点数的相关处理
  8. Oracle 数据库利用sql语句判断某个表是否是临时表实例演示,达梦数据库查询出所有临时表
  9. MySQL 技术篇- linux下mysql数据库利用binlog文件进行数据回滚实例演示,binlog恢复数据库的两种方式
  10. Python 技术篇-百度语音合成API接口调用演示