MVC架构

  • 软件设计规范
    • 模型:dao service
    • 视图:jsp(本质servlet
    • 控制器:Servlet
      • 转发 重定向

Servlet

SpringMVC

基于Java实现MVC的轻量级web框架:底层是servlet

  • 中心控制器:Spring的web框架围绕DispatcherServlet设计。DispatcherServlet的作用是将请求分发到不同的处理器

springmvc的案例

  • Controller:摆脱servlet
  • springmvc-servlet.xml
  • web.xml:配置springmvc的核心 —— servlet
  • 注意

springmvc的执行原理

== Handler是什么? ==

  • Handler是一个Controller的对象和请求方式的组合的一个Object对象
  • HandleExcutionChains是HandleMapping返回的一个处理执行链,它是对Handle的二次封装,将拦截器关联到一起。然后,在DispatcherServlert中完成了拦截器链对handler的过滤。
  • DispatcherServlet要将一个请求交给哪个特定的Controller,它需要咨询一个Bean——这个Bean的名字为“HandlerMapping”。HandlerMapping是把一个URL指定到一个Controller上,(就像应用系统的web.xml文件使用将URL映射到servlet)。
  • 请求解析
  • 处理
  • 视图解析

使用注解开发SpringMVC

  • 导入相关jar包
  • 编写web.xml,注册DispatcherServlet
  • 编写SpringMVC配置文件
    • 处理器映射器
      • 开启注解驱动
    • 处理器适配器
      • 开启注解驱动
    • 视图解析器
      • 手动配置
  • 创建对应的控制类,controller
  • 完善前端视图 和 controller之间的对应

Controller配置总结

  1. @Component
  2. @Service
  3. @Controller
  4. @Respository
  • @Component
    代表这个类会被spring接管,被这个注解的类中的所有方法,并且有具体页面可以跳转,那么就会被视图解析器解析

RestFul风格

  • 原来的
  • RestFul风格:更安全、简洁、高效(支持缓存

重定向 / 转发

  • 无需视图解析器

  • 有视图解析器.
    • 转发 test(无需加.jsp)
    • 重定向

接收请求参数 及 数据回显

接收数据

  • 提交的域名称 和 处理方法的参数不一致
    • @RequestParam:前端提交要用到的
  • 提交的是一个对象
    • 步骤
      • 接收前端传递的参数,判断参数的名字,假设名字直接在方法上,可以直接使用
      • 假设前端传递的是一个对象User,匹配User对象中的字段名,如果名字一致则OK,否则匹配不到

数据回显

  • ModelAndView
  • ModelMap
    • 继承了LinkedMap
  • Model

JSON

JSON键值对

JSON是JavaScript对象的字符串表示法,它使用文本表示一个JS对象的信息,本质是一个字符串。

JSON 和 JS对象 互换

  • JSON字符串 -> JavaScript对象
    var obj = JSON.parse("a":"Hello","b":"World")
  • JavaScript对象 -> JSON字符串
    var json = JSON.stringify(a:'Hello',b:'World')

Jackson

  • 导包
  • 配置web.xml
  • springmvc-servlet.xml

返回一个对象


  • 使用Jackson之前
  • 使用Jackson
    • 乱码解析
      • 方式一
      • 方式二:配置文件

返回多个对象 —— 用list


返回时间对象

  • 方式一:使用时间戳 ——纯Java格式
  • 方式二
  • 工具类

Fastjson

  • 导包
  • 把对象集合转换成一个json字符串
    String string = JSON.toJSONString(userList);

整合ssm

整合mybatis

  • 导入依赖

整合Spring

整合springmvc

Ajax

  • Ajax的核心:XMLHttpRequest对象(XHR)
  • 纯原生的js实现ajax
  • 使用jQuery

JQuery

Ajax异步加载数据

Ajax验证用户名体验

拦截器

  • 只拦截访问的控制器方法,不拦截html / JSP 等
  • aop思想

自定义拦截器

实现HandlerInterceptor接口

  • applicationContext.xml
  • 拦截器类
    • return true
    • return false

登录判断验证

文件上传 / 下载

对比:过滤器

  • web.xml