Tomcat
Web服务器(Tomcat)的作用:
得到HTTP请求后,去后端将要请求的文件传回给请求者(浏览器/客户端)
Tomcat目录
Tomcat目录名称 | 作用 |
---|---|
bin | 存放启动和关闭Tomcat的脚本文件 |
conf | 存放Tomcat服务器的各种配置文件 |
lib | 存放Tomcat服务器的支撑jar包 |
logs | 存放Tomcat的日志文件 |
temp | 存放Tomcat运行时产生的临时文件 |
webapps | web应用所在目录,即供外界访问的web资源的存放目录 |
work | Tomcat的工作目录 |
- conf/server.xml 用于配置tomcat的基本设置(启动端口,关闭端口,主机名)
- web.xml 用于指定tomcat运行时配置(比如servlet等)
- webapps目录是存放web应用,就是网站
Tomcat服务中部署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应用,映射到指定的目录,可以解决磁盘空间分配的问题
浏览器访问Web服务过程
在浏览器输入网址(如: http://localhost:8080/test/test.html)-->
1.浏览器先从网址中解析出主机名(localhost)-->
2.到本机的Host文件根据主机名找到对应的ip地址-->
(如果没有找到,就会去外网的DNS服务器找)-->
3.根据查询到的IP地址和对应的端口号,向tomcat发出http请求-->
tomcat接收到http请求后,根据请求解析出要访问的web应用(test)-->
根据请求解析出资源test.html-->
在后端获取请求的资源test.html-->
tomcat将结果以http相应的方式返回给浏览器-->
浏览器将请求的资源解析出对应的页面
Java工程目录
设置应用名称
访问服务器下任何资源:http://ip:8080/
Application context名称/
资源名称
如果Application context设置为/
,那么访问服务器资源:http://ip:8080/
资源名称
WEB开发
B/S开发与C/S开发
Web服务器(Tomcat)的作用: 得到HTTP请求后,去后端将要请求的文件传回给请求者(浏览器/客户端)
JavaWeb服务器介绍
手写一个简单的JavaWeb服务
package Tomcat;
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 珀筱
* 手写一个web服务,请求服务端,返回hello.html
*/
@SuppressWarnings("all")
public class myTomcat {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("===========我的web服务正在8888端口监听===========");
while (!serverSocket.isClosed()) {
//1.该socket用于通信
Socket socket = serverSocket.accept();
//2.通过socket得到输出流
OutputStream outputStream = socket.getOutputStream();
//3.读取hello.html文件
BufferedReader br = new BufferedReader(new FileReader("src\\Tomcat\\hello.html"));
String data = "";
while ((data = br.readLine()) != null) {
//4.返回给客户端/服务器
outputStream.write(data.getBytes());
}
outputStream.close();
socket.close();
}
serverSocket.close();
}
}
Tomcat的相关操作
下载与安装
启动
启动故障排除
Tomcat目录结构
catalina启动Tomcat
停止Tomcat
Tomcat服务中部署WEB应用
浏览器访问Web服务过程
在浏览器输入网址(如: http://localhost:8080/test/test.html)-->
1.浏览器先从网址中解析出主机名(localhost)-->
2.到本机的Host文件根据主机名找到对应的ip地址-->
3.根据查询到的IP地址和对应的端口号,向tomcat发出http请求-->
tomcat接收到http请求后,根据请求解析出要访问的web应用(test)-->
根据请求解析出资源test.html-->
在后端获取请求的资源test.html-->
tomcat将结果以http相应的方式返回给浏览器-->
浏览器将请求的资源解析出对应的页面
到本机的host文件去查询主机名对应的IP
根据查询的IP,向tomcat发出Http请求
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
<h1>hello,world</h1>
<img src="./img.jpg" width="300">
</body>
</html>
抓包
请求头
响应头
第一次返回的是静态html文件,这个文件大小就是186字节
一次请求只会返回一个资源
第二次返回的是张图片
浏览器先将静态的html文件返回后,发现有一个图片资源,就会再次发出请求
没有找到host文件,就会去外网的DNS服务器查找
IDE开发部署Tomcat
1.创建一个项目
2. 点击Add Framework Support
3.将项目放到web目录下
注意别放错位置
4. 要配置一个tomcat,用来管理我们的web应用
点击右上边的Add Configuration
点击左上角的+号
选择Tomcat Server 下的 Local
指定tomcat的安装目录
以及一些其他设置
选择以那种方式发布应用
修改访问应用名称
5. 启动tomcat
IDE开发部署Tomcat注意事项与细节
1. 热加载
- on update action:表示当我们更新操作是, Tomcat 会自动更新类和资源(当jsp/html文件修改时,可以生效,但是如果你修改的java文件,,需要Redepoly才会生效)
- on frame deactivation:表示IDEA失去焦点(比如最小化),也会导致jsp/html发生更新,但是java修改了,还是需要Redeploy
2.端口修改
修改过后,在idea中重启tomcat即可
3.out目录是什么
-
当tomcat启动时,会生成out目录,该目录就是原项目资源的映射,我们浏览器访问的资源是out目录
-
就算修改了out目录,访问的网页是会发生变化(与源文件访问的网页不同),但只要bulid项目或者重新发布项目就会以原项目为原目录
更新
out目录