JSP網(wǎng)絡(luò)程序設(shè)計(jì)課程設(shè)計(jì)_第1頁
JSP網(wǎng)絡(luò)程序設(shè)計(jì)課程設(shè)計(jì)_第2頁
JSP網(wǎng)絡(luò)程序設(shè)計(jì)課程設(shè)計(jì)_第3頁
JSP網(wǎng)絡(luò)程序設(shè)計(jì)課程設(shè)計(jì)_第4頁
JSP網(wǎng)絡(luò)程序設(shè)計(jì)課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

河南理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院課程設(shè)計(jì)報(bào)告2014—2015學(xué)年第二學(xué)期課程名稱網(wǎng)絡(luò)程序設(shè)計(jì)設(shè)計(jì)題目通訊錄設(shè)計(jì)姓名學(xué)號專業(yè)班級指導(dǎo)教師-2015年7月目錄JSP實(shí)現(xiàn)網(wǎng)絡(luò)通訊錄 3第1章JavaWeb應(yīng)用背景介紹 31.1什么是Web編程 31.2JSP簡介 31.3JSP的優(yōu)點(diǎn) 4第二章網(wǎng)絡(luò)通訊錄的實(shí)現(xiàn) 42.1需求分析 42.2數(shù)據(jù)庫實(shí)現(xiàn)過程 42.3在線通訊錄的實(shí)體類設(shè)計(jì) 62.4在線通訊錄的功能 72.5在線通訊錄MVC模式設(shè)計(jì) 72.6各階段具體實(shí)現(xiàn)過程 82.6.1項(xiàng)目文件結(jié)構(gòu)圖 82.6.2用戶登錄的實(shí)現(xiàn) 82.6.3通訊錄名片的插入操作 92.6.4通訊錄名片的查看操作 112.6.5通訊錄名片的刪除操作 112.6.6通訊錄名片的分類查詢操作 12第三章個(gè)人總結(jié) 13個(gè)人總結(jié) 13JSP實(shí)現(xiàn)通訊錄設(shè)計(jì)第1章JavaWeb應(yīng)用背景介紹WWW是目前Internet上的主要服務(wù)類型之一,WWW的基礎(chǔ)是基于HTML的頁面,使用在HTML基礎(chǔ)上的腳本語言進(jìn)行應(yīng)用程序開發(fā),可以創(chuàng)建動態(tài)生成內(nèi)容的Web頁面。JSP是一種在服務(wù)器端編譯執(zhí)行的Web設(shè)計(jì)語言,其腳本語言采用Java,并繼承了Java的所有優(yōu)點(diǎn)。1.1什么是Web編程Web編程簡單地說是基于WWW的Internet上的應(yīng)用程序開發(fā),隨著Internet的普及與傳播,越來越多的人通過WWW走進(jìn)網(wǎng)絡(luò)世界的大門。CGI(CommonGatewayInterface)應(yīng)用程序的第一次引入了動態(tài)交互的概念,這些運(yùn)行于服務(wù)器端的腳本程序通常用Perl語言或C語言寫成,需要編譯才能運(yùn)行。隨著Web應(yīng)用程序技術(shù)的發(fā)展,CGI所引入的動態(tài)內(nèi)容概念被很多新技術(shù)所實(shí)現(xiàn)和發(fā)展,基于程序運(yùn)行的地點(diǎn)大致可以分為兩大類:一類是隨著HTML頁面下載并運(yùn)行于客戶端的程序腳本,例如ActiveX控件,DHTML,JavaApplet和JavaScript;另一類程序是基于服務(wù)器端的技術(shù),例如ActiveServerPage(ASP),PHP,JavaServerPage(JSP),JavaServlet等。1.2JSP簡介JSP是JavaServerPage技術(shù)的縮寫,是由Java語言的創(chuàng)造者Sun公司提出、多家公司參與制定的動態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。通過在傳統(tǒng)的(*.html,*.htm)中加入Java代碼和JSP標(biāo)記,構(gòu)成后綴為*.jsp的JSP網(wǎng)頁文件。Web服務(wù)器在遇到訪問JSP頁面的請求時(shí),首先執(zhí)行其中的代碼片斷,然后將執(zhí)行的結(jié)果以普通HTML方式返回客戶瀏覽器,JSP頁面中的程序代碼在客戶端是看不到的。這些內(nèi)嵌的Java程序代碼可以完成數(shù)據(jù)庫的操作、文件上傳、網(wǎng)頁重定向、發(fā)送電子郵件的等功能,所有的操作均在服務(wù)器端進(jìn)行,客戶端得到的僅僅是運(yùn)行的結(jié)果,因而對客戶瀏覽器的要求很低。JSP有JavaServlet技術(shù)為基礎(chǔ),利用可跨平臺運(yùn)行的JavaBeans組件,可以方便的操作數(shù)據(jù)庫,執(zhí)行各種復(fù)雜的查詢,使邏輯處理和顯示互相分離。1.3JSP的優(yōu)點(diǎn)1.3.1跨平臺運(yùn)行JSP的最大優(yōu)勢在于平臺可移植性,利用Java語言的平臺無關(guān)性,任何JSP程序只要編譯一次,就可以在任何服務(wù)器平臺使用。1.3.2執(zhí)行效率高JSP在服務(wù)器端被Java虛擬機(jī)編譯成Servlet執(zhí)行,編譯的過程只在第一次執(zhí)行時(shí)進(jìn)行,以后Servlet對于每個(gè)客戶端請求都使用內(nèi)存中的同一副本處理,而不像CGI那樣需要為每個(gè)請求創(chuàng)建單獨(dú)的進(jìn)程,而只要在Java虛擬機(jī)中裝載一個(gè)Servlet,因而節(jié)省了大量的服務(wù)器資源,執(zhí)行時(shí)性能優(yōu)化,代碼效率高。1.3.3服務(wù)器端組件支持服務(wù)器端編程語言往往由于缺少強(qiáng)大的服務(wù)器組件支持而受到限制,JSP使用成熟的JavaBeans技術(shù),可以輕松得到各種服務(wù)器組件的支持。1.3.4數(shù)據(jù)庫支持JSP技術(shù)利用Java語言的數(shù)據(jù)庫操縱能力可以與任何JDBC兼容數(shù)據(jù)庫建立連接,執(zhí)行常用的查詢、添加、更新、刪除操作和復(fù)雜的邏輯代數(shù)。利用Sun公司開發(fā)的JDBC-ODBC橋,JSP還可以訪問現(xiàn)有的ODBC(OpenDataBaseConnection)驅(qū)動的數(shù)據(jù)庫系統(tǒng)。目前市場上的主流數(shù)據(jù)庫產(chǎn)品都帶有ODBC支持,所以JSP可以訪問Oracle、MicrosoftSQLServer和MySQL等數(shù)據(jù)庫產(chǎn)品。第二章網(wǎng)絡(luò)通訊錄的實(shí)現(xiàn)2.1需求分析由于紙制或電子形式的通訊錄,攜帶不方便,或容易忘記等方面的缺點(diǎn),所以要開發(fā)一個(gè)網(wǎng)絡(luò)通訊錄,方便用戶提供使用:用戶注冊、登錄功能登錄后,顯示出與當(dāng)前用戶相關(guān)的聯(lián)系人名單添加新聯(lián)系人刪除聯(lián)系人根據(jù)聯(lián)系人類型查找聯(lián)系人信息根據(jù)以上要求,開發(fā)一個(gè)網(wǎng)絡(luò)通訊錄。2.2數(shù)據(jù)庫實(shí)現(xiàn)過程創(chuàng)建在線通訊錄數(shù)據(jù)庫、表,數(shù)據(jù)庫名為:addressBook。數(shù)據(jù)表為:USERS、BOOK.實(shí)現(xiàn)代碼如下:BOOK表:Users表USE[addressBook]GO/******Object:Table[dbo].[users]ScriptDate:12/29/201012:30:07******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOSETANSI_PADDINGONGOCREATETABLE[dbo].[users]( [userID][int]IDENTITY(1,1)NOTNULL, [userName][varchar](50)NULL, [password][varchar](50)NULL, [realName][varchar](50)NULL, [sex][varchar](50)NULL,CONSTRAINT[PK_users]PRIMARYKEYCLUSTERED( [userID]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GOSETANSI_PADDINGOFFGO/******Object:Table[dbo].[book]ScriptDate:12/29/201012:30:07******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOSETANSI_PADDINGONGOCREATETABLE[dbo].[book]( [id][int]IDENTITY(1,1)NOTNULL, [name][varchar](50)NULL, [sex][varchar](50)NULL, [phone][varchar](50)NULL, [address][varchar](50)NULL, [mobilePhone][varchar](50)NULL, [company][varchar](50)NULL, [comPhone][varchar](50)NULL, [comAddress][varchar](50)NULL, [relation][int]NULL, [userID][int]NULL,CONSTRAINT[PK_book]PRIMARYKEYCLUSTERED( [id]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GOSETANSI_PADDINGOFFGO2.3在線通訊錄的實(shí)體類設(shè)計(jì)用戶類:Users.java通訊錄類:Book.java實(shí)體類實(shí)體類數(shù)據(jù)庫表Users.javaBook.javaUSERSBOOK對應(yīng)關(guān)系系屬性對應(yīng)字段2.4在線通訊錄的功能用戶登錄驗(yàn)證添加新聯(lián)系人刪除聯(lián)系人信息查找所有聯(lián)系人按照類別查找聯(lián)系人用戶用戶登錄驗(yàn)證查找所有聯(lián)系人添加聯(lián)系人刪除聯(lián)系人分類查找聯(lián)系人查詢聯(lián)系人2.5在線通訊錄MVC模式設(shè)計(jì)模型(Model)——就是業(yè)務(wù)流程/狀態(tài)的處理以及業(yè)務(wù)規(guī)則的制定。視圖(View)——視圖就是用戶交互的界面??刂破鳎–ontroller)——可以理解為從用戶接受請求,將模型與視圖匹配在一起,共同完成用戶的請求。 2.6各階段具體實(shí)現(xiàn)過程2.6.1項(xiàng)目文件結(jié)構(gòu)圖2.6.2用戶登錄的實(shí)現(xiàn)用戶登錄文件為Register.jsp,用戶輸入用戶名和密碼后,提交“addUserServlet”進(jìn)行驗(yàn)證處理,若用戶名已存在則提示“用戶名已存在,請重新輸入!”,并返回注冊頁面,否則,把信息寫入數(shù)據(jù)庫,注冊新用戶?!癮ddUserServlet”部分代碼:String

userName

=

request.getParameter("name");

String

password

=

request.getParameter("password");

UserdbManager

UserMng

=

newUserdbManager();

UserBean

user

=

UserMng.findUser(userName);

if

(user

!=

null&&

user.getName()!=null&&

user.getName().equals(userName))

{

PrintWriter

out

=

response.getWriter();

out.println("<script>alert('用戶名已存在,請重新輸入!');history.back();</script>");

out.flush();

out.close();

}

else{

intresult

=

UserMng.AddUser(userName,

password);

if(result

>

0)

{

request.getRequestDispatcher("success.jsp").forward(request,esponse);

}

else

{

System.out.println("添加數(shù)據(jù)失敗");

request.getRequestDispatcher(、"error.jsp").

forward(request,response);用戶登錄文件為Login.jsp,用來實(shí)現(xiàn)用戶的登錄。用戶輸入用戶名和密碼后,提交"LoginServlet"進(jìn)行驗(yàn)證處理,驗(yàn)證正確之后。實(shí)現(xiàn)登陸。具體代碼如下:StringuserName=request.getParameter("userName"); Stringpassword=request.getParameter("password"); UserBouserBo=newUserBo(); Usersuser=userBo.valiUser(userName,password); if(user==null){ //登陸失敗 PrintWriterout=response.getWriter(); out.println("<script>alert('用戶名或密碼錯(cuò)誤,請重新輸入!');history.back();</script>"); out.flush(); out.close(); }else{ //登陸成功 HttpSessionsession=request.getSession(); session.setAttribute("user",user); request.getRequestDispatcher("SelectServlet").forward(request,response); }登錄成功:2.6.3通訊錄名片的插入操作實(shí)現(xiàn)名片的增加操作,涉及到一下頁面:addBook.jsp、AddServlet.java、UsersBo.java。其中,addBook.jsp為用戶所見的界面;AddServlet.java處理數(shù)據(jù)實(shí)現(xiàn)數(shù)據(jù)的插入,將新增名片內(nèi)容寫入數(shù)據(jù)庫。具體代碼如下:response.setContentType("text/html;charset=GBK"); Bookbook=newBook(); request.setCharacterEncoding("GBK"); book.setName(request.getParameter("name")); book.setSex(request.getParameter("sex")); book.setPhone(request.getParameter("phone")); book.setAddress(request.getParameter("address")); book.setMobilePhone(request.getParameter("mobilePhone")); book.setCompany(request.getParameter("company")); book.setComPhone(request.getParameter("comPhone")); book.setComAddress(request.getParameter("comAddress")); book.setRelation(Integer.parseInt(request.getParameter("relation"))); book.setUserID(((Users)request.getSession().getAttribute("user")).getUserID()); BookBobookBo=newBookBo(); intresult=bookBo.addBook(book); PrintWriterout=response.getWriter(); if(result>0){ //添加成功 out.println("<script>alert('添加成功');location.href='addBook.jsp'</script>"); }else{ //添加失敗 out.println("<script>alert('添加失敗');location.href='addBook.jsp'</script>"); } }修改聯(lián)系人信息:“BookServlet.java”部分代碼:private

BookBean

makeBook(HttpServletRequest

request)

{HttpSession

session

=

request.getSession();

(UserBean

user=UserBean)

session.getAttribute("user");

BookBean

book

=

newBookBean();

book.setName(request.getParameter("name"));

book.setSex(request.getParameter("sex"));

book.setPhone(request.getParameter("phone"));

book.setHomeAddr(request.getParameter("homeAddr"));

book.setMobilephone(

request.getParameter("mobilePhone"));

book.setEmail(request.getParameter("email"));

book.setCompany(request.getParameter("company"));

book.setComAddr(request.getParameter("comAddr"));

book.setRelation(Integer.parseInt(

request.getParameter("relation")));

book.setUserID(user.getId());

returnbook;

}

“doPost”函數(shù):String

type

=

request.getParameter("type");

Intresult

=

0;

BookdbManager

bookMng

=

newBookdbManager();

if(type.equals("del"))

{

intbookId

=

Integer.parseInt(

request.getParameter("BookId"));

result

=

bookMng.deleteBookById(bookId);}

elseif(type.equals("add"))

{

BookBean

book

=

makeBook(request);

result

=

bookMng.addBook(book);

}

elseif(type.equals("update"))

{intbookId

=

Integer.parseInt(request.getParameter("bookId"));

BookBean

book

=

makeBook(request);

result

=

bookMng.updateBook(book,

bookId);

}

if

(result

==

0)

{request.getRequestDispatcher("error.jsp").forward(request,

response);}

else{

request.getRequestDispatcher("DisplayServlet")

.forward(request,response);

}

2.6.4通訊錄名片的查看操作實(shí)現(xiàn)通訊錄的查看操作涉及到一下頁面:SelectServlet.java、bookContent.jsp。其中,SelectServlet.java實(shí)現(xiàn)在數(shù)據(jù)庫中查找信息,交給bookContent.jsp向用戶展示。具體代碼如下:Stringrelation=request.getParameter("relation"); BookBobookBo=newBookBo(); HttpSessionsession=request.getSession(false); if(session==null||session.getAttribute("user")==null){ response.sendRedirect("index.jsp"); }else{ Listlist=null; Usersuser=(Users)session.getAttribute("user"); if(relation!=null&&!relation.equals("")){ //根據(jù)用戶ID和聯(lián)系人類型查詢列表 list=bookBo.selectAllBook(user.getUserID(),Integer.parseInt(relation)); request.setAttribute("list",list); }else{ list=bookBo.selectAllBook(user.getUserID()); request.setAttribute("list",list); } request.getRequestDispatcher("bookContent.jsp").forward(request,response); } }2.6.5通訊錄名片的刪除操作實(shí)現(xiàn)通訊錄名片的刪除操作,涉及到一下頁面:DeleteServlet.java,它的作用是當(dāng)用戶觸發(fā)“刪除”按鈕后,在數(shù)據(jù)庫中將該條數(shù)據(jù)刪除。具體代碼如下:Stringid=request.getParameter("id"); BookBobookBo=newBookBo(); if(id==null||id.equals("")){request.getRequestDispatcher("SelectServlet").forward(request,response); }else{ intresult=bookBo.deleteBook(Integer.parseInt(id)); PrintWriterout=response.getWriter(); if(result>0){ //刪除

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論