SpringMVC-lesson02-hellospringmvc-2023-03-21

发布时间 2023-03-22 21:10:47作者: Rui2022

参考网页:https://www.kuangstudy.com/bbs/1618521039124783105

第1步:注册web.xml,注册DispatcherServlet

<?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-->
        <servlet>
            <servlet-name>springmvc</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <!--关联一个springmvc的配置文件:[servlet-name]-servlet.xml-->
            <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>

    </web-app>

第2步,在resources文件下写一个springmvc-servlet.xml 并添加3个:添加 处理器映射器 (HandlerMapping),添加 处理器适配器 (HandlerAdapter) 添加 视图解析器 (ViewResolver)

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

    <!--视图解析器:DispatcherServlet给他的ModelAndView-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver">
        <!--前缀-->
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <!--后缀-->
        <property name="suffix" value=".jsp"/>
    </bean>

    <!--Handler-->
    <bean id="/hello" class="com.feijian.controller.HelloController"/>
</beans>

第3步 编写我们要操作业务HelloController类 ,实现Controller接口,要么增加注解;需要返回一个ModelAndView,装数据,封视图;

package com.feijian.controller;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//注意:这里我们先导入Controller接口
public class HelloController implements Controller {
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        //ModelAndView 模型和视图
        ModelAndView mv = new ModelAndView();
        //封装对象,放在ModelAndView中。Model
        mv.addObject("msg","HelloSpringMVC!");
        //封装要跳转的视图,放在ModelAndView中
        mv.setViewName("hello"); //: /WEB-INF/jsp/hello.jsp
        return mv;
    }
}

第4步,将HelloController 注册到Springmvc-servlet.xml中

<!--Handler-->
<bean id="/hello" class="com.feijian.controller.HelloController"/>

写要跳转的jsp页面,显示ModelandView存放的数据,以及我们的正常页面; 在WEB-INF文件夹下新建jsp文件夹,新建hello.jsp, 输入¥{msg}

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2023/3/21
  Time: 20:11
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

    ${msg}

</body>
</html>

配置Tomcat

访问出现404,排查步骤:

查看控制台输出,看一下是不是缺少了什么jar包。

如果jar包存在,显示无法输出,就在IDEA的项目发布中,添加lib依赖!

选择项目结构,选择第二个module 在WEB-INF文件夹下新建一个lib文件夹,将所有的jar包导入到lib文件夹中

重启Tomcat 即可解决!