一.作用
1.Tomcat实际也是一个java程序,但这个java程序可以处理来自浏览器的http请求
2.使用tomcat需要先了解网络编程(TCP,UDP,HTTP等)和IO流
3.手写一个简单的javaweb服务程序,在浏览器输入http://localhost:9999进行请求
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class Test1 {
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();
System.out.println("客户端 socket 返回=" + socket.getClass());
//3. 通过socket 得到 输出流,[]
OutputStream outputStream = socket.getOutputStream();
// 返回给浏览器/客户端
//4. 读取 hello.html 文件返回即可=> 如何读取文件内容
File file = new File("D:\\Study\\JavaWorkPlace\\tomcat\\src\\hello.html"); // 替换为你的文件路径
//
// 得到文件输入流(字符输入流), 和 src/hello.html
BufferedReader bufferedReader =
new BufferedReader(new FileReader(file));
StringBuffer body = new StringBuffer("");
String buf = "";
// 循环读取hello.html
while ((buf = bufferedReader.readLine()) != null) {
body.append(buf);
}
System.out.println(body);
String responseStatusLine = "HTTP/1.1 200 OK\r\n";
String responseHeader = "";
responseHeader += "Content-Length: " + body.toString().getBytes().length + "\r\n";
responseHeader += "Content-Type: text/html; charset-utf-8\r\n";
responseHeader += "\r\n";
outputStream.write(responseStatusLine.getBytes());
outputStream.write(responseHeader.getBytes());
outputStream.write(body.toString().getBytes());
outputStream.flush();
outputStream.close();
socket.close();
}
serverSocket.close();
}
}
在开发中,我们可以在控制台(以管理员身份运行) netstat -anb 可以查看哪些端口在监听
4.tomcat本质是一个java程序,所以会使用jdk,如果jdk没配好,则只会闪一个黑窗口,不会成功启动
5.tomcat的默认端口是8080,如果有服务占用了8080也不会成功启动,要么更改tomcat的默认端口或者停止占用8080端口的服务
6.tomcat的目录说明 bin:存放启动和关闭tomcat的脚本文件 config:存放tomcat服务器的各种配置文件 lib:存放tomcat服务器的支撑jar包
logs:存放tomcat的日志文件 temp:存放tomcat运行时产生的临时文件 webapps:web应用所在目录,即供外界访问的web资源的存放目录
work:tomcat的工作目录
7.tomcat通过配置可以将一个web应用映射到指定的目录下,可以解决磁盘空间不够的问题
8.如何修改tomcat的服务端口,tomcat下面有个config配置文件目录,找到server.xml文件进行修改
9.idea开发部署tomcat以及注意事项,部署教程网上搜索.注意:热加载选项说明:on update action:表示当更新操作时,tomcat会自动更新类和资源(jsp/html文件修改时,可以生效,但如果修改的是java文件需要redepoly才会生效) on frame deactivation:表示idea失去焦点(比如最小化窗口),也会导致jsp/html文件更新,java文件同上.
这里的端口修改只会影响到当前项目,不会影响到tomcat的server.xml
当tomcat启动时,会生成out目录,该目录就是原项目的映射,我们浏览器访问的资源就是out目录的资源
当从外部拷贝资源时到项目时,有时候出现404无法访问,就是该资源没有映射到out目录里面,解决办法就是rebulid project 然后再重启tomcat
10.web工程目录介绍: