Tomcat
1、BS开发
B:Browser(浏览器,种类太多 IE,chrome,edge等)
S:Server(服务端,要考虑很多)
解读
- 兼容性:因为浏览器种类很多,发现你写的程序在某个浏览器会出现问题,其他浏览器正常
- 安全性:通常情况下,BS的安全性不如CS好控制
- 易用性,BS好于CS,因为浏览器每个电脑都有
- 扩展性,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服务软件
- Tomcat 应用最广(免费)
- Jboss (免费)
- GlassFish
- Resin
- WebLogic[很猛,大厂使用] (免费)
(4)Tomcat
1、Tomcat的下载和安装
Tomcat 官方站点:http://tomcat.apache.org/
下载对应版本解压到安装目录即可,这里我会将自己下载的资源分享给大家。
2、Tomcat启动
- 双击bin目录下的startup.bat文件
- 输入http://localhost:8080,显示如下界面代表安装成功,默认在8080端口
- 注意,启动了startup.bat文件就不要关闭窗口,关闭了Tomcat服务就停止了。
小技巧:在开发中,我们可以使用netstat -anb(管理员权限)查看哪些端口在监听
3、Tomcat启动出现故障原因
没有配置好JAVA_HOME环境变量!!!!!!
4、Tomcat目录结构
- server.xml 用于配置tomcat的基本设置(启动端口,关闭端口,主机名)
- wex.xml 用于指定tomcat运行时配置(比如servlet等…)
- webapps 目录是存放web应用,就是网站
5、catalina启动tomcat
- 进入到tomcat的bin目录下
- 执行命令:catalina run
6、停止tomcat
- 点击tomcat服务器窗口,直接点击关闭按钮
- 进入tomcat的bin目录下的shutdown.bat双击,就可以停止tomcat服务器(推荐)
7、修改tomcat服务端口
在tomcat目录下的conf目录,修改server.xml配置文件
默认端口8080,端口号范围1-65535,建议修改端口号>1024,最好在10000以上。修改后,重启tomcat生效
8、tomcat服务中部署WEB应用
JavaWEB程序/应用/工程目录结构
部署方式一:将web工程的目录拷贝到tomcat的webapps目录下
- news Web工程(目前都是静态资源html,图片)
- 将该news目录/文件夹 拷贝到tomcat的webapps目录下
- 浏览器输入:http://ip[域名]:port/news/子目录…/文件名
部署方式二:通过配置文件来部署
在tomcat下的conf目录\Catalina\localhost\下,配置文件,比如hsp.xml(提醒:知道tomcat通过配置,可以把一个web应用,映射到指定的目录,可以解决磁盘空间分配的问题)
然后访问web工程:http://ip[域名]:port/hsp/index.html 就是表示访问D:\album目录下的index.html
ROOT的工程的访问
- 在浏览器地址栏中输入访问地址如下:http://ip[域名]:port,没有web工程/应用名时,默认访问的是ROOT工程
- 在浏览器地址栏中输入的访问地址如下:http://ip[域名]:port/工程名/,没有资源名,默认访问index,jsp页面
9、浏览器访问web服务过程详解
步骤:
- 浏览器先解析出主机名(例如www.Ghost-D.com)
- 浏览器到本机的Host文件去查询主机名对应的IP(Host文件在C:\Windows\System32\drivers\etc目录下);如果没有在Host文件下找到域名的IP,就到外网的DNS查找,如果在DNS,也找不到,就会提示额,找不到网页。
- 浏览器通过查询到的IP,向tomcat发出http请求
- tomcat解析出web应用
- tomcat解析出资源test.html
- tomcat获取test.html
- tomcat将获取到的结果以http响应方式返回
- 浏览器将解析返回的结果并显示
我会把流程图资源上传进去
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目录