Tomcat笔记+源码

Tomcat

在这里插入图片描述

1、BS开发

B:Browser(浏览器,种类太多 IE,chrome,edge等)

S:Server(服务端,要考虑很多)

解读

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

在这里插入图片描述

2、CS开发

C:Client(客户端)

S:Server(服务端)

在这里插入图片描述

3、JavaWeb服务软件

(1)介绍

在这里插入图片描述

(2)手写简单的Web服务程序

在这里插入图片描述

创建一个hello.html文件:

hello, i am a web server

创建一个MyTomcat.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 D
 * @version 1.0
 * @project Tomcat
 * @description 这是我们自己写的一个web服务,可以返回hello.html给浏览器
 * @date 2024/6/6 19:56:50
 */
public class MyTomcat {
    public static void main(String[] args) throws IOException {
        //1、在9999端口监听
        ServerSocket serverSocket = new ServerSocket(9999);
        while (!serverSocket.isClosed()) {
            System.out.println("=====我的web服务在9999号端口监听");

            //2、等待浏览器/客户端连接,得到socket
            //该socket用于通信
            Socket socket = serverSocket.accept();

            //3、通过socket得到输出流
            OutputStream outputStream = socket.getOutputStream();
            //返回给浏览器/客户端


            //4、读取hello.html文件返回即可
            //得到文件输入流(字符输入流)和src\\hello.html
            BufferedReader bufferedReader = new BufferedReader(new FileReader("src\\hello.html"));
            String buf="";
            //循环读取
            while((buf=bufferedReader.readLine())!=null){
                //这里根据浏览器不同,有的需要http头才能显示出来,有的则不需要。根据浏览器自行添加。
                String header = "HTTP/1.1 200 OK  \n" +
                        "Content-Type: text/plain; charset=UTF-8  \n" +
                        "Content-Length: " + buf.length() + "  \n" +
                        "Server: MyCustomServer/1.0  \n" +
                        "Date: Wed, 21 Oct 2023 07:28:00 GMT  \n\n";
                outputStream.write((header + buf).getBytes());
            }

            //关闭资源
            outputStream.close();
            socket.close();
        }
        serverSocket.close();
    }
}

进行测试在浏览器输入http://localhost:9999

在这里插入图片描述

(3)常用的JavaWeb服务软件

  1. Tomcat 应用最广(免费)
  2. Jboss (免费)
  3. GlassFish
  4. Resin
  5. WebLogic[很猛,大厂使用] (免费)

(4)Tomcat

1、Tomcat的下载和安装

Tomcat 官方站点:http://tomcat.apache.org/

下载对应版本解压到安装目录即可,这里我会将自己下载的资源分享给大家。

2、Tomcat启动
  1. 双击bin目录下的startup.bat文件
  2. 输入http://localhost:8080,显示如下界面代表安装成功,默认在8080端口
  3. 注意,启动了startup.bat文件就不要关闭窗口,关闭了Tomcat服务就停止了。

在这里插入图片描述

在这里插入图片描述

小技巧:在开发中,我们可以使用netstat -anb(管理员权限)查看哪些端口在监听

3、Tomcat启动出现故障原因

没有配置好JAVA_HOME环境变量!!!!!!

4、Tomcat目录结构

在这里插入图片描述

  1. server.xml 用于配置tomcat的基本设置(启动端口,关闭端口,主机名)
  2. wex.xml 用于指定tomcat运行时配置(比如servlet等…)
  3. webapps 目录是存放web应用,就是网站
5、catalina启动tomcat
  1. 进入到tomcat的bin目录下

在这里插入图片描述

  1. 执行命令:catalina run

在这里插入图片描述

6、停止tomcat
  1. 点击tomcat服务器窗口,直接点击关闭按钮
  2. 进入tomcat的bin目录下的shutdown.bat双击,就可以停止tomcat服务器(推荐)
7、修改tomcat服务端口

在tomcat目录下的conf目录,修改server.xml配置文件

在这里插入图片描述

默认端口8080,端口号范围1-65535,建议修改端口号>1024,最好在10000以上。修改后,重启tomcat生效

8、tomcat服务中部署WEB应用

在这里插入图片描述

JavaWEB程序/应用/工程目录结构

在这里插入图片描述

部署方式一:将web工程的目录拷贝到tomcat的webapps目录下
  1. news Web工程(目前都是静态资源html,图片)
  2. 将该news目录/文件夹 拷贝到tomcat的webapps目录下
  3. 浏览器输入:http://ip[域名]:port/news/子目录…/文件名
部署方式二:通过配置文件来部署

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

在这里插入图片描述

然后访问web工程:http://ip[域名]:port/hsp/index.html 就是表示访问D:\album目录下的index.html

ROOT的工程的访问
  1. 在浏览器地址栏中输入访问地址如下:http://ip[域名]:port,没有web工程/应用名时,默认访问的是ROOT工程
  2. 在浏览器地址栏中输入的访问地址如下:http://ip[域名]:port/工程名/,没有资源名,默认访问index,jsp页面
9、浏览器访问web服务过程详解

步骤:

  1. 浏览器先解析出主机名(例如www.Ghost-D.com)
  2. 浏览器到本机的Host文件去查询主机名对应的IP(Host文件在C:\Windows\System32\drivers\etc目录下);如果没有在Host文件下找到域名的IP,就到外网的DNS查找,如果在DNS,也找不到,就会提示额,找不到网页。
  3. 浏览器通过查询到的IP,向tomcat发出http请求
  4. tomcat解析出web应用
  5. tomcat解析出资源test.html
  6. tomcat获取test.html
  7. tomcat将获取到的结果以http响应方式返回
  8. 浏览器将解析返回的结果并显示

在这里插入图片描述

我会把流程图资源上传进去

4、IDEA开发JavaWeb工程

步骤:

1、先创建一个java项目

2、创建完成后右击项目选择添加框架支持,如果没有就点击搜索

在这里插入图片描述

3、选择Web应用程序

在这里插入图片描述

将fish文件复制到web目录下

在这里插入图片描述

4、点击右上角的编辑配置

在这里插入图片描述

点击下图选中的

在这里插入图片描述

点击部署,添加工件

在这里插入图片描述

点击服务器,按下图配置,点击应用并确定

在这里插入图片描述

运行tomcat,可以发现运行成功了。

在这里插入图片描述

输入以下网址查看刚刚添加的fish文件

[鲸鱼] (http://localhost:8080/fishWeb/fish/index.html)

在这里插入图片描述

注意事项和细节:

1、热加载选项说明

在这里插入图片描述

  • 执行"更新"操作(on update action):表示当我们更新操作时,Tomcat会自动更新类和资源(当jsp/html文件修改时,可以生效,但是如果你修改的是java文件,需要重新部署(Redepoly)才会生效)
  • 切换出IDE时(on frame deactivation ):表示IDEA数去焦点(比如最小化),也会导致jsp/html发生更新,但是java修改了还是需要重新部署(Redepoly)才会生效。
2、端口修改

在这里插入图片描述

这里修改的端口,指挥影响到当前的项目,而不是去修改server.xml

4、out目录是什么

当Tomcat启动时,会生成out目录,该目录就是原项目的映射,我们浏览器访问的资源是out目录

5、当我们从外部拷贝资源到项目(图片,文件,js,css等),如果出现404不能访问错误,解决方式rebuild project->重启Tomcat

在这里插入图片描述

在这里插入图片描述

课后练习:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值