栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringMVC——快速入门、组件解析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringMVC——快速入门、组件解析

SpringMVC简介 SpringMVC概述

SpringMVC是一种基于Java的实现MVC设计模型的请求驱动类型的轻量级Web框架,属于SpringframeWork的后续产品,已经融合在Spring Web Flow中。SpringMVC已经成为目前最主流的MVC框架之一,并且随着Spring3.0的发布,全面超越Struts2,成为最优秀的MVC框架。他通过一套注解,让一个简单的Java类成为处理请求的控制器,而无需实现任何接口。同时他还支持RESTful编程风格的请求。 SpringMVC快速入门

需求:客户端发起请求,服务器端接收请求,执行逻辑并进行视图跳转

开发步骤:

    导入SpringMVC相关坐标

    
        org.springframework
        spring-webmvc
        5.3.16
    
    

    web.xml中配置SpringMVC核心控制器DispatcherServlet

    
        DispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
        
            contextConfigLocation
            classpath:spring-mvc.xml
        
        1
    
    
        DispatcherServlet
        /
    
    

    创建Controller类和视图页面

    package com.study.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    
    @Controller("userController")
    public class UserController {
        @RequestMapping("/quick")
        public String save(){
            System.err.println("UserController save running...");
            return "success.jsp";
        }
    }
    
    <%--
      Created by IntelliJ IDEA.
      User: 64797
      Date: 2022/3/3
      Time: 0:46
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    
    
        Title
    
    
        Success!
    
    
    

    使用注解配置Controller类中业务方法的映射地址

    @Controller("userController")
    public class UserController {
        @RequestMapping("/quick")
        public String save(){
        
        }
    }
    

    配置SpringMVC核心文件spring-mvc.xml

    
    
    
        
        
    
    
    

    客户端发起请求测试

代码运行逻辑:

SpringMVC流程图示

SpringMVC的组件解析 SpringMVC的相关组件

前端控制器:DispatcherServlet处理器映射器:HandlerMapping处理器适配器:HandlerAdapter处理器:Handler视图解析器:ViewResolver视图:View SpringMVC的执行流程

    客户端发送请求至前端控制器DispatcherServletDispatcherServlet收到请求调用HandlerMapping处理器映射器处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截对象(如果有则生成)一并返回给DispatcherServletDispatcherServlet调用HandlerAdapter处理器适配器HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)Controller执行完毕返回ModelAndViewHandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServletDispatcherServlet将ModelAndView传给ViewResolver视图解析器ViewResolver解析后返回具体ViewDispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中),DispatcherServlet响应用户。
SpringMVC注解解析

请求映射注解:@RequestMapping

作用:用于建立请求URL和处理请求方法之间的对应关系位置:

类上,请求URL的第一级访问目录,此处不写的话,就相当于应用的根目录方法上,请求URL的第二级访问目录,与类上的使用@RequestMapping标注的一级目录一起组成访问虚拟路径 属性:

value:用于指定请求的URL,他和path属性的作用是一样的method:用于指定请求方式,如post、getparams:用于指定限制请求参数的条件,它支持简单的表达式,要求请求参数的key和value必须和配置的一模一样。例如:params = {“accountName”},表示请求参数必须有accountName;params = {“money!=100”},表示请求参数中money不能是100 MVC命名空间引入

组件扫描

SpringMVC基于Spring容器,所以在进行SpringMVC操作时,需要将Controller存储到Spring容器中,如果使用@Controller注解标注的话,就需要使用进行组件扫描。

SpringMVC的XML配置解析

视图解析器

SpringMVC有默认组件配置,默认组件都是DispatcherServlet.properties配置文件中配置的,该配置文件的地址是org/springframework/web/servlet/DispatcherServlet.propert,该文件中配置了默认的视图解析器,如下:

org.springframework.web.servlet.ViewResolver = org.springframework.web.servlet.view.InternalResourceViewResolver

翻看该解析器源码,可以看到该解析器的默认设置,如下:

REDIRECT_URL_PREFIX = "redirect:"	-- 重定向前缀
FORWARD_URL_PREFIX = "forward:"		-- 转发前缀(默认值)
prefix = ""		-- 视图名称前缀
suffix = ""		-- 视图名称后缀

代码实例:


   
   
   

package com.study.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;


@Controller("userController")
public class UserController {
    @RequestMapping("/quick")
    public String save(){
        System.out.println("UserController save running...");
        // return "/jsp/success.jsp";
        return "success";
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/755764.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号