前言
在讲述Servlet的生命周期之前,我们一定要了解什么是Servlet?
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
在Web开发阶段,我们如果要编写一个完善的服务器,就要关注许多繁琐的格式化的基础语句,一个简单的html页面就可能需要上千行底层代码:
//基于TCP协议连接+HTTP协议通信的服务器端
public class HttpServer01 {
public static void main(String[] args) {
try (ServerSocket serverSocket = new ServerSocket(8080)) {
while(true) {
//客户端基于HTTP协议发起请求
Socket socket= serverSocket.accept();
System.out.println("有新的客户端连接");
//读取到客户端的请求头内容(基于HTTP协议格式)
try(BufferedReader reader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedWriter writer=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()))) {
String line=null;
while((line=reader.readLine())!=null) {
//读到空行,代表请求头结束
//由于是GET请求,不存在request body(请求体)
//所以退出请求头的读取
if (line.length()==0) {
break;
}
System.out.println(line);
}
System.out.println("开始响应...");
String response="优惠券:<b>"+UUID.randomUUID().toString()+"</b>";
// response header 响应头
writer.write("HTTP/1.1 200 ok\r\n");
writer.write("Connection:close\r\n");
writer.write("Content-Type:text/html\r\n");
...
writer.newL