




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
web基礎(chǔ)知識,提升綜合運(yùn)用能力,故而講解此案例。要求,每位同學(xué)能travelpom.xmlok,完成項(xiàng)目導(dǎo)入。需要等待一小會,項(xiàng)目WebJackson:jsonServiceJedis:javaredisDao----USE6功//820functioncheckUsername()varusername=varreg_username=varflag= $("#username").css("border","1pxsolid}return}functioncheckPassword()varpassword=varreg_password=varflag=$("#password").css("border","1pxsolid}return}functioncheckvar=$("#varreg_=varflag=reg_.test(}
$("#").css("border","1pxsolidreturn}$(function()returnreturncheckUsername()&&checkPassword()&&//如果這個方法沒有返回值,或者返回為true html作servletajax獲取響應(yīng)數(shù)據(jù)publicclassRegistUserServletextendsHttpServletprotectedvoiddoPost(HttpServletRequestrequest,HttpServletResponsethrowsServletException,IOExceptionStringcheck=HttpSessionsession=Stringcheckcode_serverString)session.getAttribute("CHECKCODE_SERVER");if(checkcode_server==null||ResultInfoinfo=new//info對象序列化為ObjectMappermapper=newObjectMapper();Stringjson=mapper.writeValueAsString(info);}Map<String,String[]>map=Useruser=newtry}catch(IllegalAccesceptione){}catch(InvocationTargetExceptione){}//3.調(diào)用serviceUserServiceservice=newUserServiceImpl();booleanflag=service.regist(user);ResultInfoinfo=newResultInfo(); 失敗}//將info對象序列化為ObjectMappermapper=newObjectMapper();Stringjson=mapper.writeValueAsString(info);//設(shè)置content-type}protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponsethrowsServletException,IOExceptionthis.doPost(request,}}UserServicepublicpublicclassUserServiceImplimplementsUserServiceprivateUserDaouserDao=new@parampublicbooleanregist(Useruser)Useru=//u是否為if(u!= return}returnreturn}}UserDaopublicpublicclassUserDaoImplimplementsUserDaoprivate te te=new publicUserfindByUsername(Stringusername){Useruser=null;try//1.定義Stringsql="select*fromtab_userwhereusername=//2.執(zhí)行user= te.queryForObject(sql,BeanPropertyRowMapper<User>(User.class),}catch(Exceptione)}return}publicvoidsave(Useruser)//1.定義Stringsql="insertinto//2.執(zhí)行 ) }}}開啟在MailUtils中設(shè)置自己的郵箱賬號和(碼修改保存Dao代碼,加上status和code的代碼邏//1.//1.Stringcode=if(code!=//2.調(diào)用serviceUserServiceservice=newbooleanflag=Stringmsgnull;//msg"激活成功,請<ahref='login.html'>登錄//msg"激活失敗,請聯(lián)系管理員}publicbooleanpublicbooleanactive(Stringcode)//1.Useruser=userDao.findByCode(code);if(user!=null){//2.調(diào)用dao的修改激活狀態(tài)的方法returntrue;returnreturn}}@param@parampublicUserfindByCode(Stringcode){Useruser=null;tryStringsql="select*fromtab_userwherecode=user= }catch(DataAcces ceptione){}return}@parampublicvoidupdateStatus(Useruser)Stringsql="updatetab_usersetstatus='Y'where }//1.//1.Map<String,String[]>map=//2.封裝UserUseruser=newtrytry{}catch(IllegalAcces ceptione){}catch(InvocationTargetExceptione){}//3.調(diào)用ServiceUserServiceservice=newUserServiceImpl();Useru=service.login(user);ResultInfoinfo=new//4.判斷用戶對象是否為if(u== }if(u!=null&&}if(u!=null&&}ObjectMappermapper=newpublicpublicUserlogin(Useruser)}publicpublicUserfindByUsernameAndPassword(Stringusername,Stringpassword){Useruser=null;try{//1.定義Stringsql="select*fromtab_userwhereusername=?andpassword=?";//2.執(zhí)行user= te.queryForObject(sql,BeanPropertyRowMapper<User>(User.class),}catch(Exceptione)}return}index頁面中用戶的提示信息功Servlet////從sessionObjectuser=//將userObjectMappermapper=newObjectMapper();什么叫做登錄了?sessionuser對象。
servletsession銷毀//1.銷毀//1.銷毀sessionServletServlet中提供不同的方法,完成用戶的Idea控制臺中文亂碼解決:-BaseServletpublicpublicclassBaseServletextendsHttpServletprotectedvoidservice(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{//System.out.println("baseServlet的service方法被執(zhí)行////1.Stringuri=req.getRequestURI();// System.out.println("uri:"+uri);////2.StringmethodName=+//3.獲取方法對象 tryMethodmethodHttpServletRequest.class,HttpServletResponse.class);//4. }catch(NoSu ethodExceptione){}catch(IllegalAcces ceptione){}catch(InvocationTargetExceptione){}}}}UserServlet@WebServlet("/user/*"@WebServlet("/user/*")///user/addpublicclassUserServletextendsBaseServletprivateUserServiceservice=new*@param@param@throws@throwspublicvoidregist(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//Stringcheck=//從sesionHttpSessionsession=request.getSession();Stringcheckcode_server=(String)//if(checkcode_server==|| ResultInfoinfo=new //將info對象序列化為ObjectMappermapper=newStringjson=}//1.Map<String,String[]>map=//2.Useruser=newtry{}catch(IllegalAccesceptione){}catch(InvocationTargetExceptione){}//3.調(diào)用service//UserServiceservice=newUserServiceImpl();booleanflag=service.regist(user);ResultInfoinfo=newResultInfo();//4.//成}//將info對象序列化為ObjectMappermapper=newObjectMapper();Stringjson=mapper.writeValueAsString(info);
//將json//設(shè)置content-type}@param@param@throws@throwspublicvoidlogin(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//1.獲取用戶名和數(shù)Map<String,String[]>map=//2.封裝UserUseruser=newtry{}catch(IllegalAccesceptione){}catch(InvocationTargetExceptione){}//3.調(diào)用Service//UserServiceservice=newUserServiceImpl();Useru=service.login(user);ResultInfoinfo=new//4.判斷用戶對象是否為if(u==}//5.if(u!=null&&}//6.if(u!=null&&
}//ObjectMappermapper=new}
@param@param@throws@throwspublicvoidfindOne(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//從sessionObjectuser=//將user}
ObjectMappermapper=newObjectMapper();@param@param@throws@throwspublicvoidexit(HttpServletRequestHttpServletResponseresponse)throwsServletException,IOException{//1.銷毀session//2.}@param@param@throws@throwspublicvoidactive(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//1.Stringcode=if(code!=//2.調(diào)用service//UserServiceservice=newbooleanflag=
Stringmsgnull;//msg"激活成功,請<ahref='login.html'>//msg"激活失敗,請聯(lián)系管理員}}}}UserServiceImplpublicclassCategoryServletextendsBaseServletprivateCategoryServiceservice=@param@param@throws@throwspublicvoidfindAll(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//1.調(diào)用serviceList<Category>cs=//2.序列化json/*ObjectMappermapper=newObjectMapper();}}publicpublicclassCategoryServiceImplimplementsCategoryServiceprivateCategoryDaocategoryDao=newCategoryDaoImpl();publicList<Category>findAll()return}}publicclasspublicclassCategoryDaoImplimplementsCategoryDaoprivate te te= publicList<Category>findAll()Stringsql="select*fromtab_category";returntem }}BaseServlet中封裝了序列化json直接將傳入的對象序列化為json@parampublicvoidwriteValue(Objectobj,HttpServletResponseresponse)throwsIOException{ObjectMappermapper=newObjectMapper();}將傳入的對象序列化為json@parampublicStringwriteValueAsString(Objectobj)JsonProcessingExceptionObjectMappermapper=newreturn}//$.get("category/findAll",{},function//$.get("category/findAll",{},function(data) ame:國內(nèi)游varlis'<liclass="nav-active"><ahref="index.html">首//遍歷數(shù)組,拼接字符串for(vari=0;i<data.length;i++)varli='<li><alis+=}榜的li,<li><ank.html">lis+='<li><ank.html">榜//將lis字符串,設(shè)置到ul的htmlredis來緩存這個數(shù)據(jù)。publicList<Category>findAll()//1.從redis//1.1獲取jedisJedisjedis=//1.2可使用sortedsetSet<String>categorys=jedis.zrange("category",0,-1);List<Category>cs=null;//2.if(categorys==null||categorys.size()==0) //3.如果為空,需要從數(shù)據(jù)庫查詢,在將數(shù)據(jù)存入//3.1cs=//3.2將集合數(shù) 到redis中的category的for(inti=0;i<cs.size();i++)jedis.zadd(jedis.zadd("category",cs.get(i).getCid(), }}else //4.如果不為空,將set的數(shù)據(jù)存入listcs=newArrayList<Category>();for(Stringname:categorys){Categorycategory=new}}return}Select*fromtab_routewherecid=idpublicclassCategoryServiceImplimplementspublicclassCategoryServiceImplimplementsCategoryServiceprivateCategoryDaocategoryDao=newCategoryDaoImpl();publicList<Category>findAll()//1.從redis//1.1獲取jedisJedisjedis=//1.2可使用sortedset//Set<String>categorys=jedis.zrange("category",0,//1.3查詢sortedset中的分?jǐn)?shù)(cid)和值(cname)Set<Tuple>categorys=jedis.zrangeWithScores("category",0,-List<Category>cs=//2.if(categorys==null||categorys.size()==0) //3.如果為空,需要從數(shù)據(jù)庫查詢,在將數(shù)據(jù)存入//3.1cs=//3.2將集合數(shù) 到redis中的category的for(inti=0;i<cs.size();i++)jedis.zadd("category",}}else //4.如果不為空,將set的數(shù)據(jù)存入listcs=newArrayList<Category>();for(Tupletuple:categorys){Categorycategory=new }}return}}頁面?zhèn)鬟fvarli='<li><avarli='<li><a$$(function()varsearch=varcid=id$$(function()varsearch=varcid=//當(dāng)頁碼加載完成后,調(diào)用load方法,發(fā)送ajaxfunctionload(cid//發(fā)送ajax請求,請求route/pageQuery,傳遞tion(pb){//解析pagebean//1.//1.1展示總頁碼 錄varlis=varfristPage='<li//varbeforeNum=pb.currentif(beforeNum<=beforeNum=}varbeforePage='<liclass="threeword"><ahref="javascript:void(0)">上一頁lis+=fristPage;lis+=beforePage;//1.2510410定義開始位置begin,結(jié)束位置varbeginvarend;////1.10if(pb.totalPage<//10begin=end=//10begin=pb.current5;end=pb.currentPage+4;//2.510if(begin<begin=end=begin+}//3.410if(end>pb.totalPage){end=pb.totalPage;begin=end-9;}}for(vari=begin;i<=end;i++)var//判斷當(dāng)前頁碼是否等于if(pb.currentPage==li='<liclass="curPage"li='<li}lis+=li;}varlastPage'<liclass="threeword"><avarnextPage'<liclass="threeword"><alis+=nextPage;lis+=//將lis內(nèi)容設(shè)置到//2.varroute_lis=for(vari=0;i<pb.list.length;i++)varroute=varli='<li>\n' <divclass="img"><imgsrc="'+route.rimage+'"style="width:299px;"></div>\n'+ <divclass="text1">\n''<p>'+route.rname+'</p>\n' <br/>\n''<p>'+route.routeIntroduce+'</p>\n' </div>\n' <divclass="price">\n' class="price_num">\n''<span>¥</span>\n''<span>'+route.price+'</span>\n' + </p>\n' href="route_detail.html">查看詳情</a></p>\n </div>\n' route_lis+=}//}publicclassPageBean<T>publicclassPageBean<T>privateinttotalCount;// privateinttotalPage;//總頁數(shù)privateintcurrentPage;//當(dāng)前頁碼privateintpageSize;//每頁顯示的條數(shù)privateList<Tlist;//每頁顯示的數(shù)據(jù)集合publicintgetTotalCount(){return}publicvoidsetTotalCount(inttotalCount)this.totalCount=}publicintgetTotalPage()return}publicvoidsetTotalPage(inttotalPage)this.totalPage=}publicintgetCurrentPage()return}publicvoidsetCurrentPage(intcurrentPage)this.currentPage=}publicintgetPageSize()return}publicpublicvoidsetPageSize(intpageSize)this.pageSize=}publicList<T>getList()return}publicvoidsetList(List<T>list)this.list=}}publicclassRouteServletextendsBaseServletprivateRouteServicerouteService=@param@param@throws@throwspublicvoidpageQuery(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//1.StringcurrentPageStr=StringpageSizeStr=StringcidStr=intcid0;////2.if(cidStr!=null&&cidStr.length()>0){cid=Integer.parseInt(cidStr);}intcurrentPage0;//if(currentPageStr!=nullcurrentPageStr.length()currentPageStr.length()>currentPage=currentPage=}intpageSize0;//每頁顯示條數(shù),如果不傳遞,默認(rèn)每頁顯示5條記錄if(pageSizeStr!=null&&pageSizeStr.length()pageSize=pageSize=}//3調(diào)用service查詢PageBeanPageBean<Route>pb=routeService.pageQuery(cid,currentPage,pageSize);//4.將pageBean對象序列化為json,返回}}publicpublicclassRouteServiceImplimplementsRouteServiceprivateRouteDaorouteDao=newRouteDaoImpl();publicPageBean<Route>pageQuery(intcid,currentPage,intpageSize)//封裝PageBean<Route>pb=new//inttotalCount=//intintstartcurrentPage1*pageSize;//List<Route>list//inttotalPage=totalCount%pageSize==0totalCount/pageSize:(totalCount/pageSize)+1;return}}publicclasspublicclassRouteDaoImplimplementsRouteDaoprivate te te= publicintfindTotalCount(intcid)Stringsql="selectcount(*)fromtab_routewherecid=?"; }publicList<Route>findByPage(intcid,intstart,pageSize)Stringsql="select*fromtab_routewhere=?limit?,returntem }}$("#search-button").click(function$("#search-button").click(function()//varrname=varcid=//跳轉(zhuǎn)路徑拼接上rname=xxx,varvarcid=//獲取rnamevarrname=//判斷rname如果不為null或者rname= }修改代publicclassRouteServletextendsBaseServletprivateRouteServicerouteService=new@param@param@throws@throwspublicvoidpageQuery(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//1.StringcurrentPageStr=StringpageSizeStr=request.getParameter("pageSize");StringcidStr=request.getParameter("cid");
//接受rnameStringrname=rname=newString(rname.getBytes("iso-8859-intcid=0;////2.if(cidStr!=null&&cidStr.length()>0){cid=Integer.parseInt(cidStr);
intcurrentPage0;//if(currentPageStr!=null&¤tPageStr.length()currentPage=currentPage=}
intpageSize0;//if(pageSizeStr!=null&&pageSizeStr.length()>0){pageSize=Integer.parseInt(pageSizeStr);pageSize=}//3//3調(diào)用service查詢PageBeanPageBean<Route>pb=routeService.pageQuery(cid,currentPage,pageSize,rname);//4.將pageBean對象序列化為json,返回}}publicpublicPageBean<Route>pageQuery(intcid,intcurrentPage,pageSize,Stringrname)//封裝PageBean<Route>pb=new//inttotalCount=//intstartcurrentPage1*pageSize;//開始的記錄數(shù)List<Route>list=//錄數(shù)/inttotalPage=totalCount%pageSize==0?totalCountpageSize:(totalCount/pageSize)+1;return}publicintfindTotalCount(intcid,Stringrname)//Stringsql="selectcount(*)fromtab_routewhere=//1.定義sqlStringsql="selectcount(*)fromtab_routewhere1=1";StringBuildersb=newStringBuilder(sql);ListparamsnewArrayList();////2.if(cid!=sb.append("andcid=?}if(rname!=null&&rname.length()>0){sb.append("andrnamelike?");}sql=}publicList<Route>findByPage(intcid,intstart,pageSize,Stringrname)//Stringsql="select*fromtab_routewherecid=?andrnamelike?limit?,?";Stringsql="select*fromtab_routewhere1=1//1.定義sqlStringBuildersb=newListparamsnewArrayList();////2.if(cid!=sb.append("andcid=?}if(rname!=null&&rname.length()>sb.append(sb.append("andrnamelike?}sb.append(limit);//sql=return }$$(function()/*varsearch=varcid=//獲取cidvarcid=//獲取rnamevarrname=//判斷rname如果不為null或者rname= }//當(dāng)頁碼加載完成后,調(diào)用load方法,發(fā)送ajaxfunctionload(cid//發(fā)送ajax請求,請求route/pageQuery,傳遞:rname},function(pb)//解析pagebean//1.//1.1展示總頁碼和錄
<li><ahref="">首頁<liclass="threeword"><ahref="#"><liclass="curPage"><a<li><a<li><a<li><a<li><a<li><a<li><a<li><a<li><a<li><a<liclass="threeword"><ahref="javascript:;"><liclass="threeword"><ahref="javascript:;">varlis=varfristPage='<li//varbeforeNum=pb.currentif(beforeNum<=beforeNum=}varbeforePage='<liclass="threeword"><ahref="javascript:void(0)">上一頁lis+=fristPage;lis+=beforePage;//1.2510410定義開始位置begin,結(jié)束位置varbeginvarend;////1.10if(pb.totalPage<//10begin=end=//10begin=pb.current5;end=pb.currentPage+4;//2.510if(begin<begin=end=begin+}//3.410if(end>pb.totalPage){end=pb.totalPage;begin=end-9;}}for(vari=begin;i<=end;i++)var//判斷當(dāng)前頁碼是否等于if(pb.currentPage==li='<liclass="curPage"li='<li}lis+=li;}/*for(vari=1;i<=pb.totalPage;i++){varli;//判斷當(dāng)前頁碼是否等于iif(pb.currentPagei){li='<liclass="curPage"li='<li}lis+=li;varlastPage'<liclass="threeword"><avarnextPage'<liclass="threeword"><alis+=nextPage;lis+=//將lis內(nèi)容設(shè)置到<divclass="img"><imgsearch_03.jpg"<div<p>100/春節(jié)出發(fā)】廣州增城三英溫泉<div<p<p><ahref="route_detail.html">
//2.varroute_lis=for(vari=0;i<pb.list.length;i++)varroute=varli='<li>\n' <divclass="img"><imgsrc="'+route.rimage+'"styl
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 危險(xiǎn)品管理對噪聲振動和輻射的管理和控制要求考核試卷
- 服裝設(shè)計(jì)人體工學(xué)原理考核試卷
- 批發(fā)業(yè)采購談判技巧與策略考核試卷
- 機(jī)床功能部件在虛擬現(xiàn)實(shí)設(shè)備中的交互式設(shè)計(jì)考核試卷
- 有機(jī)肥料在土壤侵蝕控制與生態(tài)恢復(fù)中的應(yīng)用考核試卷
- 兒童情商培訓(xùn)課件
- 代加工合同范本簡單
- 燈具采購標(biāo)準(zhǔn)合同范本
- 簡易的物業(yè)合同范本
- 助學(xué)贈與合同范本
- 英語書寫模板
- 湖北省機(jī)關(guān)事業(yè)單位勞動合同制工人
- 天然氣管道保護(hù)蓋板涵施工方案
- 燒結(jié)普通磚抗壓強(qiáng)度試驗(yàn)
- 云南省普通初中學(xué)生成長記錄.doc
- JJG 162-2019飲用冷水水表 檢定規(guī)程(高清版)
- 煉糖清凈工藝關(guān)鍵控制點(diǎn)分析
- 門窗承受荷載計(jì)算方法和公式(門窗工程專業(yè)資料)
- 恒生指數(shù)收盤價(jià)歷史數(shù)據(jù)(1986--2021)
- 衛(wèi)生潔具購銷合同
- 起毛機(jī)主傳動結(jié)構(gòu)設(shè)計(jì)說明書
評論
0/150
提交評論