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”这样一个看起来很正常的匹配会错。因为这个匹配即属于路径映射,也属于扩展映射,会导致容器无法判断。

         

      

原文地址:https://www.cnblogs.com/weilin/p/5578962.html