java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot请求响应404和500报错

运行SpringBoot项目请求响应流程分析以及404和500报错的解决办法

作者:椰椰椰耶

这篇文章主要介绍了运行Spring Boot项目请求响应流程分析以及404和500报错的解决办法,文中通过代码示例和图文讲解的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下

1. 运行项目

import org.springframework.boot.SpringApplication;  
import org.springframework.boot.autoconfigure.SpringBootApplication;  
  
@SpringBootApplication  
public class Application {  
  
    public static void main(String[] args) {  
        SpringApplication.run(Application.class, args);  
    }  
}

@SpringBootApplicationSpring Boot 启动类注解
点击启动类的 main 方法就可以运行 Spring Boot 项目了,启动成功如下图所示:

image.png

2. 输出 Hello world

JavaEE 更多是围绕着如何使用 Java 来进行 web 开发。如果要和浏览器进行交互,就需要使用 Spring Boot 来实现

在创建的项目包路径下创建 UserController 文件,实现代码如下:

import org.springframework.web.bind.annotation.RequestMapping;  
import org.springframework.web.bind.annotation.RestController;  
  
@RestController  
public class UserController {  

    @RequestMapping("/hello")  
    public String hello() {  
        return "Hello, Spring";  
    }  
}

重新启动项目,访问 127.0.0.1:8080/hello,最终效果如下:

image.png|498

3. Web 服务器

浏览器和服务器两端进行数据交互,使用的就是 HTTP 协议

image.png

前面文章已经介绍了 HTTP 协议,知道了 HTTP 协议就是 HTTP 客户端和 HTTP 服务器之间的交互数据的格式

Web 服务器就是对 HTTP 协议进行封装,程序员不需要直接对协议进行操作(自己写代码去解析 HTTP 协议规则),让 Web 开发更加便捷,所以 Web 服务器也被称为 WWW 服务器,HTTP 服务器,主要功能是提供网上的信息浏览服务

Spring Boot 内置了 Tomcat 服务器,无需配置就可直接运行

image.png

Tomcat 默认端口号是 8080,所以我们程序访问时的端口号也是 8080

4. 请求响应流程分析

浏览器输入 URL 之后,发起请求,就和服务器之间建立了连接

image.png

浏览器,输入网址:127.0.0.1:8080/user/sayhi

127.0.0.1:8080/user/sayhi,就是向本地计算机中的 8080 端口程序,获取资源位置是 /user/sayhi 的数据,然后发给服务器

服务器:

接收到浏览器发送的信息(如:/user/sayhi)在服务器上找到/user/sayhi 的资源把资源发给浏览器

5. 访问出错怎么办

404

404 表示用户访问的资源不存在,大概率是 URL 路径写的不正确

错误实例 1:URL 单词拼错

image.png|595

错误实例 2:注解写错

注释写错或者没写都会报错

@Controller
public class UserController{
	
	@RequestMapping("/sayHi")
	public String sayHi(){
		return "hello, spring";
	}
}

此时访问也会报错

image.png

通过 Fiddler 观察 http 请求

image.png

500

服务器出现内部错误,一般是服务器的代码执行过程中遇到了一些特殊情况(服务器异常崩溃),会产生这个状态码

错误实例:

@RestController
public class UserController {
	
	@RequestMapping("/sayHi") {
		int res = 10/0;
		return "hello, Spring";
		}
}

重启 Tomcat 服务器,重新访问页面,可以看到:

image.png

此时,程序后端控制台已经打印了具体的异常调用栈

image.png

一般是 Tomcat 启动失败了

image.png|486

打开 Fiddler 的话,界面如下:

image.png

这种情况一般是服务器未启动,也就是 Tomcat 未启动,或者 IP/端口号写错了

小结

熟悉 HTTP 协议能让我们调试问题事半功倍

程序猿调试 BUG 如同医生诊病
一个有经验的程序猿和一个新手程序猿相比,最大的优势往往不是代码写的多好,而是调试效率有多高。如同一个问题可能新手花了几天都无法解决,但是有经验的程序猿可能几分钟就搞定了

总结

Spring Boot 是为了快速开发 Spring 而诞生的,Spring Boot 具备:

以上就是运行Spring Boot项目请求响应流程分析以及404和500报错的解决办法的详细内容,更多关于Spring Boot请求响应404和500报错的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文