web概念

  1. 软件架构

    C/S:客户端/服务器端

    B/s:浏览器/服务器端

  2. 资源分类

    • 静态资源

      所有用户访问后得到的结果是一样的,即被称为静态资源,比如html、css、javascript

    • 动态资源

      每个用户访问后得到的结果是不一样的,被称为动态资源。动态资源访问后需要转换为静态资源返回给浏览器端。比如:servlet、jsp、asp

  3. 网络通信三要素

    • IP

      电子设备在网络中的唯一标识

    • 端口

      应用程序在计算机中的唯一标识

    • 网络协议

      规定了数据传输的规则

      tcp:安全协议,三次握手。HTTP、FTP、SMTP、POP3

      udp:不安全协议,速度快。DHCP、DNS、RIP、SNTP

web服务器软件

  1. 服务器

    安装了服务器软件的计算机

  2. 服务器软件

    接受用户请求、处理用户请求、做出响应

  3. web服务器软件

    接受用户请求、处理用户请求、做出响应。在web服务器软件中,可以部署web项目,让用户通过浏览器来访问这些项目。

    Tomcat就是一种web服务器软件。

Tomcat使用

  1. 部署项目

    • 直接放在webapps目录下即可,访问的时候文件夹/文件名

    • 简化部署,将项目打包成一个war包,将war包放在webapps目录下,war包会自动解压缩,访问方式同上

    • 配置conf/server.xml文件,可以将项目放在任意目录下

      1
      2
      	在<Host>标签体中配置
      <Context docBase="D:\hello" path="/hehe" />

      docBase:项目存放的路径

      path:虚拟目录

    • 热部署方式(推荐)

      在conf/Catalina/localhost创建一个name.xml文件

      1
      <Context docBase="D:\hello" />

      虚拟目录就是name

java动态项目

在这里插入图片描述

WEB-INF目录

–web.xml 核心配置文件

–classes目录 放置字节码文件的目录

–lib目录 放置依赖的jar包

IDEA集成Tomcat

在这里插入图片描述

servlet(server applet)

  1. 概念

    运行在服务端的小程序

    本质上是一个接口,定义了java类被浏览器访问到的规则

  2. 快速入门

    • 创建一个javaEE项目

    • 定义一个类实现servlet接口

    • 实现抽象方法

    • 配置servlet

      在web.xml文件中配置

      1
      2
      3
      4
      5
      6
      7
      8
      <servlet>
      <servlet-name>demo1</servlet-name>
      <servlet-class>cn.itcast.web.servlet.ServletDemo1</servlet-class>
      </servlet>
      <servlet-mapping>
      <servlet-name>demo1</servlet-name>
      <url-pattern>/demo1</url-pattern>
      </servlet-mapping>
  3. 执行原理

    • 服务器解析浏览器输入的路径,解析URL路径,获取servlet资源路径
    • 查找web.xml,看是否有对应的中的内容
    • 如果有,再找到配置文件中对应的servlet的全类名,将该类字节码对象加载进内存,并创建字节码对象
    • 调用其方法
  4. servlet3.0支持注解配置

    1
    @WebServlet("/requestDemo2")

IDEA与tomcat配置

  1. IDEA会为每一个tomcat部署的项目单独建立一个配置文件。查看控制台的log:

    1
    Using CATALINA_BASE:   "C:\Users\fqy\.IntelliJIdea2018.1\system\tomcat\_itcast"
  2. 工作空间项目 和 tomcat部署的web项目

    • tomcat真正访问的是“tomcat部署的web项目”,”tomcat部署的web项目”对应着”工作空间项目” 的web目录下的所有资源
    • WEB-INF目录下的资源不能被浏览器直接访问。