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

  • 相关阅读:
    我常用的find命令
    Linux压缩和解压汇总
    windows下bat批处理实现守护进程
    windows2003批量添加和导出所有ip
    bat批量去除文件首行和合并到文件
    windows下批量删除文件
    windows添加和删除服务
    【转】自动实时监控Windows2003服务器终端登录并发邮件和发短信通知
    设置windows网络连接别名和linux网络连接别名
    我常用的crontab命令
  • 原文地址:https://www.cnblogs.com/aixing/p/13327756.html
Copyright © 2011-2022 走看看