SpringMVC的配置解析

88 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第16天,点击查看活动详情

哈喽,大家好!我是Why,一名在读学生,目前刚刚开始进入自己的编程学习生涯。虽然学习起步较晚,但我坚信做了才有0或1的可能。学了一段时间以后也是选择在掘金上分享自己的日常笔记,也希望能够在众多道友的大家庭中打成一片。 本文主要讲解SpringMVC的配置解析,如果大家读后觉得有用的话,还请大家多多支持博主:欢迎 ❤️点赞👍、收藏⭐、留言💬 ✨✨✨个人主页:JinHuan

SpringMVC的配置解析
 <!--
 springmvc的配置解析:
     1、servlet-class:前端控制器的完全限定名,在spring-webmvc-5.3.5RELEASE.jar包中的org.springframework.web.servlet下
     2、load-on-startup:标记是否在web服务器(例如本例的tomcat)启动时会创建这个Servlet实体类,即是否在web服务器启动时调用执       行该Servlet的init()方法,而不是在真正访问时才创建。要求取值是整数
             值大于0:表示容器在启动时就加载并初始化这个Servlet,数值越小,该Servlet的优先级就越高,其被创建的时间也就越早
             值小于0或者省略:表示该Servlet在真正被使用的时候才会被创建
             值相同:容器会自己选择创建的先后顺序
     3、url-patten:可以写为 / ,可以写为 *do、*action、*mvc等形式
     4、init-param:表示了springmvc配置文件的名称和位置。如果没有配置,默认在项目的WEB-INF的目录下找名称为Servlet 名称-        servlet.xml的配置文件。如果没有配置,启用默认的规则:即如果配置文件放在webapp/WEB-INF/目录下,并且配置文件的名字等       于DIspatcherServlet的名字 + -servlet(即在这里的配置文件路径是 webapp/WEB-INF/dispatcherServlet-servlet.xml),
        如果是这样的话,可以不用添加init-param参数,即不用手动配置springmvc的配置文件,框架会自动加载。
        而一般情况下,配置文件是放在类路径下,即resources目录下。所以在注册前端控制器的时候,还需要设置查找springmvc配            置文件路径。
         其中contextConfigLocation属性:来自DispatcherServlet的父类FramworkServlet,该类中的contextConfigLocation属性         用来配置springmvc的路径和名称 
 -->
创建控制器
 package com.jinhuan.controller;
 ​
 import com.jinhuan.service.TeamService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.servlet.ModelAndView;
 ​
 /**
  * @Author jinhuan
  * @Date 2022/7/14 8:08
  * Description:
  */
 @Controller
 @RequestMapping("team")
 public class TeamController {
     @Autowired
     private TeamService teamService;
 ​
     @RequestMapping("/hello.do")
     public ModelAndView add(){
         System.out.println("TeamController---add()-----");
         teamService.add();
         ModelAndView modelAndView = new ModelAndView();
         //相当于request.setAttribute(key,value);
         modelAndView.addObject("teamName","森林狼");
         //未来经过SpringMVC的视图解析器处理然后转换成物理资源路径,相当于 request.getResuestDispatcher("index.jsp").forward();
         modelAndView.setViewName("index");
         //经过InternalResourceViewResolver这个对象的处理之后,加上了前后缀就变成了 /jsp/index.jsp
         return modelAndView;
     }
 }
 package com.jinhuan.service;
 ​
 import org.springframework.stereotype.Service;
 ​
 /**
  * @Author jinhuan
  * @Date 2022/7/14 8:07
  * Description:
  */
 @Service
 public class TeamService {
     public void add(){
         System.out.println("TeamService---add()---");
     }
 }
配置视图解析器

在springmvc.xml配置文件中添加视图解析器的配置

 <!--配置视图解析器-->
 <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
     <property name="prefix" value="/jsp/"/><!--这里的路径就是jsp的路径,有文件夹就加上文件夹-->
     <property name="suffix" value=".jsp"/>
 </bean>
 <mvc:annotation-driven/>
 <!--
     annotation-driven是一种简写形式,也可以手动配置代替这种简写形式
     该注解会自动注册DefaultAnnotationHandlerMapping与AnnotationHandlerAdapter两个bean,是springMVC为@Controller分发用    于请求所必须的,解决了@Controller分发用户请求所必须的,解决了@Controller注解使用的前提配置
     同时它还提供了:数据绑定支持,@NumberFormatannotation支持,@Vaild支持,读写XML的支持(JAXB,读写JSON支持            (Jackson)。我们处理响应ajax请求时,就使用到了对json的支持(配置之后,在加入jackson的core和mapper包之后,不写配置文      件也能自动转换成JSON))
 -->
编写index.jsp页面
 <%--
   Created by IntelliJ IDEA.
   User: 尽欢
   Date: 2022/7/14
   Time: 8: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>
 <h1>---------index----------${teamName}</h1>
 </body>
 </html>
测试

image-20220714173247614

在该路径下访问hello.do

image-20220714173327620