zoukankan      html  css  js  c++  java
  • SpringMVC总结(SSM)

    Day1

    1. springMvc:是一个表现层框架:
      作用:就是从请求中接收传入的参数,
      将处理后的结果数据返回给页面展示
    2. ssm整合:
      1)Dao层
        pojo和映射文件以及接口手动编写(或使用逆向工程生成)
        SqlMapConfig.xml mybatis核心配置文件
        ApplicationContext-dao.xml 整合后spring在dao层的配置
        数据源
        会话工厂
        扫描Mapper
      2)service层
        事务 ApplicationContext-trans.xml
        @Service注解扫描 ApplicationContext-service.xml
      3)controller层
        SpringMvc.xml
        注解扫描:扫描@Controller注解
        注解驱动:替我们显示的配置了最新版的处理器映射器和处理器适配器
        视图解析器:显示的配置是为了在controller中不用每个方法都写页面的全路径
      4)web.xml
        springMvc前端控制器配置
        spring监听

    ☆3.参数绑定(从请求中接收参数)
      1)默认类型:
        在controller方法中可以有也可以没有,看自己需求随意添加.
        httpservletRequest,httpServletResponse,httpSession,Model(ModelMap其实就是Mode的一个子类,一般用的不多)
      2)基本类型:string,double,float,integer,long.boolean
      3)pojo类型:页面上input框的name属性值必须要等于pojo的属性名称
      4)vo类型:页面上input框的name属性值必须要等于vo中的属性.属性.属性....
      5)自定义转换器converter:
        作用:由于springMvc无法将string自动转换成date所以需要自己手动编写类型转换器
        需要编写一个类实现Converter接口
        在springMvc.xml中配置自定义转换器
        在springMvc.xml中将自定义转换器配置到注解驱动

       6)数组
      7)List

    4.SpringMVC与Struts2的不同点

      1)springmvc的入口是一个servlet即前端控制器,而struts2入口是一个filter过虑器。

      2)springmvc是基于方法开发(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例),struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。

      3)Struts采用值栈存储请求和响应的数据,通过OGNL存取数据, springmvc通过参数解析器是将request请求内容解析,并给方法形参赋值,将数据和视图封装成ModelAndView对象,最后又将ModelAndView中的模型数据通过reques域传输到页面。Jsp视图解析器默认使用jstl。

     

    Day2 

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

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

      相对路径:相对于当前目录,也就是在当前类的目录下,这时候可以使用相对路径跳转
      绝对路径:从项目名后开始.
      在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

  • 相关阅读:
    css 选择器
    IIS6、7添加反向代理的步骤
    使用脚本监控windows服务的方法
    ueditor编辑器插件 chrome中图片上传框延时问题
    Mysql隐式类型转换原则
    ASP.NET MVC 分页问题
    .NET程序集引用COM组件MSScriptControl所遇到的问题
    Makefile学习笔记
    操作系统的主要功能
    Linux基本命令之用户系统相关命令
  • 原文地址:https://www.cnblogs.com/wyb628/p/6797314.html
Copyright © 2011-2022 走看看