zoukankan      html  css  js  c++  java
  • Java Web工作原理(转载)

    知识要点:

    1、HTTP协议

    2、web服务器的缺陷及其解决方案

    3、对Servlet的认识

    4、Servlet的主要任务

    5、web容器对Servlet的支持包括的内容

    HTTP协议---(HyperText Transfer Protocol)

    超文本传输协议,是网络应用层的协议,建立在TCP/IP协议的基础之上,是一种无状态的协议,遵循请求/响应模式。

    http请求:请求行、请求头、消息体以及分割请求头和消息体的空行;

    http响应:状态行、响应头、消息体以及分割响应头和消息体的空行;

    HTTP的事务处理步骤:

    1、客户端与web服务器建立连接;

    2、客户端发送HTTP请求;

    3、服务端接收客户端发送的HTTP请求,生成HTTP响应,并回送;

    4、服务器端关闭连接,客户端解析回送的响应,恢复页面。

    Web服务器的缺陷及其解决方案

    缺陷:只能向客户端提供静态网页内容

    解决思路:增加一个辅助应用程序,生成动态页面。

    具体解决方案:

    1、CGI:通用网关接口---Common Geteway Interface

    2、微软的ASP技术和ASP.NET技术

    3、JAVA方案:web容器与Servlet

    CGI方案:

    1、优点:多种语言可以实现此种方法

    2、缺点:只要客户端发出请求,就会创建一个CGI对象,造成服务器资源浪费,效率低下。

    JAVA解决方案:

    1、Servlet是单例多线程,不用每次请求都创建对象;

    2、Servlet本身已实现HTTP协议,对开发者来说,不用对HTTP协议进行深入的理解。

    Servlet的任务:

    A、认识

    1、Servlet是常规的Java代码,代码中用了一些新的API,但是不涉及新的语法;

    2、Servlet代码有我们不熟悉的语句,Servlet不属于J2SE,它属于单独的规范;

    3、Servlet对标准类(Http Servlet)进行了扩张;

    4、Servlet没有main()方法。

    B、任务

    1、读取客户端发送的显式的或隐式的数据;

    2、生成结果;

    3、向客户端发送显式数据(文档)和隐式数据(http响应请求)

    Web容器

    1、Web容器负责管理和运行Servlet,为Servlet提供所需的环境

    2、Web容器使程序员可以把注意力放在Servlet如何实现业务逻辑上,而无需其他系统问题;

    3、Web容器对Servlet的支持

               a、通信支持:web容器可以把请求和响应流封装成请求和响应对象,方便用户对流数据进行操作;

               b、生命周期管理:Servlet的生成、调用和销毁,全部由容器来管理,用户执行按Servlet的标准来书写业务逻辑;

               c、多线程支持:线程的产生、进行和同步问题由web容器来进行;

               d、对JSP进行相关的处理

               e、安全性处理,可以处理用户进行业务逻辑时抛出的异常。

    web容器主要用户给处理容器中的应用程序组件(Servlet、JSP)提供一个环境,使Servlet、JSP直接跟容器的环境变量交互,这样,我们就可以把注意力放在用Servlet实现业务逻辑上,而不必关注其他系统问题。

    Java web应用程序目录结构的组成:配置文件、静态文件和JSP、类文件和包。

    WEB-INF不能被客户端直接访问。

    Tomcat的目录结构:

    1、bin:tomcat的命令目录

    2、conf:配置目录

    3、lib:tomcat运行使用的包;

    4、logs:存放日志文件

    5、webapps:存放web应用;

    6、work:用于JSP支持。

    web应用打包成war包的命令:先从控制台进入web应用的文件夹,命令为:jar -cf wenjianming.war WEB-INF *.jpg *.html

  • 相关阅读:
    斯坦福大学Andrew Ng
    斯坦福大学Andrew Ng
    斯坦福大学Andrew Ng
    斯坦福大学Andrew Ng
    学到即赚到
    matlab学习笔记之五种常见的图形绘制功能
    Flutter混合栈的管理
    Android调用系统拍照裁剪和选图功能
    Android DataBinding库(MVVM设计模式)
    Flutter 动画使用
  • 原文地址:https://www.cnblogs.com/xiaoerlang/p/3385923.html
Copyright © 2011-2022 走看看