SpringMVC1

发布于:2025-07-15 ⋅ 阅读:(14) ⋅ 点赞:(0)

一、Tomcat 多服务与资源路径

 

- 一个 Tomcat 跑多个服务:

Tomcat 作为 Servlet 容器,默认端口是 8080。它可以同时部署多个 Web 应用(比如图中的 A、B、C),每个应用对应不同的资源路径。比如  http://127.0.0.1:8080/A/  就是访问 A 应用的根路径,以此类推。这里的  127.0.0.1  是本地回环地址,代表当前机器。

- context path 和 servlet path:

context path 是应用的上下文路径(比如  /A ),servlet path 是具体 Servlet 的路径。Spring 框架底层依赖 Servlet 技术,所以说 Spring 是基于 Servlet 开发的。

 

二、HTTP 状态码

 

- 1xx(信息响应):表示请求已接收,继续处理。

- 2xx(成功):比如 200 OK,表示请求成功。

- 3xx(重定向):像 301 永久重定向、302 临时重定向。

- 4xx(客户端错误):

- 404 Not Found:资源不存在,比如请求了一个不存在的网页。

- 403 Forbidden:服务器拒绝请求,没有权限访问。

- 401 Unauthorized:未授权,需要认证。

- 405 Method Not Allowed:请求方法不被允许,比如用 GET 方法访问只允许 POST 的接口。

- 5xx(服务器错误):

- 500 Internal Server Error:服务器内部出错,比如代码抛异常。

- 502 Bad Gateway:网关错误,比如反向代理时后端服务不可用。

- 504 Gateway Timeout:网关超时,请求后端服务超时。

 

三、连接失败案例

 

- 错误信息: The connection to '127.0.0.1' failed. Error: ConnectionRefused (0x274D). System.Net.Sockets.SocketException 由于目标计算机积极拒绝,无法连接。 127.0.0.1:8080 

- 原因:这通常是因为 Tomcat 没启动,或者端口被占用,导致客户端(比如浏览器、Fiddler)连不上  127.0.0.1:8080 。

 

四、Spring 家族关系

 

- SpringBoot、SpringMVC、Spring Framework 不是互斥的:

- Spring Framework:是基础框架,提供 IoC、AOP 等核心功能。

- SpringMVC:是基于 Spring 的 Web 框架,处理 Web 请求。

- SpringBoot:是快速开发框架,内置了 Tomcat(默认端口 12306,图中举例)、自动配置等,简化了 Spring 应用的搭建。

- 关系:SpringBoot 可以包含 SpringMVC,SpringMVC 属于 Spring Framework 的一部分。

 

五、SpringMVC 工作流程(MVC 模式)

 

- Model(模型):处理业务逻辑,和数据库交互,比如  Student  类封装数据。

- View(视图):负责展示数据,比如 JSP、Thymeleaf 页面。

- Controller(控制器):接收请求,调用 Model 处理,再把结果返回给 View。

- 流程:

1. 用户发请求(比如浏览器输入 URL)。

2. DispatcherServlet(前端控制器)接收请求,找到对应的 Controller。

3. Controller 调用 Model 处理业务(比如查数据库)。

4. Model 返回结果,Controller 选择 View 渲染数据,返回给用户。

 

六、面试流程(结合技术)

 

- 候选人流程:

1. 候选人去面试,HR 接待。

2. HR 负责多部门协调,把简历发给对应部门领导。

3. 部门领导让下属去面试。

4. 面试官把结果告诉部门领导,领导再反馈给 HR,HR 通知候选人。

- 技术映射:

- 候选人 → 用户

- HR → Controller(接收请求,分发任务)

- 部门领导 → model(处理业务逻辑,决定是否录用)

 

七、Maven 依赖下载与导入

 

- 区分下载和导入:

- 导入:每次用都要导入(比如在 IDEA 中 add as library)。

- 下载:下一次,之后能用,不用再下(Maven 会把依赖下到本地仓库)。

- 下载失败解决办法:

1. 设置国内源:比如阿里云 Maven 镜像,在 IDEA 的 Settings → Build, Execution, Deployment → Build Tools → Maven → 配置文件里改。

2. 多次刷新 Maven:点击 IDEA 中 Maven 面板的刷新按钮。

3. 切换网络:比如手机热点、其他 Wi-Fi,避免网络拦截。

4. 删除已下载的,重新刷新 Maven:去本地仓库(比如  C:\Users\用户名\.m2\repository )删对应依赖文件夹,再刷新。

5. 确认版本存在:去 Maven 中央仓库(https://mvnrepository.com/)查依赖版本是否存在,不存在就换版本。

6. 切换默认中央仓库:在 Maven 的  settings.xml  里配置其他仓库地址。

 

八、SpringBoot 项目创建(专业版 vs 社区版)

 

- 专业版(Ultimate):

- 可直接创建 SpringBoot 项目,不用装插件。

- 能直接联网。

- 社区版(Community):

- 要装 SpringBoot 插件。

- 创建项目后专业版能直接跑,社区版可能要手动删  spring-boot-starter-web  依赖后的  release  后缀(图中提到)。

- 其他方式:也能用 Spring Initializr(https://start.spring.io/)官网创建项目,导入 IDEA,社区版没装插件也能开发,只是创建项目麻烦。

 

九、URL 与 Controller 映射

 

- URL 结构: http://IP:端口/资源路径?查询字符串 。比如  http://127.0.0.1:8080/hello , 127.0.0.1  是 IP, 8080  是端口, /hello  是资源路径。

- Controller 示例:

@RestController

public class HelloController {

    @GetMapping("/hello")

    public String hello() {

        return "Hello Spring Boot!";

    }

}

 

 

-  @RestController :标记这是个 REST 风格的 Controller,返回 JSON 等数据。

-  @GetMapping("/hello") :映射 GET 请求到  /hello  路径,方法返回字符串给客户端。

 

十、Tomcat 与 SpringBoot 的关系

 

- Tomcat 是 SpringBoot 的“内置管家”:SpringBoot 内置了 Tomcat,启动 SpringBoot 项目就会启动内置 Tomcat,默认端口 8080(图中举例 12306 是自定义端口)。

- Tomcat 不止能跑 SpringBoot:还能跑 Struts、Servlet 等项目。

- SpringBoot 不只能用 Tomcat:还能切换成 Jetty、Undertow 等 Web 服务器。

- 启动 SpringBoot 项目 ≈ 启动 Tomcat:SpringBoot 项目跑起来,内置 Tomcat 就启动了,能处理 Web 请求。

 

总结

 

本节从 Tomcat 基础、HTTP 状态码、Spring 家族关系、SpringMVC 流程、Maven 依赖、SpringBoot 项目创建、URL 映射到 Tomcat 与 SpringBoot 的关系,把 Java Web 开发的核心知识点串了起来。理解这些内容,能帮你打通从请求到响应的全链路,应对开发和面试中的问题。