Tomcat
官方文档
地址: https://tomcat.apache.org/tomcat-8.0-doc/
WEB 开发介绍
1. WEB,在英语中 web 表示网/网络资源(页面,图片,css,js)意思,
它用于表示 WEB 服务器(主机)供浏览器访问的资源
2. WEB 服务器(主机)上供外界访问的 Web 资源分为:
- 静态 web 资源(如 html 页面):指 web 页面中供人们浏览的数据始终是不变。
- 动态 web 资源,比如 Servlet(java)、PHP 等。
3. 静态 web 资源开发技术
- Html、CSS,js 等
4. 常用动态 web 资源开发技术:
Servlet、SpringBoot、SpringMVC、PHP、ASP.NET 等
JavaWeb 开发技术栈图
BS 与 CS 开发
BS 开发
1. B: browser(浏览器, 种类太多 ff, chrome, ie, edge,)
2. S: Server(服务端, 考虑很多)
3. 示意图
BS 的解读
(1) 兼容性 , 因为浏览器的种类很多,,发现你写的程序,在某个浏览器会出现问题,其它浏览器正常
(2) 安全性, 通常情况下,BS 安全性不如 CS 好控制
(3) 易用性, BS 好于 CS, 浏览器电脑有
(4) 扩展性, BS 相对统一,只需要写 Serve
手写 MyWebServer.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;
/**
* 自己写的一个 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 文件返回即可=> 如何读取文件内容
// 得到文件输入流(字符输入流), 和 src/hello.html
BufferedReader bufferedReader =
new BufferedReader(new FileReader("src/hello.html"));
String buf = "";
// 循环读取 hello.html
while ((buf = bufferedReader.readLine()) != null) {
outputStream.write(buf.getBytes());
}
outputStream.close();
socket.close();
}
serverSocket.close();
}
}
常用 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 目录结构
启动 Tomca
执行命令: catalina run
1. 停止 Tomcat 1. 点击 tomcat 服务器窗口,直接点击的关
2. 进入 Tomcat 的 bin 目录下的 shutdown.bat 双击,就可以停止 Tomcat 服务器(推荐)
修改 Tomcat 服务端
最好在10000以上
Tomcat 服务中部署 WEB 应用
什么是Web应用
WEB应用是多个web资源的集合。简单的说,可以把web应用理解为硬盘上的一个目录,这个目录用于管理多个web资源。
Web应用通常也称之为web应用程序,或web工程,通俗的说 就是网站。
WEb应用组成
一个 WEB 应用由多个 WEB 资源或其它文件组成,包括 html 文件、css 文件、js 文件、动
态web页面、java 程序、支持 jar 包、配置文件等。开发人员在开发 web 应用时,
按照规定目录结构存放这些文件。否则,在把 web 应用交给 web 服务器管理时,不仅可能会使web 应用无法访问,还会导致 web 服务器启动报错
JavaWeb程序/应用/工程目录结构
部署方式1:
将 web 工程的目录拷贝到 Tomcat 的 webapps 目录下
1. news Web工程(目前都是静态资源 html, 图片)
2. 将该news目录/文件夹 拷贝到 Tomcat 的webapps目录下
3. 浏览器输入: http://ip[域名]:port/news/子目录../文件
部署方式2:
通过配置文件来部署(只做介绍)
1.在Tomcat 下的 conf 目录\Catalina\localhost\ 下,配置文件,比如hsp.xml(提醒:知道Tomcat通过配置,可以把一个web应用,映射到指定的目录,可以解决磁盘空间分配的问题.)
2.访问web工程: http://ip[域名]:port/hsp/index.html 就表示访问 D:\album 目录下的 index.html · ROOT 的工程的访问
2.1 在浏览器地址栏中输入访问地址如下:http://ip[域名]:port,没有Web工程/应用名时, 默认访问的是 ROOT工程
2.2 在浏览器地址栏中输入的访问地址如下: http://ip[域名]:port/工程名/ ,没有资源名, 默认访问 index.jsp 页面
浏览器访问 Web 服务过程
回顾前面的 JavaWeb 开发技术
浏览器访问 web 服务器文件 UML 时序图
注意事项和细节
- 热加载选项说明
解读
- on update action : 表示当我们更新操作是, Tomcat 会自动更新类和资源 (当jsp/html文 件修改时,可以生效, 但是如果你修改的 java 文件, 需要 Redepoly 才会生效)
- on frame deactivation : 表示 IDEA 失去焦点(比如最小化), 也会导致 jsp/html 发生更 新 , 但是 java 修改了,还是需要 redeploy
2. 端口修改
这里修改的端口, 只会影响到当前的项目,而不是去修改 server.xml
3. out 目录是什么
当 tomcat 启动时,会生成 out 目录,该目录就是 原项目资源的映射,我们浏览器访问的资源是 out 目录
当我们从外部拷贝资源到项目(图片, 文件, js , css 等), 如果出现 404 不能访问错误, 解决方式 rebulid project -> 重启 Tom