javaweb学习(day05-TomCat)

一、介绍

1****官方文档

地址**: https://tomcat.apache.org/tomcat-8.0-doc/**

2 WEB****开发介绍

2.1 WEB

  • 在英语中 web 表示网/网络资源(页面,图片,css,js)意思,它用于表示 WEB 服务器(主机)供浏览器访问的资源

2.2 Web****资源

WEB 服务器 ( 主机 ) 上供外界访问的 Web 资源分为:

  • 静态 web 资源(如 html 页面):指 web 页面中供人们浏览的数据始终是不变。
  • 动态 web 资源,比如 Servlet(java)、PHP 等。

2.3 静态web资源开发技术

  • Html**、CSS,js等**

2.4 常用动态web资源开发技术

Servlet SpringBoot SpringMVC PHP ASP.NET

3 JavaWeb****开发技术栈图

4 BSCS****开发介绍

4.1 BS****开发

  • B: browser(浏览器, 种类太多 ff, chrome, ie, edge,)
  • S: Server(服务端, 考虑很多)
  • 示意图

BS****的解读:

  • (1) 兼容性 , 因为浏览器的种类很多,发现你写的程序,在某个浏览器会出现问题,其它浏览器正常
  • (2) 安全性, 通常情况下,BS 安全性不如 CS 好控制
  • (3) 易用性, BS 好于 CS, 浏览器电脑有
  • (4) 扩展性, BS 相对统一,只需要写 Server

4.2 CS****开发

  • C: Client(客户端)
  • S: Server(服务端)
  • 示意图

5 JavaWeb****服务软件

5.1 JavaWeb****服务器软件介绍

  • 学习 JavaWeb 开发,需要先安装 JavaWeb 服务软件【我们把安装了 JavaWeb 服务软件 主机称为 Web 服务器/JavaWeb 服务器】,然后在 web 服务器中开发相应的 web 资源。 [Javaweb 服务器,Mysql 服务器]
  • 学习 JavaWeb 开发,为什么必须要先装****WEB 服务软件?
  • 需要安装, 理解 Tomcat 本质就是一个 Java 程序, 但是这个 Java 程序可以处理来自浏 览器的 HTTP 请求, 和我们前面讲的 java 网络

5.2手写简单Web****服务程序

5.2.1 需求
  • 手写MyWebServer.java ,体验一下JavaWeb服务本质【先初步体会,后面还会深入 不急**】****,**
  • 这里,我们需要使用到Java基础**(IO/网络)**
  • http://localhost:9999表示 浏览器向localhost(127.0.0.1)表示本机的9999****端口发出请求

其实就是利用网络编程进行服务器与浏览器的通信

5.2.2 创建hspedu_mytomcatJava应用程序
java 复制代码
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * @author 林然
 * @version 1.0
 * 这是我们自己写的web服务,可以返回hello.html给浏览器
 */
public class MyTomcat {
    public static void main(String[] args) throws IOException {
        //1 在9999端口监听
        ServerSocket serverSocket=new ServerSocket(9999);
        //如果sewrverSocket没有关闭,就等待连接
        while (!serverSocket.isClosed()){
            System.out.println("在我的web服务正在监听9999端口");
            //2 . 等待浏览器/客户端连接,得到socket
            //在该socket用于通信
            Socket socket=serverSocket.accept();
            //3 通过socket得到输出流
            OutputStream outputStream=socket.getOutputStream();
            //4 读取hello.html文件返回即可
            //得到了一个文件输入流【字符输入流】
            BufferedReader bufferedReader = new BufferedReader(new FileReader("src/hello.html"));
            String buf="";
            while ((buf=bufferedReader.readLine())!=null){
                //返回给浏览器/客户端
                outputStream.write(buf.getBytes());
            }

            outputStream.close();
            socket.close();
        }
        serverSocket.close();
    }
}

5.3常用JavaWeb****服务软件

5.3.1****Tomcat
  • 由 Apache 组织提供的一种 Web 服务器,提供对 jsp 和 Servlet 的支持。它 是一种轻量级的 javaWeb 容器(服务器),也是当前应用最广的 JavaWeb 服务器(免费)。
5.3.2 Jboss
  • 是一个遵从 JavaEE 规范的、它支持所有的 JavaEE 规范(免费)
5.3.3 GlassFish
  • 由 Oracle 公司开发的一款 JavaWeb 服务器,是一款商业服务器,达到产品级质量(应用很少)。
5.3.4 Resin
  • 是 CAUCHO 公司的产品,是一个非常流行的服务器,对 servlet 和 JSP 提供了 良好的支持, 性能也比较优良(收费)。
5.3.5 WebLogic**【很猛】**
  • 是 Oracle 公司的产品,支持 JavaEE 规范, 而且不断的完善以适应新的开发要求,适合大型项目(收费,用的不多,适合大公司)

6 Tomcat

6.1 Tomcat****下载和安装

  • 使用 zip 包安装 Tomcat

可以看到 Tomcat 仍然是支持 jsp 和 el,Tomcat 最好的小伙伴是 JSP+EL

6.2 Tomcat****启动

6.3 Tomcat****启动故障排除

  • 双击 startup.bat 文件,出现一个小黑窗口然后就没了,原因是因为没有配置好 JAVA_HOME 环境变量Tomcat 本质是一个 Java 程序,所以要 jdk, 会去根据 JAVA_HOME 使用指定 jdk

  • JAVA_HOME 必须全大写

  • JAVA_HOME 中间必须是下划线

  • JAVA_HOME 配置的路径只需要配置到 jdk 的安装目录即可。不需要带上 bin 目录

  • 端口 8080 被占用 [查看端口 netstat -anb, 使用的非常多]

  • 如果其它服务程序占用了 8080 端口,可以关闭该服务,或者修改 Tomcat 服务的默认

  • 端口 8080 [后面讲]

6.4 Tomcat****目录结构

  • server.xml 用于配置 tomcat 的基本设置(启动端口,关闭端口, 主机名)
  • wex.xml 用于指定 tomcat 运行时配置(比如 servlet 等..)
  • webapps 目录是存放 web 应用,就是网站

6.5 catalina启动Tomcat

6.6停止Tomcat

  • 点击 tomcat 服务器窗口,直接点击的关闭按钮

进入Tomcatbin目录下的shutdown.bat双击,就可以停止Tomcat服务器**(推荐)**

6.7修改Tomcat****服务端口

  • Tomcat 目录下的 conf 目录,修改 server.xml 配置文件


http://localhost , 默 认 是 访 问 80 端 口 , 即 http://localhost 等 价 http://localhost:80

6.8 Tomcat服务中部署WEB****应用

6.8.1 基本概念
  • 什么是Web应用
  • WEb****应用组成

一个 WEB 应用由多个 WEB 资源或其它文件组成,包括 html 文件、 css 文件、 js 文件、动
态 web 页面、 java 程序、支持 jar 包、配置文件等。开发人员在开发 web 应用时,按照
定目录结构 存放这些文件。否则,在把 web 应用交给 web 服务器管理时,不仅可能会使
web 应用无法访问,还会导致 web 服务器启动报错

  • **JavaWeb程序/应用/**工程目录结构
6.8.2 部署方式
  • 部署方式1:将web工程的目录拷贝到Tomcatwebapps目录下
  • 部署方式2:通过配置文件来部署**(只做介绍)**

Tomcat 下的 conf 目录 \Catalina\localhost\ , 配置文件,比如 hsp.xml( 提醒:知道
Tomcat 通过配置,可以把一个 web 应用,映射到指定的目录,可以解决磁盘空间分配

  • 访问web工程**: http://ip[域名]:port/hsp/index.html就表示访问D:\album目录下index.html**
6.8.3 ROOT****的工程的访问
  • 在浏览器地址栏中输入访问地址如下:http://ip[域名]:port,没有Web工程/应用名时,
  • 默认访问的是 ROOT 工程
  • 在浏览器地址栏中输入的访问地址如下: http://ip[域名]:port/工程名/ ,没有资源名,
  • 默认访问 index.jsp 页面

6.9浏览器访问Web****服务过程详解

6.9.1回顾前面的JavaWeb****开发技术栈图
6.9.2浏览器访问web服务器文件UML****时序图

下面,我们对浏览器访问web服务器资源**(html,css,图片,js)做详解,通过一个时序图加强 对这个重要过程的理解,****重要,**核心.

关于具体的Tomcat应用到web项目,可见资料的tomcat里面的参考文档

相关推荐
考虑考虑3 小时前
Jpa使用union all
java·spring boot·后端
用户3721574261353 小时前
Java 实现 Excel 与 TXT 文本高效互转
java
浮游本尊4 小时前
Java学习第22天 - 云原生与容器化
java
渣哥6 小时前
原来 Java 里线程安全集合有这么多种
java
间彧6 小时前
Spring Boot集成Spring Security完整指南
java
间彧7 小时前
Spring Secutiy基本原理及工作流程
java
Java水解8 小时前
JAVA经典面试题附答案(持续更新版)
java·后端·面试
洛小豆10 小时前
在Java中,Integer.parseInt和Integer.valueOf有什么区别
java·后端·面试
前端小张同学10 小时前
服务器上如何搭建jenkins 服务CI/CD😎😎
java·后端
ytadpole10 小时前
Spring Cloud Gateway:一次不规范 URL 引发的路由转发404问题排查
java·后端