JAVA高并发秒杀系统构建之——Web层
来源:互联网 发布:潇湘馆的竹叶 知乎 编辑:程序博客网 时间:2024/06/05 23:05
JAVA高并发秒杀系统构建之——Web层
前言:本文章是《JAVA高并发秒杀系统构建之——Service层》下一篇,主要讲解系统Web层中数据交互设计,url设计等。
首先先介绍一下Restful
接下来说一下url设计
右下图可知,遵循Restful设计思想的url,其所表达的内容是清晰明确的。
接着,是本秒杀系统的url设计,遵循Restful接口设计思想
接下来说说SpringMvc注解映射技巧,具体有哪些都在下图。
下面是SpringMvc的一些处理技巧
这里做一下解释:
1、method=RequestMethod.GET,这里给出了客户端请求的方式为get。
2、@PathVariable(“seckillId”),这里是获得url中的占位符参数。
3、Model 装载最终要返回个用户的数据
4、redirect表示重定向
5、forward表示转发
6、return 返回对应的jsp页面,这里是detail.jsp
下面是SpringMvc中利用Cookie的方法
这里说明一下,如果不加required=false的话,当cookie中没有killPhone,则会抛出异常,如果加了,就不会抛出异常了。
下面我们使用SpringMvc实现Restful接口
exposer方法,是接口暴露方法,客户端通过ajax请求该方法,方法的返回值为SeckillResult。如果抛出了异常,则重新 生成result,封装接口暴露失败信息,作为ajax的返回值。这里@ResponseBody的作用是告诉ajax,此方法的返回值为json格式,同时,为了进一步保证数据格式和编码方式,利用produces参数指定数据格式和编码方式。
对于exposer方法的返回值SeckillResult类,该类的主要作用是作为ajax的返回值,如下图,其中success值表示是否请求成功;error是错误信息;data值是Exposer(暴露接口类),里面封装了传递到客户端的md5加密值等参数。
time方法返回时间
下面是核心方法execute的讲解
首先看看execute方法的头部,跟exposer方法相同,都是将SeckillResult作为ajax的返回值,格式为json,编码方式为utf-8
下面是该方法的参数,md5是之前通过exposer方法传递给客户端的信息,现在由客户端再传过来,目的是检验前后md5加密信息是否一致,防止用户篡改url。killPhone藏在cookie里面,由注解@CookieValue获得,为了方便处理killPhone为null的情况,因此加上required=false属性。
接着是方法体,这里对Service层抛出的异常做处理,封装不同的SeckillResult,告诉客户端的用户不同的错误信息。
Web层的分析设计与编码就到这里,下一篇的话主要是写高并发的一些优化。
- JAVA高并发秒杀系统构建之——Web层
- JAVA高并发秒杀系统构建之——业务分析与Dao层搭建
- JAVA高并发秒杀系统构建之——Service层
- JAVA高并发秒杀系统构建之——高并发优化分析
- 高并发秒杀系统API之Web层
- Java高并发秒杀API(三)之Web层
- 慕课网-java高并发秒杀api之web层-总结
- Java高并发秒杀API之web层实现(三)
- Java高并发秒杀API(二)之Service层
- java b2b2c多用户商城系统架构之第二篇——高并发、秒杀
- java b2b2c多用户商城系统架构之第二篇——高并发、秒杀
- Java高并发之web层开发
- Java高并发秒杀系统(一)
- Java高并发秒杀系统(二)
- Java高并发秒杀系统API
- 四、高并发秒杀API之Web层设计与实现
- Java高并发秒杀API之业务分析与DAO层
- 【JAVA高并发秒杀API之DAO层】课程笔记
- Cursor 游标
- 平庸人生源于“害怕被拒绝”
- View动画、Drawable动画
- SQL语句通过网址获取主域名方法
- servlet工作原理
- JAVA高并发秒杀系统构建之——Web层
- 仿微信朋友圈9图上传选择器
- [转]VC中PC/SC智能卡接口的编程(1)
- Qt事件处理
- podspec 文件解释
- webpack踩过的坑
- Android线程池使用心得
- Dockerfile创建自定义Docker镜像以及CMD与ENTRYPOINT指令的比较
- Ajax请求成功后,获取success中的返回的问题