ajax 秒杀脚本,高并发秒杀API(五)

前言

本篇将完成前端页面的设计与开发,包括:

使用Bootstrap开发页面结构

交互逻辑编程

一、使用Bootstrap开发页面结构

在设计SeckillController中我们已经设置了jsp文件的路径,在/WEB-INF/新建一个jsp目录,在该目录下新建list.jsp和detail.jsp

使用Bootstrap的模板,这个模板基本上是固定的

Bootstrap 模板

Hello, world!

1、list.jsp

秒杀列表页

在最上面的jsp内置对象page中的contentType修改为UTF-8,这个模板已经引入了一些文件包含了 jquery.js、bootstrap.min.js 和 bootstrap.min.css 文件,用于让一个常规的 HTML 文件变为使用了Bootstrap的模板

最下面有两个script标签,通过CDN加载一些Bootstrap资源,** JavaScript有一个先后引入规则,jQuery作为Bootstrap的底层依赖,要先于Bootstrap声明 **,这两个script标签在上面介绍的网站上都有

这里有些通用的标签以及要引入的文件都单独提取出来,不用把这些相同的代码都写在每一个页面中

在jsp目录下新建一个common目录,专门存放通用的jsp文件

新建一个tag.jsp,用于引入jstl,如果以后还要引入别的标签,再添加

新建一个head.jsp,head标签中的内容所有页面基本都一样

然后使用jsp的内置对象include,静态引入head.jsp,** 静态包含 是会把引入的文件合并过来 ,也就是head.jsp中的内容会放到外层list.jsp中作为一个Servlet输出,如果是 动态包含 的话,那么head.jsp会作为一个 独立的jsp,先转换为Servlet **,转换后的结果再和list.jsp合并

接着开始编写lsit.jsp的细节部分

acbf8c6ffb22

list.jsp

panel-default、text-center都是使用Bootstrap提供的样式

在panel-body中使用表格,通过jstl提供的方法来显示要展示的秒杀商品

名称库存开始时间结束时间创建时间详情页

${sk.name}${sk.number}

link

首先使用jstl的c:forEach标签,用来迭代从SeckillController中的list方法传过来的"list",这个list是存放秒杀的商品,属性var代表当前项目的变量名,items表示进行循环的项目

一个tr标签是一行,每个td标签是一列,数据库有多少个秒杀商品这个表格就有多少行

@RequestMapping(value = "/list", method = RequestMethod.GET)

public String list(Model model){

//获取列表页

List list = seckillService.getSeckillList();

model.addAttribute("list", list);

return "list";

}

从SeckillController的list方法返回的是字符串,但是之前说过,Spring MVC会拼接成一个URL地址,返回的数据是个泛型,类型是Seckill

public class Seckill {

private long seckillId;

private String name;

private int number;

private Date startTime;

private Date endTime;

private Date createTime;

}

这是Seckill定义的属性,所以在list.jsp页面中通过sk.name来调用相关的参数

日期类型的输出默认是直接调用日期类型的toString,这不符合我们的规范,所以使用jstl的fmt:formatDate标签来格式化输出的时间

最后一列给一个超链接,用于链接这个秒杀商品的详情页,可以把这个超链接做成一个按钮,使用的也是Bootstrap的CSS

2、detail.jsp

acbf8c6ffb22

detail.jsp

这是detail.jsp的一个大的框架,先是由两个div组成,一个用于显示日期或者文本的一个显示面板,在显示面板中做一个埋点,因为这个面板在之后的交互逻辑编码中,在不同时间显示的是不同的内容

${seckill.name }

这里可以直接这样写的原因是:

model.addAttribute("seckill", seckill);//SeckillController中的detail方法

另一个div就是登录弹出层,在进入详情页的时候,会通过Cookie判断用户时候登录,没有登录的用户的页面会显示这个登录弹出层,提示用户登录

acbf8c6ffb22

detail.jsp中的登录弹出层

首先在最外围的div中进行埋点

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值