目录
一、简介
二、环境的搭建
三、快速入门
四、SpringMVC的执行流程
Spring有关的文章已经全部更新完,收录于我的专栏👉Spring👈
一、简介
我们在前边已经学习了Spring的基本使用。从这节开始,我们进行SpringMVC的学习。在学习之前,我们首先得搞清楚SpringMVC是个什么东西?它可以用来干什么?
SpringMVC就是一个Spring内置的MVC框架。它是基于SpringFrame的
web层
框架。我们可以简单理解为它可以将我们原来的Controller进行接管,相较于我们javaWeb部分学习的Servlet,需要继承Servlet实现类的这种方式,在SpringMVC中我们只需要用一个注解就可以完成。总的一句话:SpringMVC使我们的开发流程更加的简便。
虽然我们SpringMVC使我们的开发更加的简便,但它的底层还是用到了我们的Servlet,SpringMVC是对它做了封装。所以想要学好SpringMVC的前提是学好的我们的Servlet。
二、环境的搭建
添加jar包
在我们前边Spring环境的基础上添加两个jar包:spring-web-x.x.x.jar
、spring-webmvc-x.x.x.jar
。
在SpringMVC中我们需要将我们的请求要交由中央控制器
来进行处理。所以我们得在web.xml
文件中进行配置。
配置中央控制器
<!--配置前端控制器.用户的请求都会经过它的处理(他就是一个Servlet)-->
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--配置属性 contextConfigLocation,指定DispatcherServlet去操作的spring配置文件-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springDispatcherServlet-servlet.xml</param-value>
</init-param>
<!--在web项目启动的就自动加载 DispatcherServlet-->
<load-on-startup>1</load-on-startup>
</servlet>
<!--
1. 这里我们配置的url-pattern是/,表示用户的请求都经过它的拦截处理
2. 这样配置同样也支持rest风格的url请求
-->
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
除了上边我们配置方式,还有它们默认的一种指定Spring配置文件的方式。
我们可以将<init-param>
都注释掉,那么它默认的就回去找servlet名称-servlet.xml
文件。这是因为:
源码中有这样一个注释:
/**
* Suffix for WebApplicationContext namespaces. If a servlet of this class is
* given the name "test" in a context, the namespace used by the servlet will
* resolve to "test-servlet".
*/
这也就是说,如果我们没手动配置contextConfigLocation
,他就会默认去/WEB-INF/servlet名称-servlet.xml
找有没有这个文件。
创建Spring配置文件
在我们的Spring配置文件中需要配置一个默认的视图解析器,至于它的作用是什么,我们后边来详细的进行讲解。<!--spring容器的配置文件-->
<!--配置自动扫描的包-->
<context:component-scan base-package="com.jl.web"></context:component-scan>
<!--配置视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--配置前缀-->
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
<!--
这个配置就是告诉解析器,当我返回”login_ok“这个字符串的时候,
视图解析器应该去找 "/WEB-INF/pages/login_ok.jsp"这个资源-->
</bean>
三、快速入门
完成了上边环境的搭建。我们这里先使用一个简单的登录案例来体会一下SpringMVC的便捷之处。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登陆页面</title>
</head>
<body>
<form action="/springmvc/login/doLogin" method="post">
u:<input type="text" name="name"><br>
p:<input type="password" name="password"><br>
<input type="submit" value="登录">
</form>
</body>
</html>
package com.jl.web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* ClassName: UserServlet
* Package: com.jl.web
* Description: SpringMVC的入门演示
*
* @Author: Long
* @Create: 2022/11/26 - 15:16
* @Version: v1.0
*
* 如果我们在一个类上边声明了@Controller
* 表示将此类当作一个控制器注入到容器当中
* 简化了我们原生Servlet的那一套操作
*/
@Controller
public class UserServlet {
/**
* 1. 编写方法,响应用户的请求
* 2. @RequestMapping类似于我们原生Srevlet配置那个 url-pattern
* 3. 就是当用户输入http://localhost:8080/web工程路径/login 的时候就
* 能直接访问到我们的这个方法
* 4. return "login_ok";表示返回结果给视图解析器(InternalResourceViewResolver)
* ,视图解析器根据配置,来决定跳转哪个页面。
* @return
*/
@RequestMapping(value = "/login")
public String login(){
System.out.println("登录成功");
return "login_ok";
}
}
登录成功页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录成功</title>
</head>
<body>
<h1>登陆成功</h1>
</body>
</html>
结果截图:
看到这,有的小伙伴可能觉得这好像没有简化,反而还变得复杂了,要配置这配置那的。这是因为我们这里只是简单的进行一个案例演示,到后边我们理清整个流程之后,就会体会到它的妙用。
四、SpringMVC的执行流程
这里只是简单的一个流程图,方便于大家理解。
下节来讲我们的SpringMVC的使用
如果文章中有描述不准确或者错误的地方,还望指正。您可以留言📫或者私信我。🙏
最后希望大家多多 关注+点赞+收藏^_^,你们的鼓励是我不断前进的动力!!!
感谢感谢~~~🙏🙏🙏