当前位置: 首页 > article >正文

SpringMVC的初理解

1. SpringMVC是对表述层(Controller)解决方案

主要是        1.简化前端参数接收( 形参列表 )

                   2.简化后端数据响应(返回值)

1.数据的接受

        1.路径的匹配 使用@RequestMapping(可以在类上或在方法上),支持模糊查询,在内部有method附带请求方式限制(有Post,get ,put delete).有GetMapping,PostMapping

        2.接受参数:(如果不是接受视图的,使用@ResponseBody)

                        1.params的参数:@RequestParam

                        2.路径的参数:在@RequestMapping使用{},使用@PathVaribale

                        3.json的数据:@RequestBody(需要配置jackson的Maven包在config中使用@

EnbaleWebMvc)

                        4.Cookie的数据:@CookieValue

                        5.获得请求头的数据:@RequestHeader

  2.响应数据:1.转发(forward:/*)与重定向(redirect:/*):

                                2.返回json的数据:@EnableWebMvc,在方法使用@ResponseBody

                                3.返回静态的资源:(在config中)

   //开启静态资源处理 <mvc:default-servlet-handler/>
    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }

3.使用RESTFul的风格:

                1.使用路径的命名

                2.使用什么参数响应

                3.使用什么方式请求

                

在命名的时候,建议不要去用动词(URL的路径要求.

总结:使用put与Post使用Json参数请求,而使用delete ,get 使用 param 与路径,返回值只有一个时,使用路径。

        4.SpringMvc的其他:

                        1.全局的异常处理:申明一个advice的类,@ResponseBody与@ControllerAdvicec

在类中写异常信息,使用@ExceptionHandle

                        2.使用拦截器:(在请求handle前,后与请求视图后),接口是WebMvcConfigurer

                                使用preHandle ,postHandle,afterCompletion方法,addInterceptRegistry,excludePathpatterns

                        3.参数校验:使用JSR303,需要区别@NotNull,@NotEmpty,@NotBlank

                             如果出现了异常,使用BindingResult(必须要与参数相邻)

                                


http://www.kler.cn/a/308688.html

相关文章:

  • 设计模式练习(一) 单例模式
  • 11张思维导图带你快速学习java
  • GISBox VS ArcGIS:分别适用于大型和小型项目的两款GIS软件
  • stringUtils详细解释
  • EasyExcel 使用多线程按顺序导出数据
  • 【贪心算法】No.1---贪心算法(1)
  • ZooKeeper远程连接超时排查与解决
  • for循环的break和continue
  • Linux:用户账号管理和组账号管理
  • 如何保证Redis和MySQL两者之间数据的一致性
  • Tesseract:在线高性能表结构变更方法(VLDB23)
  • Conda安装和使用(ubuntu)
  • 在petalinux工程里添加iperf
  • Unity实战案例全解析 :PVZ 植物脚本分析
  • linux git配置kdiff3工具解决冲突
  • C语言11--特殊函数
  • git删除本地分支报错:error: the branch ‘xxx‘ is not fully merged
  • 1分钟解决 -bash: mvn: command not found,在Centos 7中安装Maven
  • 【代码随想录训练营第42期 Day58打卡 - 图论Part8 - 拓扑排序
  • 微信小程序----日期时间选择器(自定义时间精确到分秒)
  • Redis -- 全记录(面试)
  • tensor连接和拆分
  • mysql学习教程,从入门到精通,MySQL 子查询 子句(11)
  • 高级I/O知识分享【epoll || Reactor ET,LT模式】
  • Numba基础
  • vue.nextTick()方法的使用