【JavaWeb学习笔记】6 - Tomcat

项目代码

零、在线文档

Apache Tomcat 8 (8.0.53) - Documentation Index

WEB开发

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

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

静态web资源( 如htmD页面) :指web页面中供人们浏览的数据始终是不变。

动态web资源,比如Servlet、PHP等。

3.静态web资源开发技术

Html、CSS等

4.常用动态web资源开发技术:

Servlet、SpringBoot、 SpringMVC、PHP、ASP.NET等

B/S C/S开发

  1. B: browser(浏览器)

  2. S: Server(服务端)

1.C:Client(客户端)

2.S:Server(服务端)

(1)兼容性因为浏览器的种类很多,发现你写的程序,在某个浏览器会出现问题,其它浏览器正常

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

(3)易用性, BS好于CS,浏览器电脑有

(4)扩展性, BS相对统一, 只需要写Server

一、JavaWeb服务软件

1.介绍

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

2.学习JavaWeb开发,Tomcat本质就是一个Java程序, 但是这个Java程序可以处理来自浏览器的HTTP请求

2.模拟简单的Web服务程序

这里,我们需要使用到Java基础(IO/网络)

java 复制代码
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * @author 银小海
 * @version 1.0
 * @email yinhai14@qq.com
 * 这是我们自己写的web服务 可以返回hello.html给浏览器
 */
public class MyTomcat {
    public static void main(String[] args) throws IOException {
        //1.在9999端口监听
        ServerSocket serverSocket = new ServerSocket(9999 );
        int i = 0;
        //如果serverSocket没有关闭就循环监听反复
        while (!serverSocket.isClosed()) {

            //2.等待客户端连接得到socket
            //http://localhost:9999表示浏览器向localhost(127.0.0.1)表示本机的9999端口发出请求
            System.out.println("程序在这句话" + ++i);
            Socket socket = serverSocket.accept();

            //3.得到输出流
            OutputStream outputStream = socket.getOutputStream();
            // outputStream.write("hello,i am mytomcat".getBytes());

            //4.读取hello.html文件返回即可
            BufferedReader bufferedReader = new BufferedReader(new FileReader("tomcat/src/hello.html"));
            String buf = "";
            while((buf = bufferedReader.readLine() )!= null){
                outputStream.write(buf.getBytes());
            }
            outputStream.close();
            socket.close();
        }
        serverSocket.close();
        //如果不使用while循环 查询当把信息返回去之后就马上关闭了 所以不能这么干
    }
}

使用上述传输时,出现以下问题

当前无法使用此页面

localhost 发送了无效的响应。qq浏览器 谷歌浏览器 edge都出现该问题,均能链接到程序但是无法显示

localhost:8080 localhost:9999均尝试了都不太行 确实能连接到 但是就是无法访问,应该是某个安全校验问题吧,使用firefox即可解决该问题

3.常用的JavaWeb服务软件

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

  2. Jboss: 是一个遵从JavaEE规范的、它支持所有的JavaEE规范(免费)。

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

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

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

二、Tomcat的基本介绍

1.Tomcat下载安装

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

2.输入http:/ /localhost:8080/,显示如下界面代表安装成功

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

4.也可以在bin目录下使用catalinna run启动

5.关闭最好是使用shutdown. bat

2.启动故障排除

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

  1. JAVA_ HOME 必须全大写

  2. JAVA_ HOME 中间必须是下划线

  3. JAVA_ HOME配置的路径只需要配置到jdk的安装目录即可。不需要带上bin目录

5.端口8080被占用[查看端口netstat -anb]

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

7.配置JAVA_ HOME环境变量

3.目录结构

4.Tomcat服务中部署WEB应用

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

5.浏览器访问web服务器文件UML时序图

6.修改Tomcat端口

三、IDEA开发JavaWeb工程

1.开发javaweb工程 & 配置TomCat启动项目

1.需要:使用IDEA开发开发JavaWeb工程fishWeb,并将网页部署到fishWeb工程,看老师演示

配置完成后如何配置本地tomcat

选择Tomcat的解压位置

热加载

记得改名

点击绿色的运行执行

在浏览器输入该URL即可访问到Tomcat下的该文件

2.注意事项

(1) on update action :表示当我们更新操作是, Tomcat会自动更新类和资源(当jsp/html文件修改时可以生效)

(2) on frame deactivation :表示IDEA失去焦点(比如最小化),也会导致jsp/html发生更新, 但是java修改了,还是需要redeploy

2.端口修改

server.xml

  1. out目录是什么

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

四、课后作业

注意指定编码格式

注意是放在web包下 src是用来放java文件的

多看该图

相关推荐
金星娃儿7 分钟前
MATLAB基础知识笔记——(矩阵的运算)
笔记·matlab·矩阵
一只特立独行的程序猿9 分钟前
关于GCC内联汇编(也可以叫内嵌汇编)的简单学习
汇编·学习·gcc
虾球xz15 分钟前
游戏引擎学习第10天
学习·游戏引擎
Chef_Chen18 分钟前
从0开始学习机器学习--Day25--SVM作业
学习·机器学习·支持向量机
L_cl25 分钟前
Python学习从0到1 day28 Python 高阶技巧 ⑧ 递归
学习
vortex543 分钟前
Vim 编辑器学习笔记
学习·编辑器·vim
源于花海1 小时前
论文学习(四) | 基于数据驱动的锂离子电池健康状态估计和剩余使用寿命预测
论文阅读·人工智能·学习·论文笔记
心怀梦想的咸鱼1 小时前
Ue5 umg学习(一)
学习·ue5
楚疏笃1 小时前
鸿蒙学习生态应用开发能力全景图-开发者支持平台(5)
学习·华为·harmonyos
4v1d1 小时前
边缘计算的学习
人工智能·学习·边缘计算