j2ee爬坑行之一:web容器
什么是容器?
servlet没用main方法,它们受控于另一个java应用程序,这个应用程序就称为容器。
tomcat就是这样一个容器。当web服务器得到一个指向某servlet的请求,此时服务器不是直接将请求交给该servlet本身,而是交由部署该servlet的容器,由容器向servlet提供HTTP请求和响应,而且要由容器调用servlet的方法,如doPost()或doGet()。容器主要提供一下几个支持:
- 通信支持:利用容器提供的方法,你能轻松的让servlet 与web服务器对话,无需自己建立与web服务器之间的通信
- 生命周期管理:控制servlet的生命周期:servlet的加载、实例化和初始化servlet、调用servlet方法,并使servlet能被垃圾回收器回收
- 多线程支持:容器会自动为它接受的每个请求创建一个新的java线程来处理此请求
- 声明方式实现安全:使用XML部署描述文件来配置安全性
- jsp支持
容器处理请求过程
- 用户点击一个链接,其url指向一个servlet而不是指向一个静态页面
- 容器根据url解析出对应的servlet,并为该请求创建两个对象:1)HttpServletResponse 2)HttpServletRequest
- 容器根据请求中的url找到正确的servlet,为这个请求创建或分配一个线程,并把该请求和响应传递给这个servlet线程
- 容器调用servlet的service()方法。根据请求的不同类型,service()方法会调用doGet()或doPost()方法。
- do**()方法生成动态页面,并把这个页面注入响应对象。
- 线程结束,容器把响应对象转换为一个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容器相关推荐
- 腾讯王卡运营坑之一:web容器优雅停机缓慢
什么叫做优雅停机: 通俗点理解(以tomcat为例),优雅停机就是当tomcat收到停机命令时,tomcat会关闭所有入口(表明我已经要停机了,你们别再来请求我了),同时对已经接受的请求继续完成相应的 ...
- Web容器自动对HTTP请求中参数进行URLDecode处理
这篇文章转载自 : Web容器自动对HTTP请求中参数进行URLDecode处理 如题,在Java中也许很多人都没有注意到当我们发送一个http请求时,如果附带的参数被URLEncode之后,到达we ...
- 分层架构web容器的配置安全
转自:http://hi.baidu.com/shineo__o/item/7520d54c24d234c71081da82 /ps:本以为这是一个偶然配置失误造成的问题,但最近几天无聊时测试发现,有 ...
- 【饿了么】—— Vue2.0高仿饿了么核心模块移动端Web App项目爬坑(一)
[饿了么]-- Vue2.0高仿饿了么核心模块&移动端Web App项目爬坑(一) 前言:学习Vue.js高仿饿了么课程过程中,总结了这个Web App项目从准备到开发完毕自己觉得很重要的知识 ...
- j2ee servlet 和 threadlocal ,synchronized 与 web容器
在传统的Web开发中,我们处理Http请求最常用的方式是通过实现Servlet对象来进行Http请求的响应.Servlet是J2EE的重要标准之一,规定了Java如何响应Http请求的规范.通过Htt ...
- 《第一行代码》读书笔记(七):album爬坑
<第一行代码>读书笔记(七):album爬坑 权限问题 尽管书中提到4.4系统之前需要声明访问SD卡权限,不过很遗憾,4.4系统之后仍然需要 照片不显示问题 Android10对文件访问权 ...
- WEB 容器、WEB服务和应用服务器的区别与联系
[web 容器] 何为容器: 容器是一种服务调用规范框架,J2EE 大量运用了容器和组件技术来构建分层的企业级应用.在 J2EE 规范中,相应的有 WEB Container 和 EJB Contai ...
- 【MyBatis】MyBatis自动生成代码之查询爬坑记
前言 项目使用SSM框架搭建Web后台服务,前台后使用restful api,后台使用MyBatisGenerator自动生成代码,在前台使用关键字进行查询时,遇到了一些很宝贵的坑,现记录如下.为展示 ...
- 几种常见web 容器比较
web 容器比较 tomcat jboss resin weblogic websphere glassfish Tomcat是Apache鼎力支持的Java Web应用服务器,由于它优秀的稳定性以及 ...
最新文章
- spring boot +spring data jpa +druid 多数据源配置
- 绘图: matplotlib Basemap简介
- STL之Deque的使用方法
- Hi3516A开发--I2C/SPI读写命令
- java项目皮肤包_java swing项目皮肤包+使用方法说明
- php xls 邮件,PHPMailer发送邮件
- es6判断对象key是否存在,ES6中获取对象的key
- 惊爆漏洞ShopEX4.8.5隐患漏洞,最终解决方法ShopEX4.8.5安装完成后打开显示:Access denied by install.lock...
- Redis基础学习(四)—Redis的持久化
- 6.4 First Missing Positive --- 图解
- 2020-04-06
- RANSAC算法拟合平面实现
- ecshop二次开发笔记
- Java md5加密算法
- 忆贵州三年的教书编程岁月:不弛于空想,不骛于虚声
- waves服务器系统盘,waves服务器:Waves现场声音解决方案
- wps打开服务器文件很慢,wps打开速度慢怎么办-wps打开速度慢解决方法 - 河东软件园...
- 消防管道标志色号_消防标志的起步问题
- 用Kubernetes部署超级账本Fabric的区块链即服务
- linux rcs 应用程序,Linux下的rcS文件的一些分析
热门文章
- Javascript 特效 转载
- Leetcode 133. 克隆图 解题思路及C++实现
- 【Linux】FrameBuffer操作入门
- 电脑安全注意事项_别墅装修设计注意事项 别墅装修的陷阱有哪些
- Zookeeper 服务注册与发现01——服务提供者
- bugku ctf 杂项 啊哒 writeup || foremost的安装
- JAVA的知识点3——浮点数的相关处理
- Oracle 数据库利用sql语句判断某个表是否是临时表实例演示,达梦数据库查询出所有临时表
- MySQL 技术篇- linux下mysql数据库利用binlog文件进行数据回滚实例演示,binlog恢复数据库的两种方式
- Python 技术篇-百度语音合成API接口调用演示