王宇哲 楊陽 楊立倫 顧鑫 林志芳
武漢東湖學(xué)院計算機科學(xué)學(xué)院
前言:現(xiàn)階段,隨著短視頻的興起,視頻行業(yè)已成為生活中必不可少的一部分。例如時下熱度較高的抖音短視頻,人們總是可以在其中找到屬于自己的一份快樂。而作為互聯(lián)網(wǎng)的一部分,視頻分享就顯得尤為重要,本網(wǎng)站將獎勵制和積分制融合為激勵制,用戶可以在該平臺上分享資源獲取積分,也可以使用積分查看其他用戶分享的資源,能在增加資源互動的同時又鼓勵創(chuàng)作。并且每個資源都附帶評論系統(tǒng),形成一個視頻分享社區(qū)。
界面采用jsp,結(jié)合JQuery第三方j(luò)s庫,bootstrap響應(yīng)式布局框架,AJAX異步請求,JAVACV部分技術(shù),并結(jié)合MySQL、Druid連接池、騰訊云短信API等技術(shù)。
使用java作為開發(fā)語言,SSM為基本的開發(fā)架構(gòu),通過Maven對項目依賴包進行管理,Git控制開發(fā)進度與更新。
結(jié)合功能分析用例為三個:視頻資源,用戶,評論。
設(shè)計如下:
資源表(資源id,圖片路徑,視頻路徑,價格,用戶id,資源名,上傳時間)。
用戶表(用戶id,頭像路徑,用戶名,密碼,電話,余額,權(quán)限)。
評論表(評論id,資源id,用戶id,評論內(nèi)容,評論時間)。
物理設(shè)計:
Resource(rid,imgurl,videourl,price,ui d,rname,uptime)。
User(uid,imgurl,username,password,tel,money,level)。
Chat(cid,rid,uid,words,time)。
1.登錄操作/ login (user,request)。
2.注冊操作/ reg(user,驗證碼,request,resources)。
3.發(fā)送驗證碼/sendyzm(user,response)。
4.注冊驗證/validate(user,手機驗證碼,隨機數(shù),response)。
5.根據(jù)用戶名獲取用戶json /getbyusername(username)。
6.分頁查詢用戶/getUserByPage(pagenow,pagesize)。
7.用戶注銷/logout(request)。
1.分頁獲取資源/getResourceByPag e。
2.獲取所有資源/getAllResource。
3.上傳資源/upload。
4.播放資源/play。
用戶觀看視頻必須先登錄,并消耗視頻所需要的積分。用戶注冊時需要經(jīng)過兩個驗證(圖形驗證碼,短信驗證碼),圖形驗證碼Vcode經(jīng)過后臺生成后直接以IO流傳遞給前端顯示到IMG標(biāo)簽中。
為了防止惡意小號注冊,注冊需要使用驗證碼,綁定手機號(后臺生成驗證碼之后,通過調(diào)用騰訊短信api接口,講驗證碼發(fā)送至用戶手機)。設(shè)置密碼(password)之后下次登錄使用手機號作為賬號(username)。
本研究根據(jù)廣西地不容轉(zhuǎn)錄組測序的結(jié)果開發(fā)SSR引物,在此基礎(chǔ)上對廣西地不容5個居群的63個樣品進行遺傳分析,以揭示廣西地不容在物種水平和居群水平的遺傳多樣性以及居群間的遺傳關(guān)系,為其野生資源的保護和分子標(biāo)記輔助育種等方面提供理論依據(jù)。
通過AJAX異步請求技術(shù),根據(jù)頁碼請求數(shù)據(jù)庫中視頻的JSON數(shù)據(jù),然后通過jquery將數(shù)據(jù)渲染成一個個html標(biāo)簽,追加到指定的div中。
每頁設(shè)置顯示20個視頻,用戶下滑到底之后會出現(xiàn)繼續(xù)加載按鈕,點擊按鈕,即可在次發(fā)送AJAX請求,頁碼自加1頁即可。
用戶登陸之后,會在session中存儲當(dāng)前用戶User對象,主頁會從session域中獲取當(dāng)前用戶對象,如果存在該對象,則右上角會出現(xiàn)分享視頻,以及個人中心的按鈕。
用戶點擊上傳視頻之后,會跳轉(zhuǎn)到上傳視頻界面。會提示用戶選擇視頻,設(shè)置視頻的標(biāo)題以及查看所需要的積分。
用戶點擊開始上傳后,服務(wù)器通過HttpServletRequest對象獲取到輸入流,后臺生成UUID全球唯一識別碼,和用戶設(shè)置的視頻標(biāo)題(title),價格(price),文件路徑(path)一并存入MySQL數(shù)據(jù)庫。
如果主頁預(yù)覽的都是單個完整視頻的話,會極大地占用服務(wù)器帶寬,這個時候就要求上傳視頻的時候,自動生成縮略圖(imgurl),會和視頻在數(shù)據(jù)庫中共同存儲。
想要查看其他用戶上傳的視頻時,需要消耗相應(yīng)的積分??鄢晒?,會在該用戶的消費記錄中新增本視頻的ID以判斷該用戶已經(jīng)購買本視頻,可以查看。
同時這樣也防止了部分用戶惡意使用工具跳過支付。因為每次查看視頻就會檢測當(dāng)前登錄用戶User的消費記錄是否包含該視頻。
用戶購買視頻之后,調(diào)用減少積分接口(buyVideo),將當(dāng)前用戶的用戶id(uid),當(dāng)前視頻的id(vid)傳遞到后臺。后臺解析視頻的視頻主(uid),價格(price)。給當(dāng)前用戶扣除相應(yīng)的積分,給視頻主增加積分的90%,10%歸平臺,最后在用戶的購買記錄上增加購買視頻的id即可完成一次視頻的購買。
新用戶初始會贈送10積分(1元),用戶使用完之后可以進行積分充值。點擊右上角充值中心之后,會跳轉(zhuǎn)到充值界面,選擇相應(yīng)的充值套餐,會跳轉(zhuǎn)到支付寶收款接口,付款后會根據(jù)當(dāng)前記錄用戶id(uid)增加相應(yīng)的積分。
所有登錄用戶都可以對某個視頻進行舉報,舉報分類存在服務(wù)器本地json文件中,用戶舉報時,會記錄舉報用戶id(uid),視頻id(vid),以及違規(guī)類型(wtype)。后臺管理員可以在違規(guī)處理頁面對舉報視頻進行違規(guī)篩查。
用戶點擊退出登錄時,后臺直接從session中刪除當(dāng)前用戶的對象即可,如不手動退出,用戶也會在半個小時后自動退出(session生命周期半個小時)。
登錄用戶查看視頻之后,進入視頻界面,下方有評論區(qū)。視頻的評論單獨作為一個數(shù)據(jù)庫表(chat)。通過視頻id(vid)和評論id(cid)進行綁定。一個視頻可以有多個評論,同時記錄評論用戶id。
本系統(tǒng)基于使用SSM(Spring+Spring MVC+MyBatis)作為基礎(chǔ)架構(gòu)。而其中的Spring-MVC又是經(jīng)典的MVC(模型-視圖-控制器)模型。這兩個框架能夠極大地提高開發(fā)的效率和維護能力。
其中Spring-MVC的作用如下:
Model(模型)表示應(yīng)用程序核心(數(shù)據(jù)庫實體類對象)。
View(視圖)顯示數(shù)據(jù),也就是web前端頁面。
Controller(控制器)處理輸入(負責(zé)接口的跳轉(zhuǎn))。
MyBatis則可以將sql語句寫在XML文件中,便于統(tǒng)一管理和優(yōu)化,解除sql和程序代碼的耦合。并且提供映射標(biāo)簽,支持對象和和數(shù)據(jù)庫orm字段關(guān)系的映射,支持對象關(guān)系映射標(biāo)簽,支持對象關(guān)系的組建。還可以提供XML標(biāo)簽,支持編寫動態(tài)sql。
而Spring-core核心提供了通過Spring的IOC特性,將對象之間的依賴關(guān)系交給了Spring控制,方便解耦,簡化了開發(fā)。還可以利用AOP(面向切面編程)特性,很容易實現(xiàn)事務(wù),日志,權(quán)限的控制。
系統(tǒng)基于JAVA開發(fā),可以在各類服務(wù)器環(huán)境上運行,只需要安裝java虛擬機即可,個人站長能夠輕松地完成服務(wù)器的后臺配置。
本視頻網(wǎng)站的視頻全部都是由用戶自行上傳,沒有官方發(fā)布的公共視頻,用戶可以進行自行交易。
網(wǎng)站的視頻分類豐富,涵蓋各類短視頻,基本滿足各類用戶的需求。
維護成本低,只需要對違規(guī)的視頻,用戶交易問題進行管理即可。用戶交易時可以提取少量的積分即可盈利。也就是成本只有服務(wù)器的維護,以及少量人力費用即可運營。
網(wǎng)站不經(jīng)營官方視頻,不會引進需要版權(quán)的電影電視劇,主要交易的是個人制作的短視頻,以及視頻素材等等,所以不會有版權(quán)糾紛的問題。如果涉及到侵權(quán),維護人員對舉報視頻進行及時處理下架即可。