SpringMVC (执行原理、RestFul风格、乱码、JSON、Jackson、FastJson、Ajax技术、拦截器AOP思想)

什么是SpringMVC

底层是servlet

  • MVC是模型(Model)、视图(View)、控制器(Controller)的简历
  • 是一种软件设计规范
  • 是将业务逻辑、数据、显示分离的方法来组织代码
  • MVC主要作用是降低了试图与业务逻辑间的双向耦合
  • MVC不是一种设计模式,MVC是一种架构模式

SpringMVC特点

  • 轻量级,简单易学
  • 高效,基于请求响应的MVC框架
  • 与Spring兼容性好,无缝结合
  • 约定优于配置
  • 功能强大:RESTful,数据验证,格式化,本地化,主题等
  • 简介灵活

SpringMVC执行原理

RestFul风格

RestFul就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制

  • 资源:互联网所有的事物都可以被抽象为资源
  • 资源操作:使用POST、DELETE、PUT、GET,不同方法对资源进行操作
  • 分别对应 添加、删除、修改、查询。

使用RESTful风格操作资源:可以通过不同的方式来实现不同的效果!如下:请求地址一样,但是功能可以不同

  • http://localhost/item/1 :查询,GET
  • http://localhost/item :新增,POST
  • http://localhost/item:更新,PUT
  • http://localhost/item/1:删除,DELETE

主要实现方式

  1. 使用注解@Pathvariable

    @RequestMapping("/add/{a}/{b}")
    public String test(@Pathvariable int a,@Pathvariable int b){
        
    }
    
  2. 使用RequestMethod方法

    @RequestMapping(value="/add/{a}/{b}",method=RequestMethod.GET)
    @RequestMapping(value="/add/{a}/{b}",method=RequestMethod.POST)
    
  3. 使用@GetMapping或者@PostMapping等注解

    @GetMapping("/add/{a}/{b}")
    @PostMapping("/add/{a}/{b}")
    

接受请求参数与数据回显

  • @RequestParam注解接受指定参数,否则报错

    public String test(@RequestParam("username") String name,Model model){}
    

乱码问题解决

  • xml文件中配置SpringMVC的乱码过滤器
  • 自定义过滤器filter

JSON

  • json是一种轻量级的数据交换格式,目前使用特别广泛
  • 采用完全独立于编程语言的文本格式来存储和表示数据
  • 简洁和清晰的层次结构使得json成为理想的数据交换语言
  • 易于人阅读和编写,同时也易于机器解析和生成,并有效的提升网络传输效率
  • JavaScript语言中,任何JavaScript支持的类型都可以通过JSON来表示,例如字符串、数字、对象、数组等
  • 表示方法
    • 对象表示为键值对,数组由逗号分隔
    • 花括号保存对象
    • 方括号保存数组
  • 前端JSON数据转换
    • JSON字符串转JavaScript对象:var obj = JSON.parse(’{“a”:“hello”,“b”:“world”}’)
    • JavaScript对象转JSON字符串:var json = JSON.stringify({a:‘Hello’,b:‘world’})

Jackson

  • @Controller和@requestBody注解配合使用后,return “test”;就不会走视图解析器,直接返回字符串

  • @RestController单独使用,也不会走视图解析器

  • @requestMapping(value="/aa",producs=“application/json;charset=utf-8”)可以防止乱码

  • jackson包下 ObjectMapper可以转换json字符串

    ObjectMapper mapper = new ObjectMapper();
    
    //ObjectMapper转换后时间格式默认为时间戳(Long),关闭默认时间戳方式
    mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
    
    //使用java语言
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    mapper.setDateFormat(sdf);
    
    return mapper.writeValueAsString(user);
    
  • 一般使用为工具类

FastJson

fastjson.jar是一款专门用于java开发的包,可以方便的实现json对象与JavaBean对象的转换,实现JavaBean对象和json字符串的转换

  • JSONObject代表json对象

  • JSONArray代表json对象数组

  • JSON代表JSONObject和JSONArray的转化

    //Java对象转JSON字符串
    String str = JSON.toJSONString(userList);
    //JSON字符串转对象
    User user = JSON.parseObject(str,User.class);
    //Java对象转JSON对象
    JSONObject jsobject = (JSONObject)JSON.toJSON(user)
    //JSON对象转Java对象
    User user2 = JSON.toJavaObject(jsobject,User.class)
    

ssm整合SpringMVC

  • 引入web支持
  • 配置web.xml文件
    • 配置DispatcherServlet
    • 配置乱码过滤

前端Ajax技术

  • Ajax = 异步的JavaScript 和XML
  • 是一种在无需加载整个网页的情况下,能够更新部分网页的技术
  • 不是一种新的语言,而是一种用于创建更快更好以及交互性更强的web应用程序的技术
  • 传统网页更新或者提交一个表单,都需要重新加载整个网页
  • 使用ajax技术的网页,通过在后台服务器进行少量的数据交换,就可以实现异步局部更新
  • 使用ajax,用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的web用户界面
  • jQuery是一个库,js的大量函数(方法)

拦截器

  • 拦截器是AOP思想的具体应用
  • 拦截器是SpringMVC自己的,只有使用了SpringMVC框架的工程才能使用
  • 拦截器只会拦截访问的控制器方法(controller层),自动过滤jsp/html/css/image/js
  • 自定义拦截器,实现HandlerInterceptor接口 ,就叫拦截器
  • 方法中return true是放行进入下一个拦截器的意思
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值