zoukankan      html  css  js  c++  java
  • 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
    • 类文件和包

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

  • 相关阅读:
    VIJOS-P1340 拯救ice-cream(广搜+优先级队列)
    uva 11754 Code Feat
    uva11426 GCD Extreme(II)
    uvalive 4119 Always an Interger
    POJ 1442 Black Box 优先队列
    2014上海网络赛 HDU 5053 the Sum of Cube
    uvalive 4795 Paperweight
    uvalive 4589 Asteroids
    uvalive 4973 Ardenia
    DP——数字游戏
  • 原文地址:https://www.cnblogs.com/aixing/p/13327756.html
Copyright © 2011-2022 走看看