1.web相关概念(了解)

1. 软件架构
    1. C/S:客户端/服务器端
    2. B/S:浏览器/服务器端

2. 资源分类
    1. 静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源.静态资源可以直接被浏览器解析
        * 如: html,css,JavaScript
    2. 动态资源:每个用户访问相同资源后,得到的结果可能不一样。称为动态资源。动态资源被访问后,需要先转换为静态资源,在返回给浏览器
        * 如:servlet/jsp,php,asp....
3. 网络通信三要素
    1. IP:电子设备(计算机)在网络中的唯一标识。
    2. 端口:应用程序在计算机中的唯一标识。 0~65536
    3. 传输协议:规定了数据传输的规则
        1. 基础协议:
            1. tcp:安全协议,三次握手。 速度稍慢
            2. udp:不安全协议。 速度快

3.项目的3种发布方式

--  3种发布方式

1. 直接将项目放到webapps目录下即可。(掌握这个就可以了)
    * /hello:项目的访问路径-->虚拟目录
    * 简化部署:将项目打成一个war包,再将war包放置到webapps目录下。
        * war包会自动解压缩
2. 配置conf/server.xml文件的<Host>标签体中配置
    <Context docBase="D:\hello" path="/hehe" />
    * docBase:项目存放的路径
    * path:虚拟目录,浏览器中访问项目的项目名
3. 在conf\Catalina\localhost创建任意名称的xml文件。在文件中编写:
    <Context docBase="D:\hello" />
    * 虚拟目录:xml文件的名称,不带后缀名。
    说明:idea编辑器采用的是该方式

复习day02——20200310

Servlet概述以及实现思路(重点1)

  • Servlet的概念和作用

    servlet 是运行在 Web 服务器中的小型 Java 程序,本质是一个接口。servlet 通常通过 HTTP(超文本传输协议)接收和响应来自 Web 客户端的请求。

  • 1.定义一个类实现Servlet接口,重写抽象方法;
    public class ServletDemo1 implements Servlet{
        
    }
    2.配置这个Servlet
        2.1 在web.xml中配置Servlet(了解)
            <!--配置servlet的类信息-->
        <servlet>
            <!--Servlet的名称-->
            <servlet-name>ServletDemo1</servlet-name>
            <!--servlet的全类名-->
            <servlet-class>com.itheima.web.servlet.ServletDemo1</servlet-class>
        </servlet>
        <!--配置servlet的映射信息,也就是访问路径和servlet类的对应关系-->
        <servlet-mapping>
            <!--Servlet的名称,和上面保持一致-->
            <servlet-name>ServletDemo1</servlet-name>
            <!--Servlet的访问路径-->
            <url-pattern>/hello</url-pattern>
        </servlet-mapping>
        2.2 使用注解配置Servlet(吐血推荐)
        //当注解的参数有且仅有一个,而且参数名叫value时,value可以省略不写
        @WebServlet("/demo1")
            public class ServletDemo1 implements Servlet{}

  • Servlet生命周期(了解)

  • 思路:三个方法分别是什么时候被调用的?调用几次?作用分别是什么?

  •     当我们第一次访问Servlet时,服务器会创建Servlet对象,调用init()方法初始化,该方法只调用一次,可以用来加载配置文件;每当我们访问Servelt时,service()方法都会被调用,访问一次就调用一次,用来接收客户端请求以及对客户端作出响应;服务器正常关闭的时候销毁Servlet对象,destory()方法会被调用,调用一次,一般在该方法中释放资源;
  • 思路:三个方法分别是什么时候被调用的?调用几次?作用分别是什么?
        当我们第一次访问Servlet时,服务器会创建Servlet对象,调用init()方法初始化,该方法只调用一次,可以用来加载配置文件;每当我们访问Servelt时,service()方法都会被调用,访问一次就调用一次,用来接收客户端请求以及对客户端作出响应;服务器正常关闭的时候销毁Servlet对象,destory()方法会被调用,调用一次,一般在该方法中释放资源;
  • 思路:三个方法分别是什么时候被调用的?调用几次?作用分别是什么?
        当我们第一次访问Servlet时,服务器会创建Servlet对象,调用init()方法初始化,该方法只调用一次,可以用来加载配置文件;每当我们访问Servelt时,service()方法都会被调用,访问一次就调用一次,用来接收客户端请求以及对客户端作出响应;服务器正常关闭的时候销毁Servlet对象,destory()方法会被调用,调用一次,一般在该方法中释放资源;
  • 总结

    1、web项目的三种发布方式
        1.直接将项目复制到webapps目录中,开发中是使用专业的工具(maven)打成war包,将war放在webapps目录中,启动服务器即可。
    2、动态web项目的目录结构:
        -- 项目的跟目录 
            -- WEB-INF目录
                -- lib目录:存放jar包,不能叫libs
                -- classes目录:存放src中编译之后的class文件
                -- web.xml文件:项目的配置文件
    3、将tomcat集成到idea中,并创建动态web项目,将动态web项目发布到tomcat中(重点1)
        3.1 将tomcat集成到idea中
        3.2 创建动态web项目
        3.3 项目创建好了之后会自动发布到tomcat中,我们只需要启动tomcat就行了
    4、创建Servlet 的实现步骤(重点2,后期创建Servlet会更简单)
        4.1 创建一个类实现Servlet接口,重写抽象方法
        4.2 在web.xml中配置Servlet或者使用注解配置Servlet。
        例如:
        @WebServlet("/demo2")  //参数为servlet的访问路径。在注解中,如果只有一个参数,并且名称叫value,那么参数名value可以省略不写。
    public class ServletDemo2 implements Servlet {...}
    5、Servlet的生命周期:什么时候调用,干什么用,调用几次?(能够描述)
        当我们第一次访问Servlet时,服务器创建Servlet对象,调用init方法,可以用来初始化数据,只调用一次。每次访问Servlet时都会调用service方法,用来接收客户端请求以及对客户端浏览器作出响应,可以调用多次。当服务器正常关闭时,会调用destroy方法,然后销毁Servlet对象,可以用来释放资源,也只调用一次。
        如果想启动服务器时就创建Servlet对象,那么可以配置启动时加载。
        在web.xml的servlet标签中:
                    <!--配置启动时加载-->
            <load-on-startup>2</load-on-startup>
      注解配置
      @WebServlet(value = "/demo2",loadOnStartup = 2)
    6、手动发布web项目(重点3)
    7、注意:不能在WEB-INF目录中创建页面,浏览器无法访问到。80端口可以省略不写。idea采用的是方式3发布项目,发布的是out/artifacts中的项目。
    8、Servlet的体系结构
        Servlet接口
                | 实现
        GenericServlet抽象类:定义一般的、与协议无关的 servlet
                | 继承
            HttpServlet抽象类

相关文章: