版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
.項目實訓(xùn)的目的與要求1.1項目實訓(xùn)目的課程設(shè)計總的目的在于加深對網(wǎng)頁設(shè)計與制作的基本知識的理解,網(wǎng)頁設(shè)計與制作技能綜合運用和提高,通過真實工作任務(wù),使我們能設(shè)計出有一定水平的網(wǎng)頁并解決培養(yǎng)解決實際問題的能力,掌握實際網(wǎng)頁設(shè)計與制作開發(fā)流程和開發(fā)方法。具體的課程設(shè)計應(yīng)達到以下目的:1.提高我們在實際操作中收集信息,對信息進行價值判斷,信息整理、加工的能力。2.在實際的項目任務(wù)中培養(yǎng)網(wǎng)頁設(shè)計方面的素養(yǎng)。3.在實際的項目任務(wù)中使我們網(wǎng)頁編程和制作的能力得到提高。4.培養(yǎng)相關(guān)知識和技能的綜合應(yīng)用能力。5.掌握運用JAVAEE語言及數(shù)據(jù)庫原理知識進行系統(tǒng)分析和設(shè)計的方法課程的要求在于:考驗我們上課所學(xué)知識,我們能否獨自完成一個網(wǎng)頁系統(tǒng)的開發(fā)。我們要熟練應(yīng)用JAVAEE所學(xué)的知識,與數(shù)據(jù)庫相結(jié)合,制作一個具有實用和美觀雙重功能的網(wǎng)頁系統(tǒng)。2.課題說明2.1需求分析博客是Blog的中文譯名,隨著網(wǎng)絡(luò)的發(fā)展,博客成為網(wǎng)民不可缺少的一部分。目前主流門戶網(wǎng)站,例如網(wǎng)易、新浪都開通了自己的博客頻道。除此之外,還出現(xiàn)了博客網(wǎng)站,也就是說在博客網(wǎng)站中僅能寫博客和看別人的博客,例如IT技術(shù)最有名的博客園。在本章中我們就來開發(fā)一個類似的網(wǎng)站系統(tǒng)。求賢人才網(wǎng)是一家專業(yè)于IT方向招聘的網(wǎng)站,為了更好的招聘到合適的人才,推出博客業(yè)務(wù)。求賢人才網(wǎng)通過博客用戶的技術(shù)水平來判斷他是否能夠勝任相應(yīng)的工作,公司用戶也可以通過看博客用戶的文章看到相應(yīng)的技術(shù)水平。求賢人才網(wǎng)將通過這種方式,招攬更多的人才,從而增加自己的招聘業(yè)務(wù)量。對于求賢人才網(wǎng)來說,最大的需求就是讓更多的用戶瀏覽和注冊,并且發(fā)表自己的博客文章。對于用戶而言,首先要能瀏覽其他用戶發(fā)表的文章,并且這項操作是應(yīng)該不需要登錄的。用戶注冊并登錄后,要能夠發(fā)表自己的信息,從而能夠提供給別人查看。2.2開發(fā)工具與技術(shù)介紹硬件平臺:CPU:P41.8GHz;內(nèi)存:256MB以上。軟件平臺:操作系統(tǒng):Windows7Server;數(shù)據(jù)庫:MySQL;開發(fā)工具包:DreamweaverCS4,PhotoshopCS4,Eclipse;服務(wù)器:IIS5.1;瀏覽器:IE5.0及以上版本,推薦使用IE6.0;分辨率:最佳效果1024×768。3.總體設(shè)計3.1系統(tǒng)項目規(guī)劃該博客網(wǎng)站的功能主要是為了博客用戶設(shè)計開發(fā)的,用戶進入博客網(wǎng)站后,有三種選擇,注冊新用戶,登錄和瀏覽博客。通過注冊和登錄用戶可以獲取自己博客空間,如果不進行這些操作,用戶也可以瀏覽其他用戶的博客內(nèi)容。進入自己博客中,用戶要能夠完成如下功能● 對自己的博客進行個性化設(shè)計● 發(fā)表日志● 上傳圖片和對圖片進行瀏覽在博客首頁中,是不區(qū)分用戶是否登錄的,用戶用能夠完成如下功能:● 瀏覽博客網(wǎng)站的所有文章● 瀏覽某一博客用戶發(fā)表的所有文章● 瀏覽某一博客用戶上傳的圖片● 對文章進行評論● 查看文章的點擊率● 查看文章的評論量3.2系統(tǒng)功能結(jié)構(gòu)圖本系統(tǒng)首先需要對用戶進行身份驗證,驗證時判斷用戶是以注冊用戶還是普通游客。如果已是注冊用戶,則跳轉(zhuǎn)到對應(yīng)的個人博客的頁面;如果是游客,則直接進入到博客網(wǎng)站首頁。下面是博客網(wǎng)站的功能結(jié)構(gòu)圖。身份身份識別是否為注冊用戶是否為注冊用戶是否個人博客頁面?zhèn)€人博客頁面博客網(wǎng)站首頁博客網(wǎng)站首頁瀏覽所有文章進入他人博客發(fā)表文章個性化設(shè)置上傳圖片瀏覽所有文章進入他人博客發(fā)表文章個性化設(shè)置上傳圖片查看用戶圖片發(fā)表評論查看文章信息查看用戶圖片發(fā)表評論查看文章信息圖3.1模塊結(jié)構(gòu)圖3.3數(shù)據(jù)庫設(shè)計本系統(tǒng)一共設(shè)計出5個實體,分別是用戶實體、文章實體、個性化實體、評論實體以及點擊量實體。用戶表用來存儲博客系統(tǒng)中建立自己的博客,并進行博客操作的客戶,包括用戶名、密碼、昵稱、密碼保護問題和密碼保護回答字段。表3.1用戶表字段名數(shù)據(jù)類型是否主鍵描述username文本(varchar)是用戶名password文本(varchar)否登錄密碼nickname文本(varchar)否昵稱question文本(varchar)否密碼保護問題answer文本(varchar)否密碼保護回答個性設(shè)置表用來儲存用戶對個人博客進行個性化設(shè)置的基本信息,包括用戶名、博客標(biāo)題和個性簽名。表3.1個性設(shè)置表字段名數(shù)據(jù)類型是否主鍵描述username文本(varchar)是用戶名blogtitle文本(varchar)否博客標(biāo)題idiograph文本(varchar)否個性簽名文章表用來存儲博客系統(tǒng)中博客文章的基本信息,包括文章的Id、文章標(biāo)題、文章內(nèi)容、發(fā)表用戶名、發(fā)表時間和評論數(shù)。表3.1文章表字段名數(shù)據(jù)類型是否主鍵描述Id整數(shù)(int)是文章Idtitle文本(varchar)否文章標(biāo)題content文本(text)否文章內(nèi)容username文本(varchar)否發(fā)表用戶名date日期否發(fā)表時間hasread整數(shù)(int)否評論數(shù)評論表用來存儲博客系統(tǒng)中所有評論的基本信息,包括評論Id、評論文章、評論內(nèi)容和評論用戶。表3.1評論表字段名數(shù)據(jù)類型是否主鍵描述Id整數(shù)(int)是評論IdAid整數(shù)(int)否所屬文章IDcontent文本(text)否評論內(nèi)容username文本(varchar)否評論用戶點擊量表用來存儲博客系統(tǒng)中點擊文章的基本信息,包括ID,文章ID,點擊者IP和點擊時間。表3.1點擊量表字段名數(shù)據(jù)類型是否主鍵描述Id整數(shù)(int)是點擊IDAid整數(shù)(int)否所屬文章IDip文本(varchar)否點擊者IPtime日期否點擊時間系統(tǒng)實現(xiàn)4.1博客系統(tǒng)登錄界面如下圖所示圖4.1博客系統(tǒng)登錄界面登錄界面關(guān)鍵代碼如下:publicStringexecute()throwsException{ Useruser=newUser(); user.setUsername(username); user.setPassword(password); //獲得request HttpServletRequestrequest=ServletActionContext.getRequest(); if(userService.loginUser(user)){ request.setAttribute("url","user/getBlogInfo.action"); request.setAttribute("info","登陸成功"); //將username保存到session范圍中// HttpSessionsession=request.getSession(); Mapsession=ActionContext.getContext().getSession();// session.setAttribute("username",username); session.put("username",username); returnSUCCESS; }else{ request.setAttribute("url","login.jsp"); request.setAttribute("info","登陸失敗"); returnERROR; } }4.2博客網(wǎng)站首頁進入登錄界面后,可以選擇不登錄,而是直接單擊“博客首頁”,從而進入博客系統(tǒng)首頁,在博客系統(tǒng)首頁中可以查看到該博客的網(wǎng)站中已經(jīng)發(fā)表的博客文章,在博客網(wǎng)站的右半部分還可以看到文章的發(fā)表時間、點擊量、評論和發(fā)表用戶。圖4.2博客網(wǎng)站首頁下面是博客網(wǎng)站頁面的關(guān)鍵代碼:publicStringexecute()throwsException{ Pagepage=newPage(); //分頁信息 page.setCurrentPage(0); //設(shè)置當(dāng)前頁為第一頁 page.setEveryPage(10); //每頁顯示10條記錄 Resultresult=articleService. showArticleByPage(page);//通過調(diào)用業(yè)務(wù)邏輯組件來完成查詢 page=result.getPage(); List<Article>all=result.getList();//獲得文章結(jié)果集 StringfilePath=ServletActionContext. getServletContext().getRealPath("/rss.xml");//設(shè)置訂閱文件地址 CreateRss.publishRss(all,filePath);//寫入訂閱文件 returnthis.SUCCESS; }4.3新博客注冊界面游客可以點擊新用戶注冊來注冊屬于自己的用戶。點擊新用戶注冊就可以進行新用戶注冊。圖4.3新博客注冊界面下面是新博客注冊頁面的關(guān)鍵代碼:publicStringexecute()throwsException{ //封裝一個user對象 Useruser=newUser(); user.setUsername(username); user.setPassword(password); user.setNickname(nickname); user.setQuestion(question); user.setAnswer(answer); //獲得request HttpServletRequestrequest=ServletActionContext.getRequest(); if(userService.registerUser(user)){ request.setAttribute("url","login.jsp"); request.setAttribute("info","注冊成功"); returnSUCCESS; }else{ request.setAttribute("url","register.jsp"); request.setAttribute("info","注冊失敗"); returnERROR; } }4.4個性化設(shè)置界面登陸博客成功后,這是將進入到自己的博客頁面,首先是讓用戶進行個性化設(shè)置。圖4.4個性化設(shè)置界面下面是個性化設(shè)計界面的關(guān)鍵代碼:publicStringexecute()throwsException{// //獲得request// HttpServletRequestrequest=ServletActionContext.getRequest();// //獲得session// HttpSessionsession=request.getSession();// //獲得username// Stringusername=(String)session.getAttribute("username"); Mapsession=ActionContext.getContext().getSession(); Stringusername=(String)session.get("username"); BlogInfoblogInfo=newBlogInfo(); //設(shè)置用戶名 blogInfo.setUsername(username); //設(shè)置博客標(biāo)題 blogInfo.setBlogtitle(blogtitle); //設(shè)置個性簽名 blogInfo.setIdiograph(idiograph); //調(diào)用業(yè)務(wù)邏輯組件來完成設(shè)置 blogInfoService.setBlogInfo(blogInfo); returnthis.SUCCESS; }4.5寫日志頁面單擊“用戶首頁”超鏈接,可以查看自己已寫完的所有博客文章,這是和游客相同的操作,單擊“寫日記”超鏈接,就會進入寫日記頁面。圖4.5寫日志頁面下面是寫日記界面的關(guān)鍵代碼:publicStringexecute()throwsException{ Mapsession=ActionContext.getContext().getSession(); Stringusername=(String)session.get("username"); //封裝一個PO類的對象 Articlearticle=newArticle(); article.setTitle(title); article.setContent(content); article.setUsername(username); article.setDate(newDate()); article.setHasread(0); articleService.addArticle(article); returnthis.SUCCESS; }}4.6相冊頁面在個人博客中,單擊“相冊”超鏈接,就會進入到相冊頁面。圖4.6相冊頁面下面是相冊頁面的關(guān)鍵代碼:publicStringexecute()throwsException{//獲得username Mapsession=ServletActionContext.getContext().getSession(); Stringusername=(String)session.get("username");//創(chuàng)建一個輸入流 InputStreamis=newFileInputStream(myFile);//設(shè)置文件保存目錄 Filetofile=newFile(photoPath,filename);//使用輸出流來包裝目標(biāo)文件 OutputStreamos=newFileOutputStream(tofile); byte[]buffer=newbyte[1024]; intlength=0; while((length=is.read(buffer))>0){ os.write(buffer,0,length); }//關(guān)閉輸入流 is.close();//關(guān)閉輸出流 os.close(); returnthis.SUCCESS;}開發(fā)技巧與實現(xiàn)方法5.1在Struts中使用攔截器進行用戶登錄的實現(xiàn)在網(wǎng)站中有些功能是需要用戶必須登錄才能操作的,例如博客網(wǎng)站中的發(fā)布文章,因為該操作是不定位置的,所以直接在該功能上加上一個控制層是不合適的。如果要完成該功能,在Struts2中就是采用攔截器的概念,在操作前先經(jīng)過攔截器,通過攔截器判斷用戶是否登錄。如果已經(jīng)登錄,則可以通過;如果沒有登錄,則返回讓用戶進行登錄。packageerceptor;importjava.util.Map;importcom.opensymphony.xwork2.Action;importcom.opensymphony.xwork2.ActionContext;importcom.opensymphony.xwork2.ActionInvocation;importerceptor.AbstractInterceptor;publicclassUserInterceptorextendsAbstractInterceptor{publicStringintercept(ActionInvocationinvocation)throwsException{ ActionContextcontext=invocation.getInvocationContext(); Mapsession=context.getContext().getSession(); Stringusername=(String)session.get("username"); if(username==null||"".equals(username)){ returnAction.LOGIN; }else{ returninvocation.invoke(); } }}5.2在攔截器中進行配置攔截器開發(fā)完成后,還是不能起到效果的,還需要在Struts配置文件struts.xml中進行配置。<interceptors> <interceptorname="userInterceptor"class="erceptor.UserInterceptor"></interceptor> </interceptors>5.3利用Hibernate技術(shù)進行個人博客操作當(dāng)進行個人博客操作時,是要將用戶輸入的信息保存到數(shù)據(jù)庫中的。在本系統(tǒng)項目中,進行數(shù)據(jù)庫操作是通過Hibernate技術(shù)完成的,從而使DAO方法應(yīng)用也更加簡單。importcom.sanqing.po.User;publicclassUserDAOImplextendsHibernateDaoSupportimplementsUserDAO{publicvoidadd(Useruser){ this.getHibernateTemplate().save(user); }publicvoiddelete(Useruser){}publicListqueryAll(){ returnnull; }publicUserqueryByID(Stringusername){ Listlist=this.getHibernateTemplate().find("selectuserfromUseruserwhereuser.username='"+username+"'"); if(list.size()==0){ returnnull; }else{ return(User)list.get(0); } }}5.4進行個人博客操作后,進行配置修改因為本項目是采用Spring進行處理,所以需要配置文件中對DAO進行配置。<beanid="userDAO"class="com.sanqing.dao.UserDAOImpl"> <propertyname="hibernateTemplate"> <refbean="hibernateTemplate"/> </property> </bean>5.5在Action中進行超鏈接的調(diào)用在顯示所有文章頁面中,每一個文章標(biāo)題都是超鏈接,單擊文章標(biāo)題就會顯示該文章的所有信息,包括內(nèi)容、評論和點擊數(shù)。這些都將在查看文章Action中進行調(diào)用。packagecom.sanqing.dao;publicclassArticleDAOImplextendsHibernateDaoSupportimplementsArticleDAO{publicArticlequeryById(intid){ Listfind=this.getHibernateTemplate().find("selectartfromArticleartwhereart.id=?",id); return(Article)find.get(0); }}項目實訓(xùn)總結(jié)通過本次課程設(shè)計,我感受頗多,盡管上課時也認(rèn)真聽了老師的講課,但是已開始面對自己的題目時,還是有些不知所措,都不知道如何下手,后來去圖書館借了幾本相關(guān)的書籍,心里在感覺有了一些底。經(jīng)過這差不多四個星期來的學(xué)習(xí)與編碼,總算還是收獲不少,對JavaEE的認(rèn)識也更加的深刻了。JSP是一門新技術(shù),他基于JavaServlet以及整個JavaEE框架體系的Web開發(fā)技術(shù)。從網(wǎng)上得知JavaEE的中文問題歷史悠久,連綿不絕,至今也
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 土壤取樣課程設(shè)計
- 幼兒園老年伙食課程設(shè)計
- Mordant-black-17-Sunchromine-blue-black-R-生命科學(xué)試劑-MCE
- Manninotrionate-potassium-生命科學(xué)試劑-MCE
- 回轉(zhuǎn)式包裝機課程設(shè)計
- 城市建筑節(jié)能技術(shù)與材料應(yīng)用
- 企業(yè)品牌推廣與公關(guān)策略
- 跨文化交流與合作策略探討
- 2024年房產(chǎn)融資借款協(xié)議樣本解析版B版
- 早教活動課程設(shè)計
- 資產(chǎn)評估常用數(shù)據(jù)與參數(shù)手冊
- 公園廣場保潔管理服務(wù)投標(biāo)方案
- 二手車鑒定評估報告表
- 警察影像-江蘇警官學(xué)院中國大學(xué)mooc課后章節(jié)答案期末考試題庫2023年
- 金融隨機分析2課后答案
- 大學(xué)美育知到章節(jié)答案智慧樹2023年延邊大學(xué)
- 數(shù)控銑床工作臺三維運動伺服進給系統(tǒng)設(shè)計-課程設(shè)計
- 全國碩士研究生入學(xué)統(tǒng)一考試《思想政治理論》試題答題卡模板
- 外貿(mào)函電-報盤及外貿(mào)函電模板大全
- 施工總平面布置圖及說明及施工現(xiàn)場平面布置圖
- 商鋪交接清單
評論
0/150
提交評論