【SpringMVC笔记整理一】HelloWorld

版权声明:本文为 小异常 原创文章,非商用自由转载-保持署名-注明出处,谢谢!
本文网址:https://blog.csdn.net/sun8112133/article/details/104610179







本篇博客还是以一个众所周知的 HelloWorld 小案例讲起,帮助大家快速了解 Spring MVC 这个主流框架。

本套笔记使用的 IDE 工具是 STSSTS 这个软件其实就是一款 Eclipse,它与其他 Eclipse 不同的是它能更好的支持 Spring。它相当于 Eclipse 与 STS插件 的二合一,也是 Spring 官方推荐使用的),关于 STS 的有关内容我之前也写过类似博客,在这里不作过多讲述,感兴趣的小伙伴可以参考:STS软件安装

Spring MVC 版本选用的是目前比较新的 5.1.7


一、Spring MVC 概述

在讲 HelloWorld 这个小案例之前,先简单说一下什么是 Spring MVC

Spring MVC 是 MVC 架构思想的实现,也是 Spring 中的一个组件,主要是用来 进行 WEB 开发的主流框架

MVC 是由 Model(模型)、View(视图) 和 Controller(控制器) 这三部分组成的,它的工作流程是由 Controller 接收客户端请求,调用 Model 相关代码完成业务逻辑操作,将结果返回给 Controller,Controller 再结合 View 完成业务数据的视图渲染,并将结果响应给客户端。



二、HelloWorld

1、准备工作

先创建一个 Web 工程,如果你使用的是 Maven,可以先创建一个 Maven 的 Web 工程(可以参考: 在 Eclipse 中构建 Web 工程),并引入 Maven 依赖;如果你创建的是普通的 Web 工程,则直接引入 Jar 包即可。

1)Maven 依赖

<dependencies>
	<!-- Spring MVC 依赖 -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-webmvc</artifactId>
		<version>5.1.7.RELEASE</version>
	</dependency>
    
	<!-- Servlet 依赖 -->
	<dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>servlet-api</artifactId>
		<version>2.5</version>
	</dependency>
</dependencies>

2)Jar 包

Jar包下载地址:https://pan.baidu.com/s/14E7sqp-jLB-q4arLvuD-jw,提取码:ae2o

1Jar包


2、目录结构

1)Maven 目录结构

1目录结构1

2)使用 Jar 包的目录结构

1目录结构2


3、配置前端控制器

前端控制器(DispatcherServlet) 是用来集中处理请求的,它负责接收所有的请求,再将对应的请求转发到其他程序处理,然后再接收处理后的结果,最终将处理好的结果返回给浏览器。其实它就是一个中央处理器,每次请求都需要经过它。

我们需要在 web.xml 中配置 DispatcherServlet,如下:

<servlet>
	<servlet-name>springmvc</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	<!-- 统一交给 springmvc.xml 进行处理 -->
	<init-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:springmvc.xml</param-value>
	</init-param>
</servlet>

<servlet-mapping>
	<servlet-name>springmvc</servlet-name>
	<!-- 接收所有的请求 -->
	<url-pattern>/</url-pattern>
</servlet-mapping>

4、创建 Spring MVC 配置管理文件

Spring MVC 配置管理文件 主要是用来根据不同的请求转发到对应的业务逻辑类去处理,并获取处理后的结果返回给 前端控制器

我们需要在 classpath 的根目录下创建 springmvc.xml 配置文件(可根据目录结构进行创建),主要配置自动扫描注解 以及 视图解析器,其内容如下:

视图解析器(ViewResolver) 的主要作用就是将逻辑视图转换成用户可以看到的物理视图。

<!-- 配置自动扫描 -->
<context:component-scan base-package="com.demo" />

<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<property name="prefix" value="/"></property>
	<property name="suffix" value=".jsp"></property>
</bean>

5、控制器

控制器 主要作用是为了可以根据不同的 URL 进行相应的业务逻辑处理。

我们需要在 com.demo 这个包下创建一个控制器,其中 @RequestMapping("/hello") 这句话表示将来访问 /hello 这个URL时,就能执行 index() 这个方法。内容如下:

注意: 这里只能加 @Controller 注解,不仅要将该类放到 IOC 容器中,更主要的是为了可以处理浏览器的请求,如果加了其他配置 Bean 的注解(如:@Component 等),那么效果只能放到 IOC 容器中,并不能处理浏览器请求。

@Controller
public class HelloController {
	@RequestMapping("/hello")
	public String index() {
		System.out.println("index...");
		return "index";
	}
}

6、准备 JSP 页面(index.jsp)

<h1>Hello Spring MVC!</h1>

7、浏览器测试

用浏览器访问 /hello 这个 URL,如果能转发到 index.jsp 页面,表示测试成功!

1浏览器测试



三、可能会出现的问题

在做 HelloWorld 这个小例子可能会出现一些意想不到的问题,我在做 HelloWorld 这个小例子的时候,出现了下列问题,大家可以进行参考:

1、Maven 构建 Spring MVC 时报 ClassNotFoundException 异常

请参考:https://blog.csdn.net/sun8112133/article/details/104521255


2、项目报 Java 版本不匹配

请参考:https://blog.csdn.net/sun8112133/article/details/104521088



博客中若有不恰当的地方,请您一定要告诉我。前路崎岖,望我们可以互相帮助,并肩前行!



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章