Github:https://github.com/nnngu
項目源代碼:https://github.com/nnngu/nguSeckillcss
對於一個系統,須要產品經理、前端工程師和後端工程師的參與,產品經理將用戶的需求作成一個開發文檔交給前端工程師和後端工程師,前端工程師爲系統完成頁面的開發,後端工程師爲系統完成業務邏輯的開發。對於咱們這個秒殺系統,它的前端交互流程設計以下圖:html
這個流程圖就告訴了咱們詳情頁的流程邏輯,前端工程師根據這個流程圖設計頁面,而咱們後端工程師根據這個流程圖開發咱們對應的代碼。前端交互流程是系統開發中很重要的一部分,接下來進行Restful
接口設計的學習。前端
什麼是Restful?它就是一種優雅的URL表述方式,用來設計咱們資源的訪問URL。經過這個URL的設計,咱們就能夠很天然的感知到這個URL表明的是哪一種業務場景或者什麼樣的數據或資源。基於Restful設計的URL,對於咱們接口的使用者、前端、web系統或者搜索引擎甚至是咱們的用戶,都是很是友好的。關於Restful的瞭解你們去網上一搜一大把,我這裏就再也不作介紹了。下面看看咱們這個秒殺系統的URL設計:java
接下來基於上述資源接口來開始對Spring MVC框架的使用。jquery
在web.xml
文件裏面引入DispatcherServlet
:git
web.xml
裏面的代碼請參照項目的源代碼。github
添加 applicationContext-web.xml
,在下圖所示的位置。web
applicationContext-web.xml
裏面的代碼請參照項目的源代碼。ajax
這樣咱們便完成了Spring MVC的相關配置(即將Spring MVC框架整合到了咱們的項目中),接下來就要基於Restful接口進行咱們項目的控制器 SeckillController
的開發工做了。spring
控制器中的每個方法都對應咱們系統中的一個資源URL,其設計應該遵循Restful接口的設計風格。
建立控制器SeckillController.java
,以下圖:
SeckillController.java
裏面的代碼請參照項目的源代碼。
SeckillController.java
中的方法徹底是對照Service接口方法進行開發的,第一個方法用於訪問咱們商品的列表頁,第二個方法訪問商品的詳情頁,第三個方法用於返回一個json數據,數據中封裝了咱們商品的秒殺地址,第四個方法用於封裝用戶是否秒殺成功的信息,第五個方法用於返回系統當前時間。代碼中涉及到一個將返回秒殺商品地址封裝爲json數據的類,即SeckillResult
,在dto包中建立它,以下:
建立SeckillResult.java
,以下圖:
SeckillResult.java
裏面的代碼請參照項目的源代碼。
到此,控制器的開發任務完成,接下來進行咱們的頁面開發。
項目的前端頁面是由Bootstrap
開發的,因此咱們要先去下載Bootstrap
或者是使用在線CDN。
使用在線CDN的方法:
<!-- Bootstrap 核心 CSS 文件 --> <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> <!-- 可選的 Bootstrap 主題文件(通常不用引入) --> <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous"> <!-- Bootstrap 核心 JavaScript 文件 --> <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
爲了方便咱們本地調試,我在項目裏使用的是本地的Bootstrap
。
下載JQuery
,由於Bootstrap
就是依賴JQuery
的
下載Bootstrap
下載一個倒計時插件jquery.countdown.min.js
,再下載一個操做Cookie
插件jquery.cookie.min.js
如圖放置:
jsp
文件,位於WEB-INF/jsp/common
下的head.jsp
,以下圖:head.jsp
裏面的代碼請參照項目的源代碼。
jstl
標籤庫文件tag.jsp
,在下圖所示的位置。tag.jsp
裏面的代碼請參照項目的源代碼。
list.jsp
,在下圖所示的位置。list.jsp
裏面的代碼請參照項目的源代碼。
detail.jsp
,在下圖所示的位置。detail.jsp
裏面的代碼請參照項目的源代碼。
## 添加 seckill.js 文件
添加 seckill.js
文件,在下圖所示的位置。
seckill.js
裏面的代碼請參照項目的源代碼。
## 運行項目
運行項目,部署到tomcat
,在瀏覽器地址欄輸入 http://localhost:8080/seckill/list
,敲回車,便可看到以下圖的界面:
點擊相應商品後面的詳情頁連接便可查看該商品是否開啓秒殺、以及秒殺該商品等活動。
到此,咱們成功完成了web層的開發。但一個秒殺系統,每每是會有成千上萬的人進行參與,咱們目前的系統是抗不起多少高併發操做的,因此後面咱們會對本系統進行高併發的優化。請查看個人下一篇文章。