【JavaWeb】SpringBootWeb入门

Dear 丶 2024-04-26 03:03 152阅读 0赞

? 本文由 程序喵正在路上 原创,CSDN首发!
? 系列专栏:JavaWeb开发
? 首发时间:2024年2月4日
? 欢迎关注?点赞?收藏?留言?

目录

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

Spring

  • 官网:https://spring.io/
  • Spring 发展到今天已经形成了一种开发生态圈,Spring 提供了若干个子项目,每个项目用于完成特定的功能

    在这里插入图片描述

  • 其中,Spring Framework 是核心,其他框架都是基于它开发出来的

    在这里插入图片描述

  • 如果用 Spring Framework 直接来开发,会显示很繁琐,所以有了 Spring Boot 的出现

    在这里插入图片描述

  • Spring Boot 可以帮助我们非常快速的构建应用程序、简化开发、提高效率

SpringBootWeb快速入门

需求:使用 SpringBoot 开发一个 web 应用,浏览器发起请求 /hello 后,给浏览器返回字符串 “Hello World ~”。

在这里插入图片描述
基本步骤:

  • 创建springboot工程,并勾选web开发相关依赖
  • 定义HelloController类,添加方法 hello,并添加注解
  • 运行测试

详细过程:

  1. 创建 springboot 工程,填写模块信息,并勾选 web 开发相关依赖

    在打开的项目中选择新建模块,然后来到 Spring Initializr 界面:

    在这里插入图片描述

    将信息补充完整:

    在这里插入图片描述

    点击 Next,然后在 Web 下勾选 Spring Web,再点击 Finish 即可:

    在这里插入图片描述

    项目正在下载 SpringBoot 的相关依赖,右下角有进度条,大概要两三分钟,耐心等待即可:

    在这里插入图片描述

    在我们新创建的 SpringBoot 项目中,有一些文件是没用的(下图中被选中部分),你可以删去或者保留:

    在这里插入图片描述

    简单说明一下 pom.xml 文件中的内容:

    在这里插入图片描述

    在 src 的 main 的 java 目录下,我们可以看到 springboot 已经为我们创建了一个类,这个类是 springboot 的启动类:

    在这里插入图片描述

  2. 创建请求处理类HelloController,添加请求处理方法 hello,并添加注解

    在 java 下的 com.xixi 下创建一个包 controller,然后在包中创建类 HelloController:

    在这里插入图片描述

    添加请求处理方法以及注解:

    1. import org.springframework.web.bind.annotation.RequestMapping;
    2. import org.springframework.web.bind.annotation.RestController;
    3. //请求处理类
    4. @RestController //请求处理类需要添加的注解
    5. public class HelloController {
    6. @RequestMapping("/hello") //声明要处理的请求路径
    7. public String hello() {
    8. System.out.println("Hello World~");
    9. return "Hello World~";
    10. }
    11. }
  3. 运行启动类,打开浏览器测试

    打开 springboot 的启动类,右键选择启动,我们来看一下这个启动页面:

    在这里插入图片描述

    接下来,打开浏览器,新建一个标签,在地址栏输入 localhost:8080/hello,然后回车:

    在这里插入图片描述

    可以看到浏览器已经接收到返回的信息,启动页面也打印出了信息:

    在这里插入图片描述

    到这里,入门程序就编写成功了。

HTTP协议

HTTP-概述

  • 概念:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则

    在这里插入图片描述

  • 特点:

    1. 基于TCP协议:面向连接,安全
    2. 基于请求-响应模型的:一次请求对应一次响应
    3. HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的

      • 缺点:多次请求间不能共享数据
      • 优点:速度快

HTTP-请求协议

HTTP-请求数据格式

在这里插入图片描述

常见的请求头:

在这里插入图片描述

GET 和 POST 的区别:

  • 请求方式——GET: 请求参数在请求行中,没有请求体,如:/brand/findAll?name=OPPO&status=1,GET请求大小是有限制的
  • 请求方式——POST: 请求参数在请求体中,POST请求大小是没有限制的

请求演示

先准备一个 HTML 页面 01. GET-POST.html,位置如下图所示:

在这里插入图片描述

代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>请求方式演示-GET-POST</title>
  6. </head>
  7. <body>
  8. <form action="" method="get">
  9. 姓 名: <input type="text" name="name"> <br>
  10. 密 码: <input type="password" name="password"><br>
  11. <input type="submit" value="提交表单GET"><br>
  12. </form>
  13. <br><br><br>
  14. <form action="" method="post">
  15. 姓 名: <input type="text" name="name"> <br>
  16. 密 码: <input type="password" name="password"><br>
  17. <input type="submit" value="提交表单POST"><br>
  18. </form>
  19. </body>
  20. </html>

直接点击 IDEA 右上角的悬浮工具来打开这个页面:

在这里插入图片描述

打开 F12,点击 NetWork:

在这里插入图片描述

填写第一个表单为 Tom 和 123,点击提交按钮后,可以看到其请求参数:

在这里插入图片描述

将地址栏上的参数删去之后,填写第二个表单为 Tom 和 123,点击提交按钮后,可以看到其请求参数:

在这里插入图片描述

HTTP-响应协议

HTTP响应格式

在这里插入图片描述

状态码含义

在这里插入图片描述

常见的响应状态码







































































状态码 英文描述 解释
200 OK 客户端请求成功,即处理成功,这是我们最想看到的状态码
302 Found 指示所请求的资源已移动到由Location响应头给定的 URL,浏览器会自动重新访问到这个页面
304 Not Modified 告诉客户端,你请求的资源至上次取得后,服务端并未更改,你直接用你本地缓存吧。隐式重定向
400 Bad Request 客户端请求有语法错误,不能被服务器所理解
403 Forbidden 服务器收到请求,但是拒绝提供服务,比如:没有权限访问相关资源
404 Not Found 请求资源不存在,一般是URL输入有误,或者网站资源被删除了
405 Method Not Allowed 请求方式有误,比如应该用GET请求方式的资源,用了POST
428 Precondition Required 服务器要求有条件的请求,告诉客户端要想访问该资源,必须携带特定的请求头
429 Too Many Requests 指示用户在给定时间内发送了太多请求(“限速”),配合 Retry-After(多长时间后可以请求)响应头一起使用
431 Request Header Fields Too Large 请求头太大,服务器不愿意处理请求,因为它的头部字段太大。请求可以在减少请求头域的大小后重新提交。
500 Internal Server Error 服务器发生不可预期的错误。服务器出异常了,赶紧看日志去吧
503 Service Unavailable 服务器尚未准备好处理请求,服务器刚刚启动,还未初始化好

状态码大全:https://cloud.tencent.com/developer/chapter/13553

常见的响应头

在这里插入图片描述

HTTP-协议解析

Web 服务器

Web服务器是一个软件程序,对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷,主要功能是 “提供网上信息浏览服务” 。

在这里插入图片描述

我们要学习的是 Tomcat。

Web服务器-Tomcat

简介

  • 概念: Tomcat是Apache 软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JSP少量JavaEE规范
  • JavaEE:Java Enterprise Edition,Java企业版。指Java企业级开发的技术规范总和。包含13项技术规范:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAF
  • Tomcat 也被称为 Web容器、Servlet容器,Servlet程序需要依赖于 Tomcat才能运行
  • 官网:https://tomcat.apache.org/

在这里插入图片描述

基本使用

  • 下载:官网下载,地址 https://tomcat.apache.org/download-90.cgi

    在这里插入图片描述

  • 安装:绿色版,直接解压即可,和 maven 差不多
  • 卸载:直接删除目录即可
  • 启动:双击:bin\startup.bat

    • 控制台中文乱码:修改 conf\logging.properties

    在这里插入图片描述

  • 关闭:

    • 直接关闭运行窗口:强制关闭
    • 双击 bin\shutdown.bat:正常关闭
    • Ctrl + C:正常关闭
  • tomcat 目录下的文件说明:
    在这里插入图片描述

常见问题

  • 启动时窗口一闪而过:检查 JAVA_HOME 环境变量是否正确配置
  • 端口号冲突:找到对应程序,将其关闭掉

    在这里插入图片描述

配置Tomcat端口号(conf\server.xml)

在这里插入图片描述

注意事项

HTTP协议默认端口号为80,如果将Tomcat端口号改为80,则将来访问Tomcat时,将不用输入端口号。

Tomcat 部署项目

将项目放置到 webapps 目录下, 即部署完成

入门程序解析

在这里插入图片描述

这是前面的 springboot 入门程序,右侧是这个项目的 maven 依赖,橙色这两个一创建工程就有的依赖称为起步依赖

起步依赖

  • spring-boot-starter-web:包含了web应用开发所需要的常见依赖
  • spring-boot-starter-test:包含了单元测试所需要的常见依赖
  • 官方提供的starter:https://docs.spring.io/spring-boot/docs/2.7.4/reference/htmlsingle/#using.build-systems.starters

从这个工程的启动页面和包含的依赖,可以看出,springboot 内嵌了 Tomcat 服务器,当启动类运行时,也会自动启动内嵌的tomcat服务器。所以我们在开发过程中不用再去安装 Tomcat,后面我们大部分时候也是使用内嵌的 Tomcat。

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,152人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Arduino入门,Arduino入门

    Arduino入门: 于2012年2月1日在搜索颜色识别传感器时,了解到了arduino,仔细查阅了一下资料发现了新大陆,这个东西很有意思入门也不难。而且加上现在的移动互联,

    相关 【MongoDb入门】基础入门

     关于mongodb的好处,优点之类的这里就不说了,唯一要讲的一点就是mongodb中有三元素:数据库,集合,文档,其中“集合” 就是对应关系数据库中的“表”,“文档”对应“

    相关 Vuex从入门入门

    Vuex 是什么? 官方是这么说的:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种