Java Web工作原理
解析HTTP协议
HTTP:超文本传输协议(HyperText Transfer Protocol)
HTTP是一种无状态的协议,意思是指在Web浏览器和Web服务器之间不需要建立持久的连接。
HTTP是遵循请求/响应(Request/Response)模型的。
HTTP处理流程:
建立连接
发送请求消息
一旦建立的TCP连接,Web浏览器就会向Web服务器发送请求命令。HTTP协议将请求封装成HTTP请求,它包括请求行,请求头,空行,消息体。 
 
回送响应信息
关闭连接
Web服务器的缺陷
只能向客户端提供静态网页内容 
增加一个辅助应用生成动态页面  
服务器端网页编程
建动态服务器端内容的过程 
–CGI技术 
–微软的ASP和ASP.NET技术 
–基于Java的Servlet/JSP技术
CGI技术
CGI即通用网关接口(Common Gateway Interface) 
最大优点是它可以用Shell、Perl、C、PHP、Python等编写 
但是CGI技术也有缺陷:
每次请求就打开一个CGI进程,严重消耗服务器资源。极大地限制了一个服务器可以支持的并发 CGI用户数量 。
java的解决方案
Web服务器
Web容器负责管理和运行Servlet
容器对Servlet的支持包括
- –通信支持
 - –生命周期管理
 - –多线程支持
 - –JSP支持
 - -处理安全性
 
Servlet
- Servlet是常规的Java代码。代码中用了一些新的API,但是不涉及新的语法。
 - Servlet代码中有我们不熟悉的重要语句。Servlet不属于J2SE,它属于单独的规范。
 - Servlet对标准类(HttpServlet)进行了扩展。
 - Servlet没有main()方法。
 
Servlet主要任务
- 读取客户端发送的显式和隐式数据
 - 生成结果
 - 向客户端发送显式数据(即文档)和隐式数据(HTTP响应数据)
 
Servlet规范
规范只定义了一个容器必须实现的标准功能 
Servlet容器有很多不同的实现 
–Tomcat 
–Jboss 
–WebLogic 
–WebSphere 
–Oracle9i AS
Servlet与Web容器配合处理请求和响应
1)客户端向Web服务器发起一个HTTP请求。
2)HTTP请求被Web服务器接受,如果请求的是静态页面,则由Web服务器负责处理。如果请求的是Java Web组件(Servlet或者JSP),则移交给Web容器。Web容器可以在主机的同一个进程、不同的进程或其他的Web服务主机的进程中启动。
3)Web容器根据Servlet的配置文件确定调用的具体Servlet类,并把request对象、response对象传给它。
4)Servlet通过request对象知道客户端的使用者是谁,客户的请求信息是什么和其他的一些信息。Servlet处理完请求后把要返回的信息放入response对象返回到客户端。
5)一旦Servlet完成了请求的处理,Web容器就会刷新response,把控制权返回给web服务器。
Java Web应用程序的组成
- 配置文件
 - 静态文件和JSP
 - 类文件和包
 
Java Web工作原理的更多相关文章
- 第一章 Java Web工作原理
		
一:在本章我们将学到如下的内容 >HTTP协议原理 >服务器端Web编程原理 >Servlet与Web容器 >Java Web应用程序的组成 >Tomcat介绍 一:1. ...
 - Java Web工作原理(转载)
		
知识要点: 1.HTTP协议 2.web服务器的缺陷及其解决方案 3.对Servlet的认识 4.Servlet的主要任务 5.web容器对Servlet的支持包括的内容 HTTP协议---(Hype ...
 - HTTP协议和web工作原理
		
本章学完之后能干什么? 要把 知识点学好,那就需要把它相关的周边知识点了解全面 HTTP协议是web学习的核心!!! 学东东切忌只学配置,不学原理:只学会框架有什么用,要会自己写框架!! web学习直 ...
 - [Java] SpringMVC工作原理之一:DispatcherServlet
		
一.DispatcherServlet 处理流程 在整个 Spring MVC 框架中,DispatcherServlet 处于核心位置,它负责协调和组织不同组件完成请求处理并返回响应工作.在看 Di ...
 - Java虚拟机工作原理详解 (一)
		
一.类加载器 首先来看一下java程序的执行过程. 从这个框图很容易大体上了解java程序工作原理.首先,你写好java代码,保存到硬盘当中.然后你在命令行中输入 javac YourClassNam ...
 - C/S B/S 及WEB工作原理
		
一.C/S B/S区别 (http://wenku.baidu.com/link?url=e8bxaqz_lYCXws6TlDRJEq1qsLumNTBhr3Es6eA1ZuhHhq9FZGbVgo ...
 - Java虚拟机工作原理详解
		
原文地址:http://blog.csdn.net/bingduanlbd/article/details/8363734 一.类加载器 首先来看一下java程序的执行过程. 从这个框图很容易大体上了 ...
 - Java虚拟机工作原理具体解释
		
一.类载入器 首先来看一下java程序的运行过程. 从这个框图非常easy大体上了解java程序工作原理.首先,你写好java代码,保存到硬盘其中.然后你在命令行中输入 javac YourClass ...
 - web基础-web工作原理,http协议,浏览器缓存
		
1,web工作原理 2,http协议 3,浏览器缓存 4,cookie和session -------------------------------------------------------- ...
 
随机推荐
- Kubernetes项目简介
			
Kubernetes项目简介 Kubernetes 是 Google 团队发起的开源项目,它的目标是管理跨多个主机的容器,提供基本的部署,维护以及运用伸缩,主要实现语言为 Go 语言.Kubernet ...
 - 浅谈connect,withRouter,history,useState,useEffect
			
1.connect in umi connect 可以链接不同的组件,从而在这个组件中使用其他组件的参数,常用于获取redux中存取的值. 2.withRouter in umi withRouter ...
 - MySQL在按照某个字段分组、排序加序号
			
事情是这样的,最近领导给了一个新的需求,要求在一张订单表中统计每个人第一次和第二次购买的时间间隔,最后还需要按照间隔统计计数,求出中位数等数据. 由于MySQL不想Oracle那般支持行号.中位数等, ...
 - 彻底搞懂JavaScript的闭包、防抖跟节流
			
最近出去面试了一下,收获颇多!!! 以前的我,追求实际,比较追求实用价值,然而最近面试,传说中的面试造火箭,工作拧螺丝,竟然被我遇到了.虽然很多知识点在实际工作中并不经常用到,但人家就是靠这个来筛选人 ...
 - Nginx集成Naxsi防火墙
			
前言 因工作原因,接触到了WAF,今天部署了一下Naxsi,记录一下 GitHub 正文 环境 Centos 7 下载 更新yum yum update -y 安装必要依赖 yum install g ...
 - LeetCode841 钥匙和房间
			
有 N 个房间,开始时你位于 0 号房间.每个房间有不同的号码:0,1,2,...,N-1,并且房间里可能有一些钥匙能使你进入下一个房间. 在形式上,对于每个房间 i 都有一个钥匙列表 rooms[i ...
 - (十二)random模块
			
大致有以下几个函数: print(random.random()) #0到1的浮点型 print(random.randint(1,6)) #1到6的整型 print(random.randrange ...
 - 类转json的基类实现
			
类转json的基类实现 项目地址 github地址 实现原理 使用反射获取类的属性名和属性内容.具体原理可以自己查一下资料 对一个类调用getClass().getDeclaredFields()可以 ...
 - [工作札记]03: 微软Winform窗体中ListView、DataGridView等控件的Bug,会导致程序编译失败,影响范围:到最新的.net4.7.2都有
			
工作中,我们发现了微软.net WinForm的一个Bug,会导致窗体设计器自动生成的代码失效,这个Bug从.net4.5到最新的.net4.7.2都存在,一直没有解决.最初是我在教学工作中发现的,后 ...
 - ping 命令示例
			
将下面的代码粘贴到记事本中,然后保存为扩展名为BAT的文件,运行就可以将网段内ping不通的IP地址写入到文本文件IP.txt中. @echo offsetlocal ENABLEDELAYEDEXP ...