• 6_12 java WEB 第一节课


                                                   java web 工作原理

      动态网页与静态网页最本质的区别是: 能否进行数据库操作

    动态网页最大的特点就是具有交互性 ,  交互性指: 服务端会根据不同的用户请求显示不同的结果

    OSI 7层参考模型

             1.应用层

              2.表示层

             3.会话层

             4.传输层

             5 网络层

              6 .数据链路层

             7 .物理层

    HTTP协议(hypertext  transfer protocol) : 超文本传输协议 ,是面向应用层的协议

                     

             TCP/IP  四层模型

                   1 . 应用层                 HTTP

                   2. 传输层                TCP            UDP

                  3.  网际层                   IP

                  4.网络接口层              LAN     WAN

    ---------------------- -------------------   ---------------------------    ------------------------------------------

          

                学习web的根本是   http 协议的5大主要特点

     1. 遵循   请求/响应 模型  :  客户端/服务器的  请求/响应模式        (这是最根本的特点)

    2. 无连接     客户端有请求 ,服务端才会有响应 , 没有请求就没有响应 , (有别于其他的响应的模型) , 服务端在一次连接

     响应结束过后, 会立即断开连接 ,

    3. 无状态 :  http协议对事务处理 没有记忆能力 ,  不会受之前的任何状态的影响(结果是响应速度会提高) , 但是没有记忆能力,在特殊的情况下

    (之后的请求,需要之前的信息时) 传送的数据量会增大

    4. 简单快速 :客户端想服务器请求服务时 ,只需要传送请求的method(get  post) 8种方法  和 请求的路径

    5.灵活 :http协议允许传输 任意类型的数据对象

    http 定义事物处理的流程

    1.连接

    2.请求  

                           请求由3部分组成

                                       1. 请求行   包括  : 1 http方法(常用 get  post)  2 请求的URL 连接地址   3 , http版本 

                                      2 消息报头

                                      3 请求正文

               

    3.响应

                     响应由3部分组成

                          1.状态行    包括 : 1 http版本  2 响应码   3 响应的描述 

                        2.消息报头

                        3.响应正文

    4.断开连接

    -----------------------------           ----------------------------   -------------------------------------------

      WEB开发的指标   :1 高并发  2.快速响应

    动态页面web技术

    基于java   servlet/JSP 技术 ( java server pages)

    servlet 的主要任务是响应请求

    WEB容器(直接拿来用)

    web容器负责管理和运行servlet

    web容器对servlet的支持包括

                1. 通讯支持(信息从哪里来 ?        本质就是完成数据的响应和请求 , 这就是通信) :

                    将请求和响应信息封装成请求和响应对象 

               2.对servlet 生命周期的管理(加载    初始化    服务(这里就是响应请求)     销毁    卸载)

                 注意: 在正常情况下servlet只会初始化一次 ,并且处理服务会调用多次 ,销毁也只会调用一次

                  但是servlet长时间不用 , 初始化和销毁可能进行多次

               3.多线程支持

             4. jsp支持

              5.处理安全性

     ------------------------------------------           ---------------------------------------------------

    什么是servlet

      servlet 是运行在web容器中 , 按照其自身的规范编写的java应用程序

       1 servlet 是用java 语言编写的  , 是一个java类 , 因此servlet遵守所有的java语言规范,

         并且他可以调用一般java可以调用的JDK类库

       2. servlet是在web容器中运行 ,  他编译后的.class文件被服务器调用和执行 , web服务器使用

          该class文件去处理浏览器请求 , 并将处理的结果返回个客户端

       3.由于servlet  特殊的应用特点 , 他有自身特殊的规则 , 一般来说必须调用java servlet API  ,

       必须是对特定的类或接口的继承和实现 , ,并且必须从写特定的方法,去处理客户端的请求

     ----------------------------------------------   ----------------------------------------------------------

    servlet 基本配置

     首先 : 要使用servlet 程序 , 就必须要在web.xml中进行配置

       1 定义servlet 本身

        
    <servlet>  
        <servlet-name>MyServlet</servlet-name>  
        <servlet-class>com.Servlet.MyServlet</servlet-class>  
    </servlet>  
         

    2 .截取请求
    <servlet-mapping>  
        <servlet-name>MyServlet</servlet-name>  
        <url-pattern>/Servlet.do</url-pattern>  
    </servlet-mapping>  

    Servlet的配置包括两部分:
    1、<servlet>配置Servlet的名字和完整类路径:
    servlet-name是自定义的,就是给Servlet取个名字。
    servlet-class是Servlet完整的类 的全路径,就是从一开始的包一直“.”到该Servlet。
    2、<servlet-mapping>是用来截获请求的,包括servlet-name和url-pattern。
    servlet-name跟<servlet>中的servlet-name是对应的,两个servlet-name一定要一致,否则会找不到对应的Servlet。
    url-pattern是截获请求的规则,当表单提交的时候,会根据特定的规则调用相对应的Servlet。下面会具体阐述。
    url-pattern大致分为以下几种方式:
    1、完全匹配
     如:<url-pattern>/servlet/MyServlet.do</url-pattern>
    2、目录匹配
    如:<url-pattern>/servlet/*</url-pattern>

    3、扩展名匹配
    如:<url-pattern>*.do</url-pattern>
    在web.xml文件中,以下语法用于定义映射:

     l. 以”/'开头和以”/*”结尾的是用来做路径映射的。 
    2. 以前缀”*.”开头的是用来做扩展映射的。 
    3. “/” 是用来定义default servlet映射的。 
    4. 剩下的都是用来定义详细映射的。比如: /aa/bb/cc.action

    容器查找规则:
    1、容器会首先查找完全匹配,如果找不到,再查找目录匹配,如果也找不到,就查找扩展名匹配。
    2、如果一个请求匹配多个“目录匹配”,容器会选择最长的匹配。
    例如:servletA的url-pattern为/test/*,而servletB的url-pattern为/test/b/*,此 时访问http://localhost/test/b时,容器会选择路径最长的servlet来匹配,也就是这里的servletB。
    注意:”/*.action”这样一个看起来很正常的匹配会错。因为这个匹配即属于路径映射,也属于扩展映射,会导致容器无法判断。

             

          

  • 相关阅读:
    《剑指offer》面试题7—用两个栈实现队列
    《剑指offer》面试题17—合并两个排序链表
    《剑指offer》面试题16—反转链表
    《剑指offer》面试题15—输出链表中倒数第n个结点
    《剑指offer》面试题13—O(1)时间删除链表结点
    《剑指offer》面试题5—从尾到头打印链表
    C++虚继承作用
    C++多态性:虚函数的调用原理
    《剑指offer面试题4》替换空格——实现函数把字符串中每个空格替换成“%20”
    《剑指offer》面试题1:为类CMyString添加赋值运算符函数——C++拷贝构造函数与赋值函数
  • 原文地址:https://www.cnblogs.com/weilin/p/5578962.html
Copyright © 2020-2023  润新知