




免費預(yù)覽已結(jié)束,剩余16頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
河南理工大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院實訓(xùn)報告2010 20 學(xué)年第 學(xué)期課程名稱 JSP 設(shè)計題目 VV博客 學(xué)生姓名 學(xué) 號 專業(yè)班級 2011 年 月 日19目 錄目 錄目 錄I第1章基礎(chǔ)知識11.1MySql數(shù)據(jù)庫11.2JSP與Servlet11.3 Struts框架2第2章 總體設(shè)計42.1 需求分析42.2 數(shù)據(jù)庫設(shè)計42.3 功能模塊簡介52.4 框架的應(yīng)用8第3章 詳細(xì)設(shè)計103.1 查看博文功能103.2 寫博文功能103.3 修改博文功能103.4 留言功能10第4章 功能實現(xiàn)114.1 查看博文功能114.2 編寫博文功能124.3 修改博文功能144.4 留言功能16第5章 總結(jié)19第1章 基礎(chǔ)知識第1章 基礎(chǔ)知識1.1 MySql數(shù)據(jù)庫簡介:MySQL名字的來歷MySQL是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司,在2008年1月16號被Sun公司收購。MySQL被廣泛地應(yīng)用在Internet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。特性:1.使用C和C+編寫,并使用了多種編譯器進(jìn)行測試,保證源代碼的可移植性 2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統(tǒng) 3.為多種編程語言提供了API。這些編程語言包括C、C+、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。 4.支持多線程,充分利用CPU資源 5.優(yōu)化的SQL查詢算法,有效地提高查詢速度 6.既能夠作為一個單獨的應(yīng)用程序應(yīng)用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個庫而嵌入到其他的軟件中提供多語言支持,常見的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名 7.提供TCP/IP、ODBC和JDBC等多種數(shù)據(jù)庫連接途徑 8.提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫操作的管理工具 9.可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫1.2 JSP與Servlet簡介:利用JSP技術(shù),動態(tài)信息由JSP頁面來表現(xiàn),JSP頁面由安裝在Web服務(wù)器或者使用JSP的應(yīng)用服務(wù)器上的JSP引擎執(zhí)行。JSP引擎接受客戶端對JSP頁面的請求,并且生成JSP頁面作為對客戶端的響應(yīng)。 JSP頁面通常被編譯成為Java Servlets,這是一個標(biāo)準(zhǔn)的Java擴(kuò)展。頁面開發(fā)人員能夠訪問全部的Java應(yīng)用環(huán)境,以利用Java技術(shù)的擴(kuò)展性和可移植性。當(dāng)JSP頁面第一次被調(diào)用時,如果它還不存在,就會被編譯成為一個Java Servlets類,并且存儲在服務(wù)器的內(nèi)存中。這就使得在接下來的對該頁面的調(diào)用中,服務(wù)器會有非??斓捻憫?yīng)(這避免了CGIBIN為每個HTTP請求生成一個新的進(jìn)程的問題)。 JSP頁面可以包含在多種不同的應(yīng)用體系結(jié)構(gòu)或者模型中,可以用于由不同協(xié)議、組件和格式所組成的聯(lián)合體中。基于JSP的動態(tài)信息發(fā)布技術(shù)是一個開放的、可擴(kuò)展的建立動態(tài)Web頁面的標(biāo)準(zhǔn)。不論采用什么創(chuàng)建工具,開發(fā)人員都可以使用JSP頁面來創(chuàng)建可移植的Web應(yīng)用,在不同的Web應(yīng)用服務(wù)器上運行MVC模式:為了把表現(xiàn)層presentation從請求處理request processing 和數(shù)據(jù)存儲data storage中分離開來,SUN公司推薦在JSP文件中使用一種“模型-視圖-控制器”Model-view-controller 模式。規(guī)范的SERVLET或者分離的JSP文件用于處理請求。當(dāng)請求處理完后,控制權(quán)交給一個只作為創(chuàng)建輸出作用的JSP頁。有幾種平臺都基于服務(wù)于網(wǎng)絡(luò)層的模-視圖-控件 模式(比如Struts 和Spring framework)Servlet:Servlet是一種服務(wù)器端的Java應(yīng)用程序,具有獨立于平臺和協(xié)議的特性,可以生成動態(tài)的Web頁面。 它擔(dān)當(dāng)客戶請求(Web瀏覽器或其他HTTP客戶程序)與服務(wù)器響應(yīng)(HTTP服務(wù)器上的數(shù)據(jù)庫或應(yīng)用程序)的中間層。 Servlet是位于Web 服務(wù)器內(nèi)部的服務(wù)器端的Java應(yīng)用程序,與傳統(tǒng)的從命令行啟動的Java應(yīng)用程序不同,Servlet由Web服務(wù)器進(jìn)行加載,該Web服務(wù)器必須包含支持Servlet的Java虛擬機(jī)。servlet的工作模式:客戶端發(fā)送請求至服務(wù)器 服務(wù)器啟動并調(diào)用Servlet,Servlet根據(jù)客戶端請求生成響應(yīng)內(nèi)容并將其傳給服務(wù)器 服務(wù)器將響應(yīng)返回客戶端1.3 Struts框架概述:struts是開源軟件。使用Struts的目的是為了幫助我們減少在運用MVC設(shè)計模型來開發(fā)Web應(yīng)用的時間。如果我們想混合使用Servlets和JSP的優(yōu)點來建立可擴(kuò)展的應(yīng)用,struts是一個不錯的選擇。流程:服務(wù)器啟動后,根據(jù)web.xml加載ActionServlet讀取struts-config.xml文件內(nèi)容到內(nèi)存。 以登錄為例:第一次進(jìn)login.jsp會先實例化Form、把默認(rèn)值(String默認(rèn)為空字符串,整形默認(rèn)為0)賦給表單元素。 輸入用戶名密碼提交表單、提交到action屬性的login.do,通過ActionServlet讀struts-config.xml文件找到 action下的path屬性找到.do,通過name屬性找form-beans中的form-bean的name屬性得到ActionForm的包名類名,先實例化form,把表單的值填充給form,調(diào)用form的validate方法驗證、ActionErrors返回null表示驗證通過,否則失敗返回input指定的頁面.驗證通過會實例化Action,執(zhí)行Action的excute方法。Struts 2 概述:Struts 2是Struts的下一代產(chǎn)品。是在 struts 和WebWork的技術(shù)基礎(chǔ)上進(jìn)行了合并,全新的Struts 2框架。其全新的Struts 2的體系結(jié)構(gòu)與Struts 1的體系結(jié)構(gòu)的差別巨大。Struts 2以WebWork為核心,采用攔截器的機(jī)制來處理用戶的請求,這樣的設(shè)計也使得業(yè)務(wù)邏輯控制器能夠與Servlet API完全脫離開,所以Struts 2可以理解為WebWork的更新產(chǎn)品。因為Struts 2和Struts 1有著太大的變化,但是相對于WebWork,Struts 2只有很小的變化。Struts2框架的大概處理流程如下: 1、瀏覽器發(fā)送一個請求。 2、核心控制器FilterDispatcher根據(jù)請求決定調(diào)用合適Action。 3、WebWork的攔截器鏈自動對請求應(yīng)用通用功能,如驗證等。4、回調(diào)Action的execute方法,該execute方法根據(jù)請求的參數(shù)來執(zhí)行一定的操作。5、Action的execute方法處理結(jié)果信息將被輸出到瀏覽器中,支持多種形式的視圖。核心代碼: sitemesh /* struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* / 第2章 總體設(shè)計第2章 總體設(shè)計2.1 需求分析1. 能夠?qū)κ褂镁W(wǎng)站的人員進(jìn)行初步的用戶管理(注冊,注銷,登錄,修訂信息)2. 能夠?qū)δ承╉撁孢M(jìn)行訪問控制(如只有相關(guān)用戶能夠進(jìn)行用戶的刪除功能)3. 能夠在網(wǎng)站中發(fā)布信息(信息內(nèi)容可以只為文字,可以嘗試發(fā)布含格式和圖片的信息)4. 對于網(wǎng)站中的列表(如信息列表,人員列表)應(yīng)該實現(xiàn)翻頁功能5. 網(wǎng)站的外觀應(yīng)該較為美觀6. 網(wǎng)站采用的數(shù)據(jù)庫以及數(shù)據(jù)庫連接模式自己決定(可以采用Mysql或ms sql,連接方式可以采用JNDI或者Hibernate或者手動寫連接皆可,但推薦使用mysql數(shù)據(jù)庫和Hibernate)7. 網(wǎng)站開發(fā)應(yīng)該采用模塊化程度較高的開發(fā)方式,但不限于此(可以使用存JSP編寫,或者使用servlet技術(shù)編寫,或者采用Struts框架編寫,推薦使用Struts框架編寫)2.2 數(shù)據(jù)庫設(shè)計創(chuàng)建數(shù)據(jù)庫ccmusic創(chuàng)建2個表t_users、t_musics關(guān)鍵代碼trueorg.hibernate.dialect.MySQLDialectcom.mysql.jdbc.Driverjdbc:mysql:/localhost/ccmusicrootroot2.3 功能模塊簡介注:有功能模塊圖1、 登錄2、 注冊3、 編寫博文4、 查看博文5、 修改博文6、 留言2.4 框架的應(yīng)用 /* 主頁面代碼:博客主頁博文目錄寫博文管理博文留言還用到了Struts 和Hibernate框架。第3章 詳細(xì)設(shè)計第3章 詳細(xì)設(shè)計3.1 查看博文功能注:實現(xiàn)原理和方法由Struts收集表單信息交給Action處理,Action調(diào)用UTIL業(yè)務(wù)邏輯層處理提交信息,UTIL通過Jdbo(是一個純屬get和set方法的類)向Hibernate.hbm.xml,查詢相應(yīng)數(shù)據(jù),通過hibernate.cfg.xml文件查詢數(shù)據(jù)庫3.2 寫博文功能由Struts收集表單信息交給Action處理,Action調(diào)用UTIL業(yè)務(wù)邏輯層處理提交信息,UTIL通過Jdbo(是一個純屬get和set方法的類)提交給Hibernate.hbm.xml,Hibernate.hbm.xml是建立對應(yīng)的表,然后通過hibernate.cfg.xml文件存儲數(shù)據(jù)庫3.3 修改博文功能由Struts收集表單信息交給Action處理,Action調(diào)用UTIL業(yè)務(wù)邏輯層處理提交信息,UTIL通過Jdbo(是一個純屬get和set方法的類)查詢數(shù)據(jù),返回給用戶并通過上述方法收集用戶提交數(shù)據(jù),然后通過相同的方法遞交給Hibernate.hbm.xml然后通過hibernate.cfg.xml文件存儲修改數(shù)據(jù)3.4 留言功能由Struts收集表單信息交給Action處理,Action調(diào)用UTIL業(yè)務(wù)邏輯層處理提交信息,UTIL通過Jdbo(是一個純屬get和set方法的類)提交給Hibernate.hbm.xml,Hibernate.hbm.xml是建立對應(yīng)的表,然后通過hibernate.cfg.xml文件存儲數(shù)據(jù)庫第4章 功能實現(xiàn)第4章 功能實現(xiàn)4.1 查看博文功能注:主要代碼總共有$npb.rowCount條記錄,總共有$npb.pageCount頁,當(dāng)前是第$npb.pageNum頁,每頁顯示$npb.pageSize條記錄。標(biāo)題發(fā)表時間$news.title 第一頁上一頁第一頁上一頁下一頁最后頁下一頁最后頁4.2 編寫博文功能Jsp頁面 寫博文標(biāo)題作者 內(nèi)容 Action功能public String execute() throws Exception News n = new News();BeanUtils.copyProperties(n, this);boolean ok = NewsUtil.insert(n);if(ok)return this.SUCCESS;elsereturn this.ERROR;UTIL功能public static boolean insert(News n)boolean ok = true;Session session = DbUtil.getCurrentSession();Transaction tx = session.beginTransaction();trysession.save(n);mit();catch(HibernateException exp)exp.printStackTrace();tx.rollback();ok = false;finallyDbUtil.closeSession();return ok;4.3 修改博文功能管理$news.title 修改刪除UTIL功能代碼public static List select(int firstResult, int maxResults)List list = new ArrayList();Session session = DbUtil.getCurrentSession();Transaction tx = session.beginTransaction();tryString hql = from News;Query query = session.createQuery(hql);query.setFirstResult(firstResult);query.setMaxResults(maxResults);list = query.list();mit();catch(HibernateException exp)exp.printStackTrace();tx.rollback();finallyDbUtil.closeSession();return list;public static long getRowCount()long count = 0;Session session = DbUtil.getCurrentSession();Transaction tx = session.beginTransaction();tryString hql = select count(*) from News;Query query = session.createQuery(hql);count = (Long)query.uniqueResult();mit();catch(HibernateException exp)exp.printStackTrace();tx.rollback();finallyDbUtil.closeSession();return count;public static News getNews(long id)News news = null;Session session = DbUtil.getCurrentSession();Transaction tx = session.beginTransaction();trynews = (News)session.get(News.class, id);mit();catch(HibernateException exp)exp.printStackTrace();tx.rollback();finallyDbUtil.closeSession();return news;public static boolean updateNews(News news)boolean ok = true;Session session = DbUtil.getCurrentSession();Transaction tx = session.beginTransaction();trysession.update(news);mit();catch(HibernateException exp)exp.printStackTrace();tx.rollback();ok = false;finallyDbUtil.closeSession();return ok;public static boolean deleteNews(long id)boolean ok = true;Session session = DbUtil.getCurrentSession();Transaction tx = session.beginTransaction();tryNews news = (News)session.get(News.class, id);session.delete(news);mit();catch(HibernateException exp)exp.printStackTrace();tx.rollback();ok = false;finallyDbUtil.closeSession();return ok;4.4 留言功能留言板昵稱:留言內(nèi)容 input type=hidden name=publishTime 請留言 Ajax實現(xiàn)功能代碼:var xmlHttp;function checkName()var name = document.regform.username.value; if(name = ) document.getElementById(nameText).innerHTML = 用戶名不能為空 return; if(window.XMLHttpRequest) xmlHttp = new XMLHttpRequest(); xmlHttp.onreadystatechange = callback; xmlHttp.open(GET,check?name=+name,true); xmlHttp.send(null);function callback() if(xmlHttp.readyState = 4) if(xmlHttp.status = 200) var responseText = xmlHttp.responseText; if(responseText = 該用戶已存在,請重新輸入) document.getElementById(nameText).innerHTML = 該用戶已存在,請重新輸入 doument.regform.username.value = ; else if(responseText = 該用戶名可用) document.getElementById(nameText).innerHTML = ; function checkPass1() var pwd1 = document.regform.password.value; if(pwd1.length 10) document.getElementById(pass1Text).innerHTML = 密碼長度不正確 else document.getElementById(pass1Text).innerHTML = ; function checkPass2() var pwd1 = document.regform.password.value; var pwd2 = document.regform.repassword.value; if(pwd1 != pwd2) document.getElementById(pass2Text).innerHTML = 密碼不一致 else document.getElementById(pass2Text).innerHTML = ; function checkEmail() var email = document.regform.email.value; var pattern = /(a-zA-Z0-9_-)+(a-zA-Z0-9_-)+(.a-zA-Z0-9_-)+/;
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025二級建造師考試題庫及參考答案
- 江西省新余市2024-2025學(xué)年七年級下學(xué)期期末語文試題(解析版)
- 舞臺技術(shù)工試題及答案
- 技術(shù)體系面試題及答案
- 2025年工具鉗工(中級)考試試題題庫
- 2025技術(shù)研發(fā)合同協(xié)議范本
- 2025新會計準(zhǔn)則對保險業(yè)的影響及保險合同的完善
- 2025藥品代加工合同模板
- 攝像機(jī)基礎(chǔ)知識培訓(xùn)課件
- 搭配課件教學(xué)課件
- 有色金屬工程結(jié)構(gòu)荷載規(guī)范2025年
- 2025年中級注冊安全工程師《道路運輸安全實務(wù)》考試真題及答案
- 監(jiān)察法專題培訓(xùn)課件
- 道路試驗車輛管理辦法
- DR射線檢測培訓(xùn)課件
- 胰腺腫瘤WHO分類2025
- 船舶危險貨物管理制度
- 新生兒疼痛管理指南
- PPMC欠料管理制度
- 專用線安全信息管理制度
- 模塊二 尺寸注法(課件)-中職高考《機(jī)械制圖》一輪復(fù)習(xí)(高教版第5版)
評論
0/150
提交評論