Servlet入门和HTTP。

Servlet:html

一、概念:Servlet:server applet  ,运行在服务器端的小程序。web

       浏览器在访问服务器的动态资源时,访问的是具备逻辑性的Java代码(Java类),而这里的Java类依 赖于服务器才能运行(tomcat执行它),而这些Java类须要遵循一些规则,tomcat才能识别它并执行它,而这些规则就是Servlet。小程序

        * Servlet就是一个接口,定义了Java类能被浏览器访问到(tomcat识别)的规则。浏览器

二、快速入门:tomcat

  一、建立JavaEE项目。安全

  二、定义一个类,实现Servlet接口。服务器

  三、实现接口中的抽象方法。app

  四、配置Servlet:url

<servlet>
        <servlet-name>demo1</servlet-name>
        <servlet-class>servlet.ServletDemo1</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>demo1</servlet-name>
        <url-pattern>/demo1</url-pattern>
    </servlet-mapping>

三、Servlet执行原理。spa

  一、http://localhost:8080/Tomcat/demo1    浏览器访问服务器,并试图获取资源。

  二、查找web.xml,看<url-pattern>里有没有demo1

  三、若是有,找到对应<servlet-class>全类名。

  四、tomcat将该类的字节码文件加载进内存,并建立其对象。

  五、调用该对象的方法。

四、Servlet中的生命周期。

  一、被建立:执行 init 方法,只执行一次。

    * Servlet何时被建立?

      * 默认,第一次访问时,Servlet被建立。

      * 能够配置Servlet的建立时机。

         一、第一次被访问时建立:<load-on-startup>的值为负数。

          二、服务器启动时建立:值为0或正数。

    * Servlet的 init 方法,只执行一次,说明一个Servlet在内存中只存在一个对象,Servlet是单例的。因此在多个用户访问时,可能存在线程安全问题。

      * 解决:尽可能不要在Servlet中定义成员变量。即便定义了,不要对其修改值。

  二、提供服务:执行service 方法,执行屡次。

    * 每次访问Servlet时,service方法被调用一次

  三、被销毁:执行 destroy 方法,只执行一次。

    * 服务器关闭时(正常关闭),在Servlet销毁以前被执行,通常用于释放资源。

四、Servlet3.0.

  好处:支持注解配置。能够不用web.xml。

  步骤:一、建立JavaEE项目,选Servlet3.0及以上版本,可不建立web.xml

     二、定义类实现接口,重写方法。

     三、类上使用@WebServlet 注解来配置:@WebServlet("资源路径")。

五、IDEA和tomcat的相关配置。

  一、IDEA会为每一个tomcat部署的项目单独创建一份配置文件。

    * 查看控制台的 Using CATALINA_BASE:

  二、项目有两个地方存储:工做空间项目  和  tomcat部署的web项目。

    * tomcat真正访问的是 “tomcat部署的web项目“ ,该项目对应着工做空间项目的web目录下的全部资源。

  三、tomcat断点调试:点小虫子来启动debug。

六、Servlet体系结构。

  Servlet接口 <---GenericServlet 抽象类 <-- HttpServlet 抽象类。

  *GenericServlet:将Servlet接口的其余方法做了默认实现,只将service()方法做为抽象方法,因此之后定义Servlet类时,能够继承该抽象类,实现service()方法便可。

  *HttpServlet :对http协议的一种封装,简化操做(判断请求类型)   经常使用

    实现:一、定义类继承HttpServlet  二、复写doGet/doPost 方法。

七、Servlet相关配置。

  一、urlPartten:Servlet访问路径。

    * 一个Servlet能够定义多个访问路径。

    * 路径定义规则:一、/XXX  二、/xxx/xxx 三、*.do

八、HTTP。

  一、概念:Hyper Text Transfer Protocol  超文本传输协议。

    传输协议:定义了客户端和服务器通讯时,发送数据的格式。

    * 特色:一、基于TCP/IP的高级协议。

        二、默认端口号:80

        三、基于请求/响应模型的: 一次请求对应一次响应。

        四、无状态的 :每次请求之间相互独立,不能交互数据。

  二、请求消息数据格式。

    一、请求行:请求方式  请求url  请求协议/版本 : GET /login.html HTTP/1.1

    二、请求头:浏览器告诉服务器一些信息。 请求名称:请求值

      常见的请求头:一、User-Agent:告诉服务器浏览器的版本信息。

             二、Referer:告诉服务器,当前请求从哪里来。做用:防盗链、统计。

    三、请求空行:空行,用来分隔。

    四、请求体(正文):封装POST请求消息的请求参数的。

相关文章
相关标签/搜索