Spring MVC学习笔记 —— 02 Spring MVC案例

一、第一个Spring MVC案例

1.创建 Maven 项目并添加相关的jar包

  在 pom.xml 文件下添加 dependency 依赖

<dependencies>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.8.0-M1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.3.8</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>2.3.3</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
    </dependencies>spring-webmvc
  • spring-webmvc-5.3.8.jar(必备)

  • javax.servlet-api-4.0.1.jar(必备)

  • javax.servlet.jsp-api-2.3.3.jar(必备)

  • jstl-1.2.jar(必备)

  • JUnit jar包:junit-jupiter-api-5.8.0-M1.jar(推荐,用于测试代码)

2.创建子项目,并添加web支持

3.配置web文件夹下的web.xml文件,步骤如下:

  1)注册 DispatcherServlet

  2)加载Spring MVC的配置文件:springmvc-servlet.xml

  3)设置创建 Servlet 实例的启动时机

  4)设置映射 Servlet 的对外访问路径

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <!-- 1.配置前端控制器DispatcherServlet -->
    <!-- SpringMVC核心 -->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <!-- 2.DispatcherServlet绑定Spring的配置文件  -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc-servlet.xml</param-value>
        </init-param>

        <!-- 3.设置启动级别  -->
        <!-- 启动顺序,数字越小,启动越早 -->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!-- 在SpringMVC中 url-pattern -->
    <!-- / : 匹配所有的请求  不匹配jsp页面 -->
    <!-- /*: 匹配所有的请求  包括匹配jsp页面 -->
    <!-- 4.设置映射Servlet的访问路径 -->
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app> 

  其中 servlet 标签中的 servlet-name 和 servlet-mapping 标签中的 servlet-name 值必须相同,因为通过 servlet 标签中的 servlet-name 标签映射到 servlet-class 标签中的值,最终访问 servlet-class 标签中的 class。

4.在 resources 文件夹下创建配置文件 springmvc-servlet.xml 

  1)配置处理器映射器 HandlerMapping

  2)配置处理器适配器 HandlerAdapter

  3)配置视图解析器 ViewReslover

<?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">

        <!-- 1.配置处理器映射器HandlerMapping -->
        <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

        <!-- 2.配置处理器适配器HandlerAdapter-->
        <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>

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

</beans>

  视图解析器中的 property 标签会自动为/WEB-INF/jsp/下的文件自动添加 jsp 后缀

5.创建对应的控制类Controller

  在java文件夹下创建存放控制器的包 com.autumn.controller ,创建 HelloController.java 文件

 

 

   编写我们要操作业务Controller ,实现 Controller 接口,并需要返回一个 ModelAndView

public class HelloController implements Controller {
    @Override
    public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
        ModelAndView modelAndView = new ModelAndView();

        //业务代码
        String result = "Welcome Spring MVC";
        modelAndView.addObject("msg" , result);

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

        return modelAndView;
    }
}

6.创建前端视图 , 并且和 HelloController.java 进行绑定

  创建test.jsp文件

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

${msg}

</body>
</html>

  test.jsp 和 HelloController.java 进行绑定

  在配置文件 springmvc-servlet.xml 进行注册和绑定

<!-- BeanNameUrlHandlerMapping -->
        <!-- id为http://localhost:8080/test 中的 test -->
        <bean id="/test" class="com.autumn.controller.HelloController"/>

7.运行

   在Tomcat中进行配置

 

 

   运行Tomcat

 

  跳转到test页面

 

 

 

 

 8.可能出现的问题:访问出现404

  • 查看控制台输出,看是否缺少了jar包
  • 如果jar包存在,显示无法输出,就在IDEA的项目发布中,添加lib依赖
  • 重启Tomcat 即可解决!
  • 显示进程被占用,一般是IDEA占用对应进程,重启IDEA即可解决问题

 

posted @ 2021-06-26 13:48  N1belungen  阅读(60)  评论(0)    收藏  举报