Java Web工作原理

来源:互联网 发布:清华北大抢人 知乎 编辑:程序博客网 时间:2024/06/07 22:41

解析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
  • 类文件和包

原文地址:
http://www.cnblogs.com/hellokitty1/p/4835408.html

原创粉丝点击