首页 > 其他分享 >SpringMVC-lesson02-hellospringmvc-2023-03-21

SpringMVC-lesson02-hellospringmvc-2023-03-21

时间:2023-03-21 21:02:38浏览次数:41  
标签:xml 03 21 SpringMVC 视图 文件夹 jsp ModelAndView servlet

参考网页: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 即可解决!

标签:xml,03,21,SpringMVC,视图,文件夹,jsp,ModelAndView,servlet
From: https://www.cnblogs.com/RUI2022/p/17241398.html

相关文章

  • 2023年3月21日(软件工程日报)
    今天主要内容,完成地铁app主页面及其跳转页面设计,具体情况在第一次结对作业中,之后学习数组适配器适用于纯文本的列表数据,简单适配器适用于带图标的列表数据。然而实际应......
  • 每日总结-23.3.21
    关于Androidstudio操作SQLite的方法packagecom.example.daka1;importandroid.content.ContentValues;importandroid.content.Context;importandroid.database.C......
  • 学习记录:day03笔记
    一、数据类型为什么要对数据进行分类?1、现实中的数据就是自带类别属性的2、对数据进行分类可以节约内存存储空间、提高运行速度存储空间的单位:Bit比特存储1个......
  • 0316-0322面向对象编程
    0316-0322面向对象编程1.面向过程、对象概念#python中两大范式:1.面向过程2.面向对象'''两者都不是新的技术,而是做事的思维方式'''#面向过程的核心是过程:即按先后次......
  • 3.21每日总结
    packagecom;importjava.sql.*;publicclassDB{publicConnectionconn=null;publicStatementstmt=null;publicResultSetrs=null;S......
  • 3.21总结
    一、新建Newproject空项目存放地址CodeFile一个moduleJavasrc创建包package——com.zihan.hello包内创建类class二、注释 1.//注释单行;/**/注释多行;/***/......
  • COMP3221 Routing Algorithm
    Due:March31st,2023(Friday,Week6)by11:59PMCOMP3221Assignment1:RoutingAlgorithmThegoalofthisassignmentistoimplementroutingprotocolsforane......
  • 解决 no matching member function for call to 'connect'
    一般出现这个问题表示没有相应的成员函数调用connect;出现此原因有可能是采用的QT5的信号和槽机智,里面包含的信号或者槽有不同的参数,即二义性  因为这个信号valueChan......
  • 闲话 23.3.21
    闲话【碎片】0.8/1明天集训就结束了(同学们吃外卖吃够了吗(模拟赛T1会维护静态区间子区间mex和吧?不会?会维护静态区间mex吧?套个历史版本和就没了。mex是最小,mix......
  • 2023年3月21日
    计划写中期报告,写完最好看业务功能的实现执行09点32分 填写了考勤记录搞清楚接口调试是怎么回事,怎么弄的,然后写需求分析,画用例图,管理员登陆不上,不知道密码......