• springmvc1:初探springmvc


    一.springmvc简介

    1.springmvc是什么?

    ①mvc解释

    • m:模型层(javabean处理数据)例如pojo类 Service或Dao
    • v:视图层(页面展示数据)
    • c:控制层(接受请求和响应浏览器)

    ②web三层架构

    • 表述层:jsp和servlet
    • 业务层:service
    • 数据访问层:dao

    ③springmvc

    • springmvc是开发表述层的一套完整方案(即视图层和控制层)

    2.springmvc的特点是什么?

    • 与IOC容器无缝衔接
    • 功能强大的前端控制器DispatcherServlet对请求和响应统一处理

    二.入门环节

    1.引入依赖

    2.配置web.xml

    ①配置springMVC的前端控制器

    • 注意:对所有请求进行控制
    • / 所匹配的是全部除了jsp请求,因为jsp请求tomocat有控制器
    • /*是全部包括jsp请求
    • 这里设置为/

    3.设置springmvc的配置文件

    ①web.xml中配置springmvc的路径

    • 因为配置文件都需放在resources下
    • 故我们需要在web.xml中声明springmvc的配置文件的查找路径

    ②具体配置sprignmvc的文件

    • 配置IOC容器(注解加扫描)
    • 配置thymeleaf视图解析器
      • 视图前缀:可以在访问视图时自动加上视图前缀 /WEB-INF/templates/(网页放在该路径下)
      • 视图后缀:可以在访问视图时自动加上视图后缀 .html(网页用html来写)
    • 开启mvc注解驱动(利用mvc的注解来实现访问controller)

    4.controller类的编写

    ①加入IOC容器扫描的注解

    • @controller

    ②加入处理请求的注解

    • @requestMapping(“/”)

    ③测试跳转

    • 在超链接中:@{/hello} 来声明跳转位置
    • 在@requestMapping(“/hello”) 来声明处理的地址

    5.执行情况总结

    ①执行过程

    • 浏览器发送请求
    • 请求地址符合web.xml中配置url-pattern中配置的前端控制器,请求被前端控制器处理
    • 前端控制器读取springmvc的核心配置文件
      • 通过扫描组件找到控制器
      • 将请求地址和控制器中的@requestMapping(“”) 注解的value匹配,匹配成功,则处理请求
    • 处理请求返回一个字符串视图名称
    • 字符串被视图解析器解析
    • 加上前缀和后缀,通过thymeleaf渲染,最终转发到相应的页面

    ②注意

    • 即springmvc配置文件初始化
      • IOC容器
      • mvc注解驱动
      • 视图解析器

    三.requestMapping注解

    1.注解架构

    在这里插入图片描述

    2.注解细节

    ①路径占位符

    • 目的:地址中不需要以键值对的形式传入数据,只需传入一个值(值),在注解处声明该值的键(键)即可
    <a th:href="@{/testRest/1/admin}">测试路径中的占位符-->/testResta><br>
    @RequestMapping("/testRest/{id}/{username}")
    public String testRest(@PathVariable("id") String id, @PathVariable("username")
    String username){
    System.out.println("id:"+id+",username:"+username);
    return "success";
    }
    //最终输出的内容为-->id:1,username:admin
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    四.获取请求参数

    1.框架

    在这里插入图片描述

    2.注意点

    ①解决获取请求参数乱码问题

    • 解决获取请求参数的乱码问题,可以使用SpringMVC提供的编码过滤器CharacterEncodingFilter,但是必须在web.xml中进行注册

    ②创建请求参数和形参的映射关系的三个属性(作用在形参上)

    • value:指定为形参赋值的请求参数的参数名
    • required:设置是否必须传输该参数
    • defaultValue:如果没传值或传输为“”则赋值为默认值

    五.域对象共享数据

    1.框架

    在这里插入图片描述

    2.注意点

    ①如何实现共享数据(最后都封装为ModelAndView)

    • 形参设置为 request,session,model,map,modelmap
      • setAttribute(request,session)
      • addAttribute(model,modelmap),put(map)
    • 返回值设置为 ModelAndView
      • addObject

    ②如何实现页面跳转

    • 返回值设置为String 直接返回页面名称(其他交给视图解析器)
    • 返回值设置为ModelAndView
      • setViewName

    六.SpringMVC视图

    1.框架

    在这里插入图片描述

    2.注意点

    ①thymeleaf和转发视图的区别

    • 有前缀时,此时创建名为internalresourceview视图,不会被springmvc文件中的视图解析器解析
    • 无前缀时,此时创建名为ThymeleafViewResolver视图,会被springmvc文件中的视图解析器解析
    • 故有前缀时,访问网页需要写全绝对路径

    ②redirect(绝对路径默认为 http://localhost:8080无上下文路径)

    • redirect创建redirectview视图,重定向视图会被自动在绝对路径前加上下文路径
    • 重定向访问网页也许写全绝对路径

    ②视图控制器

    • 设置视图控制器后,其他控制器上的所有映射全部消失,此时需要设置开启mvc注解驱动
  • 相关阅读:
    SpringBoot学习之注解校验参数@Validated@Valid
    四川古力未来科技抖音小店:科技新宠,购物新体验
    Go语言 String 简介
    小程序中Java后台调用接口(getAccessToken)获取调用凭据,调用接口(msgSecCheck)检测文本内容是否安全--最终版
    OptiFDTD应用:用于光纤入波导耦合的硅纳米锥仿真
    药物研发检测记录模板-0903不溶性微粒检查法检验原始记录
    HTML网页制作代码——简约的旅游图文相册博客HTML模板(12页)HTML+CSS+JavaScript 静态HTML旅行主题网页作业
    MCE | 神经元为胰腺癌细胞提供营养
    Vue跨域详解
    使用 Apache Kafka 进行发布-订阅通信中的微服务
  • 原文地址:https://blog.csdn.net/qq_44724899/article/details/127739712