当前位置: 首页 > news >正文

Web后端开发-SpringBootWeb入门、Http协议、Tomcat

文章目录

  • Web后端开发简介
  • SpringBootWeb入门
  • HTTP协议
    • HTTP-概述
    • HTTP-请求协议
    • HTTP-响应协议
    • HTTP-协议解析
  • Web服务器-Tomcat
    • 简介
    • 基本使用
    • SpringBootWeb入门程序解析

Web后端开发简介

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SpringBootWeb入门

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

package com.wuxuan.javaweb_wushuang.controller;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;//请求处理类
@RestController
public class hello {@RequestMapping("/hello")public String hello(){System.out.println("Hello World~");return "Hello World~";}}
package com.wuxuan.javaweb_wushuang.controller;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;//请求处理类
@RestController
public class hello {@RequestMapping("/hello")public String hello(){System.out.println("Hello World~");return "Hello World~";}}

HTTP协议

HTTP-概述

在这里插入图片描述

HTTP-请求协议

在这里插入图片描述

在这里插入图片描述

HTTP-响应协议

在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

HTTP-协议解析

HTTP的解析和处理十分繁琐,如果要写代码,要写大量代码!非常麻烦,而Web服务器为我们解决了这个问题。Web服务器可以为我们解析和处理HTTP,使我们只需关注业务逻辑的实现。

在这里插入图片描述
在这里插入图片描述

package com.wuxuan.javabase_homework;import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.nio.charset.StandardCharsets;/** 自定义web服务器*/
public class Server {public static void main(String[] args) throws IOException {ServerSocket ss = new ServerSocket(8080); // 监听指定端口System.out.println("server is running...");while (true){Socket sock = ss.accept();System.out.println("connected from " + sock.getRemoteSocketAddress());//开启线程处理请求Thread t = new Handler(sock);t.start();}}
}class Handler extends Thread {Socket sock;public Handler(Socket sock) {this.sock = sock;}@Overridepublic void run() {try (InputStream input = this.sock.getInputStream(); OutputStream output = this.sock.getOutputStream()) {handle(input, output);} catch (Exception e) {try {this.sock.close();} catch (IOException ioe) {}System.out.println("client disconnected.");}}private void handle(InputStream input, OutputStream output) throws IOException {BufferedReader reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8));BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(output, StandardCharsets.UTF_8));// 读取HTTP请求:boolean requestOk = false;String first = reader.readLine();if (first.startsWith("GET / HTTP/1.")) {requestOk = true;}for (;;) {String header = reader.readLine();if (header.isEmpty()) { // 读取到空行时, HTTP Header读取完毕break;}System.out.println(header);}System.out.println(requestOk ? "Response OK" : "Response Error");if (!requestOk) {// 发送错误响应:writer.write("HTTP/1.0 404 Not Found\r\n");writer.write("Content-Length: 0\r\n");writer.write("\r\n");writer.flush();} else {  // 发送成功响应://读取html文件,转换为字符串InputStream is = Server.class.getClassLoader().getResourceAsStream("html/a.html");BufferedReader br = new BufferedReader(new InputStreamReader(is));StringBuilder data = new StringBuilder();String line = null;while ((line = br.readLine()) != null){data.append(line);}br.close();int length = data.toString().getBytes(StandardCharsets.UTF_8).length;writer.write("HTTP/1.1 200 OK\r\n");writer.write("Connection: keep-alive\r\n");writer.write("Content-Type: text/html\r\n");writer.write("Content-Length: " + length + "\r\n");writer.write("\r\n"); // 空行标识Header和Body的分隔writer.write(data.toString());writer.flush();}}
}

Web服务器-Tomcat

在这里插入图片描述
在这里插入图片描述

简介

在这里插入图片描述在这里插入图片描述

基本使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SpringBootWeb入门程序解析

在这里插入图片描述

在这里插入图片描述

http://www.dtcms.com/a/267996.html

相关文章:

  • Gin 框架中如何实现 JWT 鉴权中间件
  • 学习栈和队列的插入和删除操作
  • 网安系列【8】之暴力破解入门
  • 【机器学习深度学习】多分类评估策略
  • Solidity——什么是低级调用(low-level calls)和操作码的内联汇编
  • 一次内存“卡顿”全流程实战分析:从制造问题到优化解决
  • Apache Spark 4.0:将大数据分析提升到新的水平
  • 小架构step系列06:编译配置
  • 在C#中,可以不实例化一个类而直接调用其静态字段
  • 2025年03月 C/C++(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • python-转义字符
  • 李宏毅2025《机器学习》第四讲-Transformer架构的演进
  • 力扣971. 寻找图中是否存在路径【simple 拓扑排序/图 Java】
  • 【双向循环带头链表】
  • Java中的抽象类和接口
  • CICD[构建镜像]:构建django使用的docker镜像
  • 【9】用户接入与认证配置
  • 车载智能座舱用户画像系统研究二:子系统构建
  • Linux国产与国外进度对垒
  • GANs环境应用及启发思考
  • java学习——guava并发编程练习
  • 跨平台游戏引擎 Axmol-2.7.0 发布
  • @Data、@AllArgsConstructor、@NoArgsConstructor不生效。lombok不起作用怎么解决?
  • 设置LInux环境变量的方法和区别_Ubuntu/Centos
  • 网页怎么不使用工具截图和长图
  • 《Spring AI实战:Java智能开发速成指南》
  • D435i + ROS2
  • 利用selenium获取网页数据,脚本加载慢问题的解决办法
  • CentOS环境搭建-快速升级G++版本
  • 【CSS样式】有趣的滑块开关