springMvc作用:
    a) 接收请求中的参数
    b) 将处理好的数据返回给页面
参数绑定(就是从请求中接收参数):
    a) 默认支持的类型: request, response, session, model
        可以在接收参数时加上也可以去掉, 看自己需要
    b) 简单类型: string, double,integer, long, boolean等
        要求: 要求页面上input框的name属性值必须等于接收时的变量名称
    c) pojo类型:
        要求: 要求页面上input框的name属性值必须等于pojo中的属性名称
    d) QueryVo:
        要求: 页面上input框的name属性值必须等于vo中的属性.属性.属性....
    e) converter转换器:
        可以转换类型, 对于像字符串转日期这样springMvc不能进行自动类型转换的,我们可以自己写.

高级参数绑定(从请求中接收参数)
    1. 数组:
        需求: 批量删除
        要求:要求页面上input框的name属性值必须等于vo中的属性名称
    2. list:
        需求: 批量修改
        要求: 页面上input框的name属性值必须
            等于vo中的itemsList+[索引下标]+.list中泛型的属性名称

@RequestMapping用法:
    1. 用在方法上: @RequestMapping标记url到请求方法的映射
    2. 用在类上: 窄化请求映射
    3. 限制请求方式的类型: 如果限制的请求类型, 而访问的类型不匹配会报405错误
        @RequestMapping(value="/list", method=RequestMethod.POST)
        public ModelAndView list123() throws Exception{

controller方法返回值:
    1. ModelAndView :可以将返回给页面的数据放入model中, 通过view来指定页面的路径
    2. String :(推荐使用)
        a) 返回普通字符串就认为是页面的路径, 可以借助默认支持的参数Model将数据返回给页面
        b) 请求转发: 浏览器中url不发生改变, request域中的数据可以带到转发后的方法中
            springMvc中请求转发, 返回以forward:字符串开头后面跟转发的url路径
            request.setAttribute("id", items.getId());
            model.addAttribute("id", items.getId());
            return "forward:toEdit.action";

c) 重定向: 浏览器中url发生改变, request域中的数据不可以带到重定向后的方法中
            springMvc中重定向,返回以redirect:字符串开头, 后面跟重定向的url路径
            不管是请求转发还是重定向, model中的数据都可以带到请求转发或者是重定向后的方法中
            request.setAttribute("id", items.getId());
            model.addAttribute("id", items.getId());
            return "redirect:toEdit.action";

相对路径和绝对路径问题:
            相对路径: url中相对于当前路径
            forward:或者是redirect:字符串后不以斜杠/开头的
            绝对路径: url中从项目名后开始算
            forward:或者是redirect:字符串后以斜杠/开头的
            一般在当前类方法的目录中跳转使用相对路径,
            如果跳转到其它类的方法中使用绝对路径
    3. void:
    //推荐ajax的时候使用, 其它时候一般不推荐使用
    //如果controller方法返回值为void, 还想跳转到页面就需要使用原生的request和response,这样就破坏了springMvc
    //的体系结构, 就不走视图解析器, 所以需要写页面的完整的路径,

Springmvc中异常处理(架构级别的异常处理)
    异常分类:
        a) 运行时异常   就是bug
        b) 自定义异常    可以自己定义一些业务级别异常

图片上传:
    springMvc有上传的接口, 但是没有实现, 所以需要第三方实现

json数据交互:
    springMvc中有对json的支持的接口但是没有实现, 所以需要第三方的实现, 比如 jackson杰克逊的jar包
    @RequestBody可以将json格式的字符串自动转换成java中的对象, 要求json中的key必须等于pojo中的属性名称
    @ResponseBody可以将返回的java对象自动转换成json格式字符串返回给页面

Springmvc实现Restful
    就是对url的一个命名规范, 最早出自于一个博士的论文,后来一些大企业看到后逐渐推广开.
    要求: url中只有名词没有动词(一般国人英文水平不太好,所以不强制要求), 不能有问号传参数
    提交数据路径: ${pageContext.request.contextPath }/items/toEdit/${item.id}
    controller中接收:
        @RequestMapping("/toEdit/{id}")
        public String toEdit123(@PathVariable("id")Integer id,
    
拦截器:
    作用: 拦截请求, 一般做登录权限验证使用比较多
    单个拦截器执行顺序:
        ===Interceptor1====preHandle==
        ===Interceptor1====postHandle==
        ===Interceptor1====afterCompletion==

多个拦截器的执行顺序: 等于springMvc.xml文件中对拦截的配置顺序

作业: 用户登录权限验证
登录页面: 用户名, 密码框, 登录按钮
登录controller:
    a) 跳转到登录页面方法
    b) 登录的用户名密码提交到此方法进行验证, 如果登录成功, 将登录信息写入session, 并跳转到首页
        如果没有登录成功,则跳转到登录页面重新进行登录
拦截器: 拦截所有请求
    放行登录controller中的所有方法
    判断session中是否有用户的登录信息
    如果有则放行, 如果没有跳转到登录页面进行登录

SpringMVC参数绑定总结的更多相关文章

  1. 一篇文章搞定SpringMVC参数绑定

    SpringMVC参数绑定,简单来说就是将客户端请求的key/value数据绑定到controller方法的形参上,然后就可以在controller中使用该参数了 下面通过5个常用的注解演示下如何进行 ...

  2. [转载]SpringBoot系列: SpringMVC 参数绑定注解解析

    本文转载自 https://www.cnblogs.com/morethink/p/8028664.html, 作者写得非常好, 致谢! SpringMVC 参数绑定注解解析   本文介绍了用于参数绑 ...

  3. SpringMVC参数绑定,这篇就够了!

    SpringMVC参数绑定,简单来说就是将客户端请求的key/value数据绑定到controller方法的形参上,然后就可以在controller中使用该参数了 下面通过5个常用的注解演示下如何进行 ...

  4. SpringMvc参数绑定出现乱码解决方法

    在SpringMvc参数绑定过程中出现乱码的解决方法 1.post参数乱码的解决方法 在web.xml中添加过滤器 <!-- 过滤器 处理post乱码 --> <filter> ...

  5. SpringMVC参数绑定(未完待续)

    1. Strut2与SpringMVC接收请求参数的区别 Struts2通过action类的成员变量接收SpringMVC通过controller方法的形参接收 2. SpringMVC参数绑定流程 ...

  6. SpringMVC参数绑定(从请求中接受参数)

    参数绑定(从请求中接收参数) 1)默认类型: 在controller方法中可以有也可以没有,看自己需求随意添加. httpservletRqeust,httpServletResponse,httpS ...

  7. SpringMVC 参数绑定注解解析

    本文介绍了用于参数绑定的相关注解. 绑定:将请求中的字段按照名字匹配的原则填入模型对象. SpringMVC就跟Struts2一样,通过拦截器进行参数匹配. 代码在 https://github.co ...

  8. SpringMVC参数绑定(四)

    1.默认支持的参数类型 处理器形参中添加如下类型的参数处理适配器会默认识别并进行赋值. HttpServletRequest 通过request对象获取请求信息 HttpServletResponse ...

  9. SpringMVC参数绑定、Post乱码解决方法

    从客户端请求key/value数据,经过参数绑定,将key/value数据绑定到controller方法的形参上. springmvc中,接收页面提交的数据是通过方法形参来接收.而不是在control ...

随机推荐

  1. 在Ubuntu下安装lrzsz

    目录 自动安装 手动安装 下载 解压 安装 创建连接 在Ubuntu 14.04x64下安装lrzsz 自动安装 在终端中,输入命令 sudo apt-get install lrzsz 由于一些原因 ...

  2. 自建yum仓库,分别为网络源和本地源

    配置本地源 建立本地源目录 [root@qingcheng-db lgp]#mkdir /mnt/cdrom [root@qingcheng-db lgp]#mkdir /yum 挂载Centos光盘 ...

  3. C++实现简单学生管理系统

    在网上看到的一个C++的小项目,我自己码了一遍,然后记录下我的理解以及像我这种菜鸟在整个过程中产生的问题. 我将我知道的尽可能详细的写下来,如有错误请联系我哈,QQ:920209178. 原文地址:h ...

  4. 18.18 Datasheet Note

    18.18.1 DM9000A datasheet Ethernet Controller with General Processor Interface Ethernet interface pr ...

  5. QQ群成员发言次数统计(词云制作)

    所用数据来自于之前的一篇博客: <QQ群成员发言次数统计(正则表达式版)> 链接:http://www.cnblogs.com/liyongzhao/p/3324026.html 1.首先 ...

  6. 路径规划(1)--连接GPS接收端

    从淘宝上入手的GPS接收端U-BLOX M8N,带UART串口连接线. 一.打开树莓派上的UART串口通信 1.下载pi3-miniuart-bt-overlay.dtb,并将dtb文件拷贝到/boo ...

  7. 黄聪:C#中CefSharp的简单使用

    C#中CefSharp的简单使用 https://blog.csdn.net/qq_26712977/article/details/78282995

  8. ThinkPHP3.2 中空方法、空控制器和空模块的设置

    ThinkPHP3.2 中空方法.空控制器和空模块的设置 1.空方法设置 问题: 当你访问一个不存在的方法的时候: 如: http://localhost/test/index.php/Home/Us ...

  9. 2018-2019-2 20175227张雪莹《Java程序设计》 实验二《Java面向对象程序设计》

    2018-2019-2 20175227张雪莹<Java程序设计> 实验二<Java面向对象程序设计> 实验报告封面 课程:Java程序设计 班级:1752班 姓名:张雪莹 学 ...

  10. [转]C# 4.7.2 安装

    遇到提示 “无法建立到信任根颁发机构的证书链” 下载地址:https://files.cnblogs.com/files/z5337/NetFramework%E8%AF%81%E4%B9%A6.ra ...