springMVC理解

这篇具有很好参考价值的文章主要介绍了springMVC理解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

springMVC是一种思想,将软件划分为,模型Model,视图View,控制器Controller。

MVC的工作原理:用户通过前端视图页面,发送请求到服务器,在服务器中请求被Controller接收,Controller调用相应的Model层处理请求,处理完毕返回到Controller,再根据请求处理的结果找到对应的视图,经过渲染数据后响应给浏览器。

springMVC基于servlet,封装了servlet的操作,构造了DispatcherServlet前端管理器,对请求和响应统一进行管理。

一、准备工作

1.使用

        创建maven项目,并添加web模块,定义打包方式为war包,在pom文件引入对应依赖坐标。

2. 配置web.xml

        注册前端管理器DispatcherServlet:定义<servlet>和<servlet-mapping>

                <url-pattern>定义了路径模型,当请求符合该路径,就会被DispatcherServlet进行处理

        这里使用     "   /   "  意思是除了jsp页面以外的所有请求,都会被拦截处理

        而jsp页面需要被tomcat的默认servlet来处理,前端控制器无法处理,所以使用"  /  "

springMVC理解,java

<init-param>是上下文配置路径,也就是加载spring MVC配置文件的路径

<;oad-on-startup>默认是第一次访问时进行初始化servlet,将该值设置为1,表示在服务器启动时就开始初始化DispatcherServlet

3. 创建请求控制器

        请求控制器就是一个个普通的pojo类,但需要@Controller声明为控制层组件bean,交给ioc容器,SpringMVC才识别的到。

4. 创建SpringMVC的配置文件,配置好web服务器后就可以了

        springMVC的配置文件默认处于WEB-INF目录下,但我们都会放到resources目录,

且名字是<servlet-name>-servlet.xml

        在配置文件中,定义组件扫描component-scan来扫描控制层组件

        然后配置thymeleaf的视图解析器,通过逻辑视图来实现页面的重定向和转发。这里使用其他的也可以

springMVC理解,java

二、自定义控制层Controller

        1.在控制层定义方法,通过注解@RequestMapping定义请求路径参数,或者按照Resuful风格,定义注解@GetMapping,@PostMapping,@DeleteMapping,@PutMapping,用法类似

        2.@RequestMapping标识的位置

        可以标识在类上,表示设置请求路径的基础信息,即抽取出相同的请求路径,这样方法中就不用再写出了

        可以标识在单个方法上标识,表示设置请求路径的具体信息。

           @RequestMapping的属性

                value:数组类型,意思是可以设置多个请求路径,也就是一个控制器方法可以处理若干个请求

                method:规定控制器方法在请求路径匹配的情况下,继续匹配请求方式get,post等等

                params:

springMVC理解,java

                headers:

springMVC理解,java

        3.ant风格的请求路径

使用         ?        表示任意的单个字符,除了它本身

使用         *        表示当前目录任意的0个或多个字符  

使用         **       表示任意层数的任意目录

        

        4.springMVC中获取请求参数的方式

               4.1 通过原生servletAPI:定义HttpServlet的形参,调用getParameter方法等等。

springMVC理解,java

                4.2 在springMVC中,只要控制器方法的参数列表和请求的参数保持一致,就可以自动完成接收。

springMVC理解,java

注意参数名称不一致的话,可以使用注解@RequestParam,表示给形参起别名,从而完成映射。

还有两个类似的注解:@RequestHeader用来将请求头的信息和控制器方法的形参绑定@CookieValue:将cookie数据和控制器方法的形参绑定。

                4.3 通过pojo类型获取参数,实际上和5.2一样,定义的pojo类,其中的属性名称必须和请求参数保持一致。

springMVC理解,java

springMVC理解,java

                4.4 接收PathVariable 路径参数

在路径中使用占位符 {} 动态表示,在控制器方法的参数列表用加上@PathVariable注解的形参进行接收,注意保持名称一致springMVC理解,java

                4.5 接收数组集合参数

                4.6 接收日期参数

                4.7 接收JSon数据

        5. springMVC的响应参数

                5.1 @ResponseBody

                5.2 统一响应结果

        定义一个Result类,该类的对象将来会转为json格式的字符串,作为响应结果返回给前端-- 

        6. 向请求域中共享数据

                6.1 使用原生servlet的setAttribute方法

                6.2 使用ModelAndView类进行共享,使用Model的功能向请求域共享数据,再使用View的视图功能设置逻辑视图,并且控制器方法一定要返回ModelAndView的对象作为返回值。

springMVC理解,java

                6.3 使用Model,ModelMap,Map

        Model:Model是接口类型,addAttribute和上面的addObject用法一样,定义一个属性名称和属性的值springMVC理解,java

        ModelMap:

springMVC理解,java

        Map:使用键值对的方式把属性名称和属性值存到map集合

springMVC理解,java

        7. springMVC实现文件的上传和下载

文件上传:

springMVC理解,java

文件下载:springMVC理解,java

        8.拦截器interceptor

自定义拦截器类,实现HandlerInterceptor接口,重写里面的三个抽象方法,添加业务逻辑

preHandle:在控制器方法执行前执行,返回值为是否放行,false代表拦截,true为放行

postHandle:在控制器方法执行后执行

afterCompletion:在控制器方法执行后,且视图渲染完毕后执行

然后把拦截器类上交ioc容器管理,作为bean组件

在springmvc的配置文件注册拦截器(记得包扫描):

        1.通过注解成为bean之后可以直接使用默认的bean名称注册

        2.不使用@component,则在xml重新定义一个bean来指定

        3.也可以使用,<mvc:interceptor>子标签,里面添加排除拦截的路径和拦截路径

springMVC理解,java

springMVC理解,java

springMVC理解,java文章来源地址https://www.toymoban.com/news/detail-853035.html

到了这里,关于springMVC理解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【手撕Spring源码】深度理解SpringMVC【上】

    既然我们讨论SpringMVC那么就必然绕不开一个东西叫做DispatcherServlet。 DispatcherServlet是SpringMVC的核心Servlet,也叫做前端控制器。它的主要作用是调度请求并将请求分发给相应的处理器。 我们要注意: DispatcherServlet由Servlet容器创建,并且它的生命周期也是Servlet那套体系由Servle

    2024年02月07日
    浏览(41)
  • “深入理解SpringMVC的JSON数据返回和异常处理机制“

    在现代Web开发中,SpringMVC是一个广泛使用的框架,它提供了丰富的功能和灵活的配置选项。本文将深入探讨两个重要的主题:SpringMVC中的JSON数据返回和异常处理机制。我们将逐步介绍相关的配置和使用方法,并通过案例和综合实例来加深理解。 1.1 导入依赖 1.2 配置弹簧-MVC

    2024年02月08日
    浏览(34)
  • Java SpringMvc

    java SpringMvc 拓展 1.SpringMvc 创建工程,导入依赖 配置 web.xml文件 配置Spring配置文件,resources目录下新建applicationContext.xml 控制层配置 新建list.jsp并测试 Web.xml详解 如果required是true必须要传参 设置默认值 用String替换modelAndView 视图解析器 2.拓展 创建工程 配置2个xml文件 和之前一

    2024年02月15日
    浏览(22)
  • 【Java基础】-【SpringMVC】

    MVC是一种设计模式,在这种模式下软件被分为三层,即Model(模型)、View(视图)、Controller(控制器)。 M:Model,模型层,指工程中的JavaBean,作用是处理数据 V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据 C:Controller,控制层,指工程中的

    2023年04月14日
    浏览(32)
  • java框架整合Springmvc+···+maven

    框架整合: Springmvc + Mybatis + Shiro(权限) + REST(服务) + WebService(服务) + JMS(消息) + Lucene(搜搜引擎) + Quartz(定时调度) + Bootstrap Html5(支持PC、IOS、Android) 系统模块: 1. 用户管理: 用户信息管理(添加、删除、修改、用户授权、用户栏目管理、查询等) 用户组管理(添加、删除

    2024年02月14日
    浏览(34)
  • Java SSM 重制版(二)SpringMvc

    进入之前: 《Spring核心内容》《JavaWeb》《JDK9-17新特性篇》 在前面学习完Spring框架技术之后,差不多会出现两批人:一批是听得云里雾里,依然不明白这个东西是干嘛的;还有一批就是差不多理解了核心思想,但是不知道这些东西该如何去发挥它的作用。不过没有关系,在

    2024年02月12日
    浏览(39)
  • 每日五道java面试题之springMVC篇(四)

    (1)转发:在返回值前面加\\\"forward:“,譬如\\\"forward:user.do?name=method4” (2)重定向:在返回值前面加\\\"redirect:“,譬如\\\"redirect:http://www.baidu.com” 通过Jackson框架就可以把Java里面的对象直接转化成Js可以识别的Json对象。具体步骤如下: (1)加入Jackson.jar (2)在配置文件中配置

    2024年03月19日
    浏览(43)
  • SpringMVC: Java Web应用开发的框架之选

    在当今的软件开发领域中,Web应用的需求不断增长。为了满足这种需求,各种Web框架应运而生。其中,SpringMVC作为一种优秀的Java Web框架,受到广泛关注和使用。本文将以文章的形式给您讲解SpringMVC的重要概念、工作原理和核心组件。 SpringMVC是基于Java的Web应用开发框架,它是

    2024年02月09日
    浏览(36)
  • Java框架学习(二)SSM体系:Spring、SpringMVC、MybatisPlus

    在原始的分层架构实现中,负责响应请求的Controller层依赖于业务逻辑处理的Service层,而业务逻辑处理的service层又依赖与数据访问Dao层。上下层间相互依赖耦合,耦合的缺陷在于牵一发而动全身,不利于后期维护拓展。 为了分层解耦,Spring采用IoC控制反转和DI依赖注入,来解

    2024年02月11日
    浏览(51)
  • 社区团购小程序(JSP+java+springmvc+mysql+MyBatis)

    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。   随着移动互联网的普及和电子商务的发展,越来越多的消费者选择在网上购物。同时,社区团购作为一种新型的购物方式,也越来越受到消费者的欢迎。然而,传统的手工管理

    2024年02月03日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包