shop登陸注冊啡邑、分頁胞四、shopback攔截器

//三層模型 : Web Service Dao : 分工明確 細(xì)化功能

//MVC模型? :? 模型模塊? 視圖模塊? 控制模塊:三層模型是對C模塊的細(xì)分

首先在idea 下web文件新建head.jsp? register.jsp? login.jsp? 在WEB-INF文件下新建main.jsp頁面

在head.jsp中引入jQuery和jstl包

然后在regist.jsp和login.jsp中引入head.jsp

在頁面中編寫input標(biāo)簽,用于接收參數(shù)傳輸給后臺(tái)進(jìn)行接收及處理

1闸翅、可以寫按鈕事件再芋,在js事件中通過jQuery獲取輸入框中內(nèi)容

2、可以寫入form表單中傳遞數(shù)據(jù)

$("#userName").val().trim();

之后通過ajax傳值到后端進(jìn)行數(shù)據(jù)處理

function submit(){

if(!userCheck){

alert("對不起,用戶名不可用")

return;

}

var userName =$("#userName").val().trim();

var password =$("#password").val().trim();

if(password.trim()==""||password.length<6){

alert("對不起,密碼不符合規(guī)則")

return;

}

var repassword =$("#repassword").val().trim();

if(password!=repassword){

alert("對不起,兩次密碼不一致")

return;

}

var d = {userName:userName,password:password,repassword:repassword};

$.ajax({

url:"/user/register",

type:"post",

data:d,

dataType:"json",

success:function (data) {

if(data.code==-1){

$("#message").text(data.message);

}else{

$("#message").text(data.message+",立即為您跳轉(zhuǎn)頁面");

setTimeout(function () {

location.href="/resource/pages/login.jsp";

},2000)

}

}

})


在web層接收前臺(tái)傳遞過來的參數(shù)坚冀,可以用String userName =req.getParameter("userName");屬性名的方式獲取

也可導(dǎo)入工具包c(diǎn)ommons-beanutils-1.8.3.jar济赎,用工具接收直接封裝入javaBean中,(接收的屬性名必須和javaBean中的成員變量名相同)UserBean user = WebUtils.populate(UserBean.class,req);

接著調(diào)用service層中UserService中的各種方法得到從數(shù)據(jù)庫獲取的值记某,進(jìn)行判斷登陸司训、注冊等操作

service層中一般直接調(diào)用Dao層的方法獲取原始數(shù)據(jù),可以在本層進(jìn)行一些簡單的業(yè)務(wù)處理液南,如數(shù)據(jù)庫long型時(shí)間轉(zhuǎn)換日期型豁遭,密碼加密存入數(shù)據(jù)庫等,加密語句如下贺拣,

MessageDigest digest = MessageDigest.getInstance("md5");

//加密之前是字符串,加密之后是字節(jié)數(shù)組, 如果我們把字節(jié)數(shù)組存到數(shù)據(jù)庫, 那么查詢時(shí)的效率極低

byte[] bs = digest.digest(userBean.getPassword().getBytes());

//可以將任意字節(jié)數(shù)組轉(zhuǎn)成明文的字符串

//01100001? 01100010 01100011

//011000 010110 001001 100011

//24? 22 9 35

Base64.Encoder encoder = Base64.getEncoder();

String str = encoder.encodeToString(bs);

userBean.setPassword(str);

而在DAO層則直接是根據(jù)方法名含義直接獲取數(shù)據(jù)庫中的數(shù)據(jù)


bean中則直接寫javaBean類蓖谢,成員變量名與數(shù)據(jù)庫中的字段名相同,且類型相同

在web層調(diào)用獲取的數(shù)據(jù)譬涡,經(jīng)過處理可以放入Session域中闪幽,前端jsp頁面通過jQuery獲取后臺(tái)的到信息進(jìn)行展示,如商品展示涡匀《㈦纾可以分頁展示,

需要分頁的信息陨瘩,對應(yīng)的java? Bean中要繼承? ? Basebean腕够。

里面存放總頁數(shù)當(dāng)前頁等,在調(diào)用提取寫好封裝的paging類中的方法舌劳,根據(jù)javabean的開始頁數(shù)和分頁大小帚湘,還有二次調(diào)用傳過來的當(dāng)前頁,判斷當(dāng)前頁并拼接當(dāng)前請求所帶來的所有參數(shù)甚淡,再拼寫分頁當(dāng)前頁大诸,使用字符串拼接成頁面,返回一個(gè)字符串,在頁面中引入這個(gè)字符串资柔,則會(huì)自動(dòng)轉(zhuǎn)換成對應(yīng)標(biāo)簽和信息焙贷,

在頁面顯示的商品詳情則只會(huì)顯示,調(diào)用時(shí)傳遞過去的開始頁贿堰,及頁面大小數(shù)量的所有商品辙芍。


相應(yīng)的在shopback后臺(tái)系統(tǒng)中判斷用戶登錄之后才能對商品表的信息進(jìn)行增刪改查等操作,否則則會(huì)攔截羹与。

如果用戶沒有登錄沸手,跳到登錄頁面,可以通過攔截器實(shí)現(xiàn)注簿,在攔截器中判斷

用戶登錄成功契吉,則在該用戶的session中放置登錄標(biāo)志,否則無

在攔截器中诡渴,只有登錄才能顯示商品詳情及操作捐晶,或者可以查看一些靜態(tài)頁面,否則就跳到登錄頁面

//因?yàn)橐褂胹ession,所以將ServletRequest強(qiáng)轉(zhuǎn)成HttpServletRequest

HttpServletRequest request = (HttpServletRequest) servletRequest;

//有一些靜態(tài)資源和serlvet請求是不需要攔截的, 放行

//獲取請求路徑 /項(xiàng)目名/請求地址

String str = request.getRequestURI();

if(str.startsWith("/shopback/resource/")||str.startsWith("/shopback/user/login")){

filterChain.doFilter(request,servletResponse);

return;

}

//獲取登陸標(biāo)志

Object userBack = request.getSession().getAttribute("user");

//判斷使用已經(jīng)登陸

if(userBack==null){

request.getRequestDispatcher("/resource/pages/login.jsp").forward(request,servletResponse);

}else{

filterChain.doFilter(request,servletResponse);

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末妄辩,一起剝皮案震驚了整個(gè)濱河市惑灵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌眼耀,老刑警劉巖英支,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異哮伟,居然都是意外死亡干花,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進(jìn)店門楞黄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來池凄,“玉大人,你說我怎么就攤上這事鬼廓≈茁兀” “怎么了?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵碎税,是天一觀的道長尤慰。 經(jīng)常有香客問我,道長雷蹂,這世上最難降的妖魔是什么伟端? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮萎河,結(jié)果婚禮上荔泳,老公的妹妹穿的比我還像新娘。我一直安慰自己虐杯,他們只是感情好玛歌,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著擎椰,像睡著了一般支子。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上达舒,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天值朋,我揣著相機(jī)與錄音,去河邊找鬼巩搏。 笑死昨登,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的贯底。 我是一名探鬼主播丰辣,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼禽捆!你這毒婦竟也來了笙什?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤胚想,失蹤者是張志新(化名)和其女友劉穎琐凭,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浊服,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡统屈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了牙躺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸿吆。...
    茶點(diǎn)故事閱讀 40,918評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖述呐,靈堂內(nèi)的尸體忽然破棺而出惩淳,到底是詐尸還是另有隱情,我是刑警寧澤乓搬,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布思犁,位于F島的核電站,受9級(jí)特大地震影響进肯,放射性物質(zhì)發(fā)生泄漏激蹲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一江掩、第九天 我趴在偏房一處隱蔽的房頂上張望学辱。 院中可真熱鬧乘瓤,春花似錦、人聲如沸策泣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽萨咕。三九已至统抬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間危队,已是汗流浹背聪建。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留茫陆,地道東北人金麸。 一個(gè)月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像簿盅,于是被迫代替她去往敵國和親钱骂。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 一、jsp介紹 jsp作用jsp全稱java server pages(java服務(wù)器頁面),本質(zhì)是一個(gè)servl...
    圣賢與無賴閱讀 1,252評論 0 14
  • JSP總結(jié)(經(jīng)典) day1 JSP 定義: 1)Java Server Page, Java EE 組件讨盒,本...
    java日記閱讀 3,462評論 0 13
  • 對于java中的思考的方向解取,1必須要看前端的頁面,對于前端的頁面基本的邏輯返顺,如果能理解最好禀苦,不理解也要知道幾點(diǎn)。 ...
    神尤魯?shù)婪?/span>閱讀 819評論 0 0
  • IOC 控制反轉(zhuǎn)容器控制程序?qū)ο笾g的關(guān)系遂鹊,而不是傳統(tǒng)實(shí)現(xiàn)中振乏,有程序代碼之間控制,又名依賴注入秉扑。All 類的創(chuàng)建慧邮,...
    irckwk1閱讀 950評論 0 0
  • 概述 什么是Struts2的框架Struts2是Struts1的下一代產(chǎn)品,是在 struts1和WebWork的...
    inke閱讀 2,263評論 0 50