SpringMVC:一个简单的web项目,用SpringMVC实现一个简单的页面访问

------------------------------------------------------分割线------------------------------------------------------
---------------------------------------------------以下是正文------------------------------------------------------

一、问题背景以及描述

       在《一个简单的web项目,用Servlet实现一个简单的页面访问》一文中我们用Servlet实现了简单的页面访问,这次我们用SpringMVC框架来精简快捷地实现同样的功能。

二、测试环境

JDK:jdk1.8.0_151
开发软件:IntelliJ IDEA Ultimate 2020.2.3
Maven:apache-maven-3.6.3
Tomcat:apache-tomcat-9.0.41

三、项目结构

在这里插入图片描述

四、操作步骤

1、新建一个普通Maven项目,且将其指定为Web项目,如下图,
温馨提醒:如若不清楚如何新建一个普通Maven项目以及如何将其指定为Web项目,请点击前面链接跳转至对应文章查看。
在这里插入图片描述
2、在子项目[springmvc-02-hellomvc] → \rightarrow [pom.xml]文件中添加以下依赖,

<dependencies>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-webmvc</artifactId>
		<version>5.1.9.RELEASE</version>
	</dependency>
</dependencies>

      添加完依赖后,我们还要确保另一个地方也要有依赖jar包,不然运行项目会报错,具体操作如下:点击[文件] → \rightarrow [项目结构…],弹出以下窗口,
在这里插入图片描述
3、接着我们先来新建一个视图,具体操作如下:在子项目[springmvc-02-hellomvc] → \rightarrow [web] → \rightarrow [WEB-INF]文件夹下新建一个[jsp]文件夹,接着在[jsp]文件夹里新建一个[test.jsp]文件,然后在文件里添加代码[${msg}],如下图,
在这里插入图片描述

4、接着我们在子项目[springmvc-02-hellomvc] → \rightarrow [web] → \rightarrow [WEB-INF] → \rightarrow [web.xml]文件中配置一个DispatcherServlet,添加的代码如下,

<!-- 配置DispatcherServlet:这个是SpringMVC的核心,所有的请求都会经过它 -->
<!-- DispatcherServlet又叫请求分发器,也叫前端控制器 -->
<servlet>
	<servlet-name>springmvc</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	<!-- DispatcherServlet要绑定Spring的配置文件 -->
	<init-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:springmvc-servlet.xml</param-value>
	</init-param>
	<!-- 启动级别设为1 -->
	<load-on-startup>1</load-on-startup>
</servlet>
    
<!--
	在SpringMVC中,“/”和“/*”的区别
	/表示只匹配所有的请求,不会去匹配jsp页面
	/*表示匹配所有的请求,包括jsp页面
-->
<servlet-mapping>
	<servlet-name>springmvc</servlet-name>
	<url-pattern>/</url-pattern>
</servlet-mapping>

5、接着,在子项目[springmvc-02-hellomvc] → \rightarrow [src] → \rightarrow [main] → \rightarrow [resources]文件夹下新建一个Spring配置文件,文件名为[springmvc-servlet.xml],该配置文件就是上面[web.xml]所绑定的,此时,我们往Spring配置文件里添加以下代码,

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- 处理器映射器 -->
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
    <!-- 处理器适配器 -->
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
    <!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver" >
        <!-- 前缀 -->
        <property name="prefix" value="/WEB-INF/jsp/" />
        <!-- 后缀 -->
        <property name="suffix" value=".jsp" />
    </bean>

	<!-- BeanNameUrlHandlerMapping bean -->
    <bean id="/hello" class="com.yuhoutian.controller.HelloController" />

</beans>

6、接着,我们先在子项目[springmvc-02-hellomvc] → \rightarrow [src] → \rightarrow [main] → \rightarrow [java]文件夹下新建一个[com.yuhoutian.controller]文件夹,然后在[controller]文件夹下新建一个[HelloController.java]文件,紧接着在文件里添加以下代码,

package com.yuhoutian.controller;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloController implements Controller {

    public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {

        ModelAndView mv = new ModelAndView();

        //业务代码
        String result = "HelloSpringMVC";
        mv.addObject("msg", result);

        //视图跳转
        mv.setViewName("test");

        return mv;
    }
}

7、到这里,代码就全部完成了!接着是配置Tomcat,具体如何配置在《一个简单的web项目,用Servlet实现一个简单的页面访问》一文中有详细介绍,有需要的小伙伴请自行前往查看,这里就不赘述了,配置完Tomcat就可以运行项目了。
8、最后,我再帮你们捋一下流程调用:
在这里插入图片描述

  • 首先,用户在浏览器上输入网址[http://localhost:8080/hello]后回车,

在这里插入图片描述

  • 回车后用户想访问该网址的请求便会被DispatcherServlet接收,接着DispatcherServlet便会在类路径下搜索[springmvc-servlet.xml]文件并执行它

在这里插入图片描述

  • 在[springmvc-servlet.xml]文件中,首先运行处理器映射器,它会映射到[/hello],接着运行处理器适配器,它会找到并运行[com.yuhoutian.controller.HelloController]文件,

在这里插入图片描述

  • 运行[com.yuhoutian.controller.HelloController]文件后,最终是返回一个[ModelAndView(视图)],[ModelAndView(视图)]里有两部分,一个是业务代码,它会将要显示的内容[HelloSpringMVC]赋给[msg],然后给到[test.jsp] 文件获取并显示出来,另一个是视图跳转,它会回到[springmvc-servlet.xml]文件中的视图解析器,视图解析器会对其进行解析拼接,加上前缀后缀,最终拼接出[/WEB-INF/jsp/test.jsp],

在这里插入图片描述
在这里插入图片描述

五、测试及结果

在这里插入图片描述
所有内容就到这里了,希望对你们有所帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨后天555

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值