首页 > 其他分享 >day09-Tomcat01

day09-Tomcat01

时间:2022-11-04 23:11:06浏览次数:118  
标签:web day09 浏览器 Tomcat Tomcat01 端口 html 服务器

Tomcat01

1.WEB开发介绍

  1. WEB,在英文中WEB表示网/网络资源,它用于表示WEB服务器(主机)供浏览器访问的资源
  2. WEB服务器(主机)上供外界访问的Web资源为:
    • 静态web资源(如html页面):指web页面中供人们浏览的数据始终是不变的
    • 动态web资源,比如Servlet、PHP等
  3. 静态web资源开发技术:HTML,CSS,JS等
  4. 常用动态web资源开发技术:Servlet,SpringBoot,SpringMVC,PHP,ASP.NET等

BS开发和CS开发:

image-20221104181430528

1.1BS开发

B:browser(浏览器)

S:Server(服务端)

对BS的解读:

  1. 兼容性:

    因为浏览器的种类很多,编写的程序可能在一个浏览器上面是正常的,在另一个浏览器上面就会出现问题

  2. 安全性:

    通常情况下,BS的安全性不如CS好控制

  3. 易用性:BS好于CS,浏览器电脑有

  4. 扩展性:BS相对统一,只需要写Server端

image-20221104181549144

1.2CS开发

C:Client(客户端)

S:Server(服务端)

image-20221104181529925

2.JavaWeb服务软件

2.1JavaWeb服务器软件介绍

学习JavaWeb开发,需要先安装JavaWeb服务器软件(我们把安装了JavaWeb服务软件的主机称为Web服务器/JavaWeb服务器),在web服务器中开发相应的web资源

思考:学习JavaWeb开发,为什么必须要先安装WEB服务软件?

答:需要安装,理解Tomcat本质就是一个java程序,只是这个程序可以处理来自浏览器的HTTP请求,和 Javase基础的网络服务是一样的


使用netstat -anb指令打开运行端口,可以看到tomcat的监听端口的监控程序是java.exe,这说明Tomcat本质就是一个java程序,它并没有脱离底层的jdk。在启动java程序的时候启动了jre的运行环境,所以它在后台显示的监控程序是java.exe,并不是想象中的Tomcat.exe.

image-20221104215537611

2.2手写简单的Web服务程序

Java基础-IO/网络编程

image-20221104183644768 image-20221104200401666

hello.html:

Helloooooo! I am a web server!

MyTomcat.java:

package tomcat_demo;

import java.io.*;
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);

        //如果serverSocket没有关闭,就等待连接,不停地等待
        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/tomcat_demo/hello.html"));
            String buf = "";
            //循环读取hello.html
            while ((buf = bufferedReader.readLine()) != null) {
                outputStream.write(buf.getBytes());//如果想展示中文字符,可以使用字符流
            }

            //4.关闭流
            bufferedReader.close();
            outputStream.close();
            socket.close();
        }
        serverSocket.close();
    }
}

http://localhost:9999/表示浏览器向localhost(127.0.0.1即本机)的9999端口发出请求

image-20221104200306142

上述的整个过程是:服务器MyTomcat在localhost主机的9999端口监听,浏览器向localhost的9999端口发送请求,服务器监听到请求后将hello.html文件的内容读取到内存中,然后通过socket将数据打入数据通道中,浏览器就拿到了数据,并将其展示在页面上

2.3常用的JavaWeb服务软件

  1. Tomcat:由Apache组织提供的一种Web服务器,提供对jsp和Servlet的支持。它是一种轻量级的javaWeb容器(服务器),也是当前应用最广的JavaWeb服务器(免费)

  2. Jboss:是一个遵从JavaEE规范的应用服务器,同时也是免费的

  3. GlassFish:由Oracle公司开发的一款JavaWeb服务器,是一款商业服务器,达到产品级质量(应用很少)

  4. Resin:是CAUCHO公司的产品,是一个非常流行的服务器,对Servlet和jsp提供了良好的支持,性能也比较优良(收费)

  5. WebLogic:是Oracle公司的产品,支持JavaEE 规范,而且不断地完善以适应新的开发需求,适合大型项目(收费,用得不多,适合大公司)

    下面主要理解Tomcat服务器

3.Tomcat

image-20221104202155359

Tomcat官方文档:https://tomcat.apache.org/download-80.cgi

3.1Tomcat下载和安装

  1. Tomcat官方站点:https://tomcat.apache.org

  2. 获取Tomcat安装程序包

    • tar.gz是Linux操作系统下的安装版本
    • zip是Windows系统下的压缩版本
  3. 使用zip包安装Tomcat:找到需要用的Tomcat版本对应的zip压缩包,解压到需要安装的目录即可

  4. 在官网https://tomcat.apache.org/whichversion.html,可以看到Tomcat仍然是支持JSP和EL的

    image-20221104203343404

3.2Tomcat启动

  1. 双击bin目录下的startup.bat文件

    image-20221104203907419
  2. 输入http://localhost:8080/,显示如下界面代表安装成功,默认在8080端口

    image-20221104204111886
  3. 注意不要关闭黑窗口,关闭了,tomcat服务就停止了

在开发中查看哪些端口在监听,可以使用命令:netstat -an

3.3Tomcat启动故障排除

  1. 双击startup.bat文件,如果出现一个小黑窗口然后就没了,原因是没有配置好JAVA_HOME环境变量

    Tomcat本质是一个Java程序,所以要jdk,会去根据Java_HOME使用指定的jdk

    • JAVA_HOME必须全大写

    • JAVA_HOME中间必须是下划线

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

      image-20221104205348129
  2. 端口8080被占用了[查看端口:netstat -anb]

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

3.4Tomcat目录结构

image-20221104211639616
  • conf目录中的server.xml文件用于配置tomcat的基本设置(启动端口,关闭端口,主机名)

  • conf目录中的web.xml文件用于指定tomcat运行时配置(比如Servlet等)

    image-20221104213021778
  • webapps目录是存放web应用的,也就是网站

3.5catalina启动Tomcat

在cmd中切换到Tomcat的bin目录,输入catalina run,回车,即可启动tomcat服务

image-20221104213602049

3.6关闭Tomcat

  1. 点击tomcat服务器窗口,直接点击关闭按钮

    image-20221104213827356
  2. 进入Tomcat的bin目录下的shutdown.bat双击,就可以停止Tomcat服务器(推荐

    image-20221104214937884

    在默认情况下,tomcat服务器在8080端口等待浏览器发送请求;此外还有一个监听端口8009,8009端口可以接收关闭指令shutdown。8009端口监听到关闭指令之后就会按照正常流程去关闭tomcat服务器。这种关闭方式可以正常地被写入日志中。

    image-20221104215145458

3.7Tomcat服务中部署web应用

  • 什么是web应用

    1. WEB应用是多个web资源的集合。简单地说,可以把web应用理解为硬盘上的一个目录,这个目录用于管理多个web资源
    2. Web应用通常也称之为web应用程序,或web工程,通俗地说就是网站
  • WEB应用组成

    一个web应用由多个web资源或其他文件组成,包括html文件,css文件,js文件,动态web页面,java程序,支持jar包,配置文件等。

    开发人员在开发web应用时,要按照规定目录结构存放这些文件。否则,在把web应用交给web服务器管理时,不仅可能会使web应用无法访问,还会导致web服务器启动报错。

  • JavaWeb程序/应用/工程目录结构

    image-20221104222821650
  • 部署方式1:将web工程的目录拷贝到Tomcat的webapps目录下

    1. news Web工程(目前都是静态html,图片)(news为工程名)
    2. 将该news目录拷贝到Tomcat的webapps目录下
    3. 浏览器输入:http://ip[域名]:port/news/子目录.../文件名

image-20221104224034040 image-20221104224108722

  • 部署方式2:通过配置文件来部署(用得不多)

    1. 在Tomcat下的conf目录/Catalina/locathost/下,配置文件,比如hsp.xml

      (即,tomcat通过配置,可以把一个web应用映射到指定的目录,可以解决磁盘空间分配的问题)

      image-20221104224523305
    2. 访问web工程:http://ip[域名]:port/hsp/index.html,就表示访问D:\album目录下的index.html

      image-20221104224538499
  • ROOT工程的访问

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

localhost:8080/test/test.html

其中locathost:8080是你要访问的服务器,test是要访问的网站(web应用),test.html是该网站的资源

标签:web,day09,浏览器,Tomcat,Tomcat01,端口,html,服务器
From: https://www.cnblogs.com/liyuelian/p/16859403.html

相关文章

  • day09 DOM
    DOM的概述DOM是文档对象模型(documentobjectmodel),顾名思义就是用来操作对应的HTML文档的.它是一个遵从文档流的语句,是同步机制的.DOM的分类document是......
  • Python教程Day09-字典
    字典一、应用场景​​思考1​​:如果有多个数据,例如:'Tom','男',20,如何快速存储?答:列表list1=['Tom','男',20]​​思考2​​:如何查找到数据'Tom'?答:查找到下标为0的数据......
  • 《剑指offer》day09
    题目描述思路动态规划+自下而上记录每个元素对应的包含了当前元素的连续和的最大值,最后取一个全局最大的自下而上的话就没有必要保留,一边求一边更新即可递归的话也......
  • day09 常用工具类
    day09常用工具类java.lang.Math数值运算基本数值运算,如初等函数、对数、平方根和三角函数 //最大最小值 Math.max(12,21); Math.min(2,3); //绝对值 doubled=......
  • Day09DOM及节点
    DOM的概述DOM:文档对象模型,操作对应的文档(html文档)DOM遵从文档流,属于同步机制DOM的分类:1.document文档对象(dom操作中的最大对象,表示当前操作的html文档)     ......
  • day09-2视图和用户权限
    视图和用户权限1.视图(view)看一个需求emp表的列信息很多,有些信息是个人重要信息(比如:sal、comm、mgr、hiredate),如果我们希望某个用户只能查询emp表的empno、enamel、job......
  • java_day09
    Java基础Java面向对象三大特性多态即同一个方法可以根据发送对象的不同采用多种不同的行为方式一个对象的实际类型是确定的,但是指向对象的引用类型可以是很多......
  • Python学习路程——Day09
    Python学习路程——Day09文件操作1、文件的概念''' 操作系统为了使用户更好的使用计算机,而创建的一个快捷方式。 双击一个文件,相当于把硬盘的数据资源加载到内存中。......
  • day09-1存储引擎
    存储引擎1.基本介绍基本介绍MySQL的表类型由存储引擎(StorageEngines)决定,主要包括MyISAM、innoDB、Memory等MySQL数据表主要支持六种类型,分别是:CSV,Memory,ARCHIVE......
  • day09 --> 【JavaScript(BOM、DOM事件)】
    DOM简单学习:为了满足案例要求功能:控制HTML文档的内容代码:获取页面标签(/亦叫元素)对象Elementdocument.getElementById("id值");通过元素的id值获取元素对象操作Elemen......