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里面的参考文档

相关推荐
六毛的毛24 分钟前
Springboot开发常见注解一览
java·spring boot·后端
程序漫游人37 分钟前
centos8.5安装jdk21详细安装教程
java·linux
大苏打seven38 分钟前
Docker学习笔记:Docker网络
笔记·学习·docker
超级码.里奥.农1 小时前
零基础 “入坑” Java--- 七、数组(二)
java·开发语言
hqxstudying1 小时前
Java创建型模式---单例模式
java·数据结构·设计模式·代码规范
挺菜的2 小时前
【算法刷题记录(简单题)002】字符串字符匹配(java代码实现)
java·开发语言·算法
A__tao2 小时前
一键将 SQL 转为 Java 实体类,全面支持 MySQL / PostgreSQL / Oracle!
java·sql·mysql
一只叫煤球的猫2 小时前
真实事故复盘:Redis分布式锁居然失效了?公司十年老程序员踩的坑
java·redis·后端
猴哥源码2 小时前
基于Java+SpringBoot的农事管理系统
java·spring boot
面朝大海,春不暖,花不开2 小时前
Java网络编程:TCP/UDP套接字通信详解
java·网络·tcp/ip