国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于MVC的軟件自定義的實(shí)現(xiàn)

2018-08-29 10:59周紹景華德志應(yīng)杰潘宏斌楊正元
中國(guó)科技縱橫 2018年15期
關(guān)鍵詞:個(gè)性化服務(wù)

周紹景 華德志 應(yīng)杰 潘宏斌 楊正元

摘 要:隨著互聯(lián)網(wǎng)的不斷發(fā)展,軟件平臺(tái)也不斷增加。平臺(tái)用戶(hù)不在局限于軟件的使用效率,個(gè)性化服務(wù)也逐步變得重要。利用JSP開(kāi)發(fā)技術(shù)和SQL Server數(shù)據(jù)庫(kù)技術(shù)設(shè)計(jì)實(shí)現(xiàn)的軟件自定義系統(tǒng),更好地為用戶(hù)提供了個(gè)性化服務(wù)。

關(guān)鍵詞:軟件平臺(tái);個(gè)性化服務(wù);前端自定義

中圖分類(lèi)號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-2064(2018)15-0023-02

目前軟件平臺(tái)的大幅增加,用戶(hù)對(duì)平臺(tái)的要求不僅是平臺(tái)應(yīng)用的穩(wěn)定性和實(shí)用性,還希望有選擇性。實(shí)現(xiàn)軟件應(yīng)用的自定義可增加平臺(tái)多樣性[1],使用戶(hù)擁有“個(gè)性化”服務(wù)[2]。用戶(hù)能夠根據(jù)喜好添加或刪除軟件應(yīng)用進(jìn)行自定義。

1 需求分析

軟件自定義是用戶(hù)根據(jù)個(gè)人喜好添加或刪除軟件服務(wù)模塊的過(guò)程。

1.1 視圖需求

自定義界面視圖需要根據(jù)用戶(hù)對(duì)個(gè)人應(yīng)用的修改而變化。站點(diǎn)利用Cookie儲(chǔ)存數(shù)據(jù)[3],JS獲取Cookie中數(shù)據(jù)對(duì)頁(yè)面做出相應(yīng)改變。用戶(hù)方面的視圖需求包括非注冊(cè)用戶(hù)視圖與注冊(cè)用戶(hù)視圖兩個(gè)方面,二者的區(qū)別在于非注冊(cè)用戶(hù)只能將數(shù)據(jù)儲(chǔ)存到Cookie中來(lái)獲取,而注冊(cè)用戶(hù)既能將數(shù)據(jù)儲(chǔ)存到Cookie中獲取,也能將數(shù)據(jù)儲(chǔ)存到服務(wù)器中獲取。管理員與注冊(cè)用戶(hù)相同,修改應(yīng)用插件數(shù)據(jù)既能儲(chǔ)存到Cookie中獲取[4],也能儲(chǔ)存到服務(wù)端獲取。

1.2 功能需求

非注冊(cè)用戶(hù)訪(fǎng)問(wèn)站點(diǎn)進(jìn)行應(yīng)用的自定義時(shí),通過(guò)Cookie存儲(chǔ)游客的自定義數(shù)據(jù),而登陸用戶(hù)訪(fǎng)問(wèn)站點(diǎn)自定義應(yīng)用時(shí)將自定義數(shù)據(jù)儲(chǔ)存到服務(wù)端,同時(shí)將數(shù)據(jù)同時(shí)存儲(chǔ)到Cookie中以便記錄用戶(hù)偏好設(shè)置以及二次使用,業(yè)務(wù)流程如圖1所示。

2 軟件自定義實(shí)現(xiàn)

2.1 視圖實(shí)現(xiàn)

根據(jù)試圖需求,首先創(chuàng)建存儲(chǔ)應(yīng)用數(shù)據(jù)的Cookie,主要代碼:

Cookie cookies[]=request.getCookies()

Cookie c=null

for(int i=0;i

c=cookies[i]

if(c!=null){

if(("cn").equals(c.getName())){

pageContext.setAttribute("SavedUserName",c.getValue())}}

創(chuàng)建Cookie并儲(chǔ)存修改數(shù)據(jù)后,使用JS代碼獲取Cookie中的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行操作,修改個(gè)人應(yīng)用頁(yè)面信息,主要代碼:

n=request.getParameter("n")

d=request.getParameter("d");

dr=request.getParameter("dr");

if(!"".equals(n) &&!"".equals(d) &&!"".equals(dr) && request.getParameter("RmbUser")!= null){

Cookie nc=new Cookie("anc",n);

Cookie dc=new Cookie("adc",d);

Cookie drc=new Cookie("adrc",dr);

cookie.setMaxAge(365*24*60*60);

response.addCookie(anc);

response.addCookie(adc);

response.addCookie(adrc);}

而注冊(cè)用戶(hù)和管理員不僅需要從Cookie中獲取值,還需要從服務(wù)器端獲取值,所以在JSP頁(yè)面還需要利用Session獲取服務(wù)器端的值,實(shí)現(xiàn)表達(dá)式:<%=session. getAttribute("fl") %>。

2.2 功能實(shí)現(xiàn)

功能的實(shí)現(xiàn)與視圖的實(shí)現(xiàn)類(lèi)似,同樣,用戶(hù)分為非注冊(cè)用戶(hù)和注冊(cè)用戶(hù)。非注冊(cè)用戶(hù)體驗(yàn)應(yīng)用的添加與刪除,利用Cookie存儲(chǔ)修改數(shù)據(jù),不能將數(shù)據(jù)儲(chǔ)存到服務(wù)器端,主要代碼:

function getCookie(sn){

if (document.cookie.length>0){c_start=document.cookie.indexOf(sn + "=")

if (c_start!=-1){ c_start=c_start + c_name.length+1

c_end=document.cookie.indexOf(";",c_start)if (c_end==-1) c_end=document.cookie.length

return unescape(document.cookie.substring(c_start,c_end))} }return ""}

function setCookie(sc,value,expiredays){

exdate=new Date() exdate.setDate(exdate.getDate()+expiredays)

document.cookie=c_n+ "=" +escape(value)+((expiredays==null) ? "" : ;expires="+exdate.toGMTString())}

function checkCookie(){sname=getCookie('sname');servicedescribe=getCookie('sdescribe')

if (sname!=null&&sname;!=""&&sdescribe;!=null && sdescribe!="")

{alert('添加成功!')}else{alert('添加失敗!')}}}

注冊(cè)用戶(hù)將修改的信息提交服務(wù)端保存,以便下次登陸使用,主要代碼:

管理員主要負(fù)責(zé)應(yīng)用插件的管理(添加或刪除服務(wù)插件),修改插件的數(shù)據(jù)存儲(chǔ)到Cookie與服務(wù)端,Cookie主要代碼參考用戶(hù)功能實(shí)現(xiàn),服務(wù)器端的主要代碼:

if (method.equals("S_p")) {

int id=request.getParameter("id");;

String SName = request.getParameter("SName");

String SDescribe = request.getParameter("SDescribe");

String SAddress = request.getParameter("SAddress");

int i = db.insertRecord("INSERT INTO S_p (id,SName,SDescribe,SAddress)

VALUES ('"+id+"','"+SName+"','"+SDescribe+"','"+SAddress+"')");

if (i == 0) {

String temp = ec.S("select * from S_p");

HttpSession session = request.getSession();

session.setAttribute("rs", temp);

response.sendRedirect("S_plug-in.jsp");} else {

String temp = ec.SL("select * from Service");

HttpSession session = request.getSession();

session.setAttribute("rs", temp);

response.sendRedirect("S_plug-in.jsp");}

用戶(hù)(非注冊(cè)用戶(hù)與注冊(cè)用戶(hù))身份的測(cè)試用例,注冊(cè)登錄站點(diǎn),對(duì)個(gè)人應(yīng)用進(jìn)行添加或刪除,管理員登錄站點(diǎn),對(duì)所有應(yīng)用插件進(jìn)行增刪查改等操作,檢測(cè)基本功能的可用性、正確性,在Windows、Android、iOS系統(tǒng)及不同的瀏覽器應(yīng)用環(huán)境下的軟件定義均實(shí)現(xiàn)預(yù)期,通過(guò)多組自定義測(cè)試用例進(jìn)行測(cè)試,測(cè)試符合預(yù)期,測(cè)試統(tǒng)計(jì)結(jié)果如圖2所示。

3 結(jié)語(yǔ)

經(jīng)過(guò)實(shí)現(xiàn)、測(cè)試、投入使用,取得較為顯著的成果,但諸多待改進(jìn)的工作,如算法設(shè)計(jì)、故障恢復(fù)策略等還需要進(jìn)一步的研究。

參考文獻(xiàn)

[1]楊曉燕,姜遇姬.Java應(yīng)用程序自定義交互方法的開(kāi)發(fā)[J].浙江萬(wàn)里學(xué)院學(xué)報(bào),2006,(05):19-21.

[2]曾春,邢春曉,周立柱.個(gè)性化服務(wù)技術(shù)綜述[J].軟件學(xué)報(bào),2002,(10):1952-1961.

[3]劉海雄,陽(yáng)富民,胡貫榮.嵌入式瀏覽器中Cookie技術(shù)的實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2003,(06):39-41+45.

[4]姜昌華.插件技術(shù)及其應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,2003,(10):10-11+67.

猜你喜歡
個(gè)性化服務(wù)
基于RSS技術(shù)的圖書(shū)館登陸系統(tǒng)研究
互聯(lián)網(wǎng)思維下數(shù)字圖書(shū)館個(gè)性化服務(wù)建設(shè)研究
需求理論在高校圖書(shū)館就業(yè)服務(wù)中的應(yīng)用研究
對(duì)知識(shí)經(jīng)濟(jì)時(shí)代高校圖書(shū)館個(gè)性化服務(wù)的相關(guān)思考
基于顧客滿(mǎn)意的個(gè)性化餐飲服務(wù)研究
淺談酒店個(gè)性化服務(wù)
Web挖掘技術(shù)在高職院校數(shù)字圖書(shū)館個(gè)性化服務(wù)中的應(yīng)用研究
南宫市| 吉首市| 怀来县| 延吉市| 区。| 红安县| 彰武县| 宜君县| 新余市| 尉犁县| 高碑店市| 衡阳市| 元氏县| 壶关县| 奈曼旗| 九台市| 新河县| 宁城县| 临泉县| 密山市| 囊谦县| 武山县| 吐鲁番市| 天等县| 蛟河市| 永平县| 章丘市| 娱乐| 兴文县| 江阴市| 天津市| 商城县| 皋兰县| 寻乌县| 千阳县| 余姚市| 怀集县| 桦甸市| 包头市| 泊头市| 平凉市|