• Spring MVC基本配置和实现(四)



    1.参数绑定:(从请求中接收参数)
      1)默认支持的类型:Request,Response,Session,Model
      2)基本数据类型(包含String)
      3)Pojo类型
      4)Vo类型
      5)Converter自定义转换器
      6)数组
      7)List

    2.controller方法返回值(指定返回到哪个页面(view), 指定返回到页面的数据(model))
      1)ModelAndView
        modelAndView.addObject("itemList", list); 指定返回页面的数据
        modelAndView.setViewName("itemList"); 指定返回的页面
      2)String(推荐使用)
        返回普通字符串,就是页面去掉扩展名的名称, 返回给页面数据通过Model来完成
        返回的字符串以forward:开头为请求转发
        返回的字符串以redirect:开头为重定向
      3)返回void(使用它破坏了springMvc的结构,所以不建议使用)
        可以使用request.setAttribut 来给页面返回数据
        可以使用request.getRquestDispatcher().forward()来指定返回的页面
        如果controller返回值为void则不走springMVC的组件,所以要写页面的完整路径名称

    相对路径:相对于当前目录,也就是在当前类的目录下,这时候可以使用相对路径跳转
    绝对路径:从项目名(Application context)后开始.
      在springMvc中,不管是forward还是redirect,凡是以/开头的为绝对路径,不以/开头的为相对路径
      例如:forward:/items/itemEdit.action 为绝对路径;forward:itemEdit.action 为相对路径

    3.架构级别异常处理:
      主要为了防止项目上线后给用户抛500等异常信息,所以需要在架构级别上整体处理.hold住异常
      首先自定义全局异常处理器实现HandlerExceptionResolver接口
      在spirngMvc.xml中配置生效

    4.上传图片:
      1)在tomcat中配置虚拟图片服务器
      2)导入fileupload的jar包
      3)在springMvc.xml中配置上传组件
      4)在页面上编写上传域,更改form标签的类型
      5)在controller方法中可以使用MultiPartFile接口接收上传的图片
      6)将文件名保存到数据库,将图片保存到磁盘中

    5.Json数据交互:
      需要加入jackson的jar包
      @Requestbody:将页面传到controller中的json格式字符串自动转换成java的pojo对象
      @ResponseBody:将java中pojo对象自动转换成json格式字符串返回给页面

    6.RestFul支持:
      就是对url的命名标准,要求url中只有能名词,没有动词(不严格要求),但是要求url中不能用问号?
      传参参数:
        页面:${pageContext.request.contextPath }/items/itemEdit/${item.id}
        方法: @RquestMapping("/itemEdit/{id}")
        方法: @PathVariable("id") Integer idd

    7.拦截器:
      作用:拦截请求,一般做登录权限验证时用的比较多
      1)需要编写自定义拦截器类,实现HandlerInterceptor接口
      2)在spirngMvc.xml中配置拦截器生效

    8.登录权限验证:
      1)编写登录的controller, 编写跳转到登录页面的方法, 编写登录验证方法
      2)编写登录页面
      3)编写拦截器

    运行过程:
      1)访问随意一个页面,拦截器会拦截请求,会验证session中是否有登录信息
        如果已登录,放行
        如果未登录,跳转到登录页面
      2)在登录页面中输入用户名,密码,点击登录按钮,拦截器会拦截请求,如果是登录路径放行
        在controller方法中判断用户名密码是否正确,如果正确则将登录信息放入session

  • 相关阅读:
    一个网络传输框架——zeroMQ 调研笔记
    Node.js的cluster模块——Web后端多进程服务
    boost::spirit unicode 简用记录
    HTTP的长连接和短连接——Node上的测试
    MongoDB 驱动以及分布式集群读取优先级设置
    Lua知识备忘录
    MongoDB使用小结:一些常用操作分享
    此项目与Visual Studio的当前版本不兼容的报错
    @Controller和@RestController的区别
    SQLSERVER中计算某个字段中用分隔符分割的字符的个数
  • 原文地址:https://www.cnblogs.com/echo1937/p/6581461.html
Copyright © 2020-2023  润新知