




已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
實(shí) 驗(yàn) 報(bào) 告實(shí)驗(yàn)課程: Web應(yīng)用開發(fā) 學(xué)生姓名: 學(xué) 號(hào): 專業(yè)班級(jí): 2018年6月18日 南昌大學(xué)實(shí)驗(yàn)報(bào)告學(xué)生姓名: 學(xué) 號(hào): 專業(yè)班級(jí): 實(shí)驗(yàn)類型: 驗(yàn)證 綜合 設(shè)計(jì) 創(chuàng)新 實(shí)驗(yàn)日期: 實(shí)驗(yàn)成績: 一、實(shí)驗(yàn)項(xiàng)目名稱Web應(yīng)用開發(fā)綜合訓(xùn)練二、實(shí)驗(yàn)?zāi)康暮鸵笫褂肑ava+JSP+Servlet技術(shù),選用EL、JSTL、Struts、Hibernate、myBatis、jQuery等技術(shù),開發(fā)一個(gè)基本W(wǎng)eb的應(yīng)用程序,以達(dá)到掌握Web應(yīng)用開發(fā)的基本原理、具備使用Java+JSP+Servlet技術(shù)結(jié)合流行框架技術(shù)開發(fā)Web應(yīng)用程序的能力,從而提升學(xué)生的Web編程能力。要求學(xué)生自選題目,開發(fā)一個(gè)模擬的Web應(yīng)用程序。可以一人一題,也可以多人一題。但是每人必須單獨(dú)完成動(dòng)態(tài)Web頁面10頁以上。要求學(xué)生根據(jù)需求描述獨(dú)自完成需求分析,軟件設(shè)計(jì)、程序模塊設(shè)計(jì)以及程序的編寫、調(diào)試和測(cè)試。設(shè)計(jì)和程序完成后,要求根據(jù)指定的格式要求,獨(dú)自完成設(shè)計(jì)報(bào)告的撰寫。三、實(shí)驗(yàn)基本情況本實(shí)訓(xùn)要求根據(jù)下述需求陳述寫出需求分析文本并進(jìn)行軟件開發(fā),并列出源代碼和運(yùn)行結(jié)果。四、需求分析項(xiàng)目介紹這是一個(gè)簡單的圖書管理系統(tǒng),由一個(gè)管理員來實(shí)現(xiàn)對(duì)用戶的刪除,圖書的增加,修改和圖書的刪除功能,用戶注冊(cè)登錄后可以實(shí)現(xiàn)對(duì)圖書的借閱和歸還。由于時(shí)間關(guān)系在設(shè)計(jì)項(xiàng)目時(shí)有很多不好的地方,未來得及修改,在管理員登錄界面采用了圖形驗(yàn)證碼,由于是同樣的技術(shù),在用戶登錄界面就沒有采用圖形驗(yàn)證技術(shù)。功能需求1. 用戶注冊(cè)2. 圖書添加3. 圖書修改4. 用戶管理5. 圖書借閱6. 歸還圖書五、軟件設(shè)計(jì)ER圖程序流程數(shù)據(jù)庫設(shè)計(jì)模塊設(shè)計(jì)及運(yùn)行結(jié)果項(xiàng)目整體采用MVC 模式,整體上運(yùn)用jsp+javabean+servlet+jdbc+dao,每個(gè)jsp頁面采用jQuery技術(shù)作為背景,實(shí)現(xiàn)簡單的動(dòng)態(tài)背景,部分頁面運(yùn)用EL、JSTL、js中的點(diǎn)擊事件、Bootsrap、圖形驗(yàn)證碼、分頁技術(shù)以及郵箱頁面。六、源代碼1.用戶類User.Javapackage vo;public class User private String name,pwd;public String getName() return name;public void setName(String name) = name;public String getPwd() return pwd;public void setPwd(String pwd) this.pwd = pwd;2.圖書類bookinfo.javapackage vo;public class bookinfo private String bno,bname,author,price,other;public String getBno() return bno;public void setBno(String bno) this.bno = bno;public String getBname() return bname;public void setBname(String bname) this.bname = bname;public String getAuthor() return author;public void setAuthor(String author) this.author = author;public String getPrice() return price;public void setPrice(String price) this.price = price;public String getOther() return other;public void setOther(String other) this.other = other;3.借書信息類package vo;public class lendbook private String username, bno,bname,author,price,other;public String getUsername() return username;public void setUsername(String username) this.username = username;public String getBno() return bno;public void setBno(String bno) this.bno = bno;public String getBname() return bname;public void setBname(String bname) this.bname = bname;public String getAuthor() return author;public void setAuthor(String author) this.author = author;public String getPrice() return price;public void setPrice(String price) this.price = price;public String getOther() return other;public void setOther(String other) this.other = other;4.用戶功能UserDao.javapackage dao;import java.util.List;import java.sql.*;import java.util.ArrayList;import vo.bookinfo;import vo.User;import vo.lendbook;import dbc.JdbcUtil;public class UserDaopublic void add(User user) throws Exception/添加用戶Connection conn=null;PreparedStatement ps=null;tryconn=JdbcUtil.getConnection();String sql=insert into user values(?,?);ps=conn.prepareStatement(sql);ps.setString(1, user.getName();ps.setString(2, user.getPwd();ps.executeUpdate();finallyJdbcUtil.free(null, ps, conn);public void add_book(bookinfo book) throws Exception/添加圖書Connection conn=null;PreparedStatement ps=null;tryconn=JdbcUtil.getConnection();String sql=insert into book_info values(?,?,?,?,?);ps=conn.prepareStatement(sql);ps.setString(1, book.getBno();ps.setString(2, book.getBname();ps.setString(3, book.getAuthor();ps.setString(4, book.getPrice();ps.setString(5, book.getOther();ps.executeUpdate();finallyJdbcUtil.free(null, ps, conn);public void lend_book(lendbook book) throws Exception/借出圖書Connection conn=null;PreparedStatement ps=null;tryconn=JdbcUtil.getConnection();String sql=insert into lendbook values(?,?,?,?,?,?);ps=conn.prepareStatement(sql);ps.setString(1, book.getUsername();ps.setInt(2, Integer.parseInt(book.getBno();ps.setString(3, book.getBname();ps.setString(4, book.getAuthor();ps.setString(5, book.getPrice();ps.setString(6, book.getOther();ps.executeUpdate();finallyJdbcUtil.free(null, ps, conn);public List QueryAll() throws Exception/列出全部用戶Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;List userList=new ArrayList();tryconn=JdbcUtil.getConnection();String sql=select * from user;ps=conn.prepareStatement(sql);rs=ps.executeQuery();while(rs.next()User user=new User();user.setName(rs.getString(1);user.setPwd(rs.getString(2);userList.add(user);finallyJdbcUtil.free(rs, ps, conn);return userList;public void delete(String bookno) throws Exception/刪除圖書Connection conn=null;PreparedStatement ps=null;tryconn=JdbcUtil.getConnection();String sql=delete from book_info where bno=?;ps=conn.prepareStatement(sql);ps.setString(1, bookno);ps.executeUpdate();finallyJdbcUtil.free(null, ps, conn);public void returnbook(String bno,String username) throws Exception/歸還圖書Connection conn=null;PreparedStatement ps=null;tryconn=JdbcUtil.getConnection();String sql=delete from lendbook where bno=? and username=?;ps=conn.prepareStatement(sql);ps.setString(1, bno);ps.setString(2, username);ps.executeUpdate();finallyJdbcUtil.free(null, ps, conn);public void delete_user(String username) throws Exception/刪除用戶Connection conn=null;PreparedStatement ps=null;tryconn=JdbcUtil.getConnection();String sql=delete from user where name=?;ps=conn.prepareStatement(sql);ps.setString(1, username);ps.executeUpdate();finallyJdbcUtil.free(null, ps, conn);public int getPageCount() throws Exception/分頁Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;int recordCount=0,t1=0,t2=0;tryconn=JdbcUtil.getConnection();String sql=select count(*) from book_info;ps=conn.prepareStatement(sql);rs=ps.executeQuery();rs.next();recordCount=rs.getInt(1);t1=recordCount%5;t2=recordCount/5;finallyJdbcUtil.free(null, ps, conn);return t1=0?t2:t2+1;public List QueryAll_book(int pageNo) throws Exception/列出全部圖書Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;int pageSize=5;int startRecno=(pageNo-1)*pageSize;List bookList=new ArrayList();tryconn=JdbcUtil.getConnection();String sql=select * from book_info order by bno limit ?,?;ps=conn.prepareStatement(sql);ps.setInt(1, startRecno);ps.setInt(2, pageSize);rs=ps.executeQuery();while(rs.next()bookinfo book=new bookinfo();book.setBno(rs.getString(1);book.setBname(rs.getString(2);book.setAuthor(rs.getString(3);book.setPrice(rs.getString(4);book.setOther(rs.getString(5);bookList.add(book);finallyJdbcUtil.free(rs, ps, conn);return bookList;public List QueryAll_lendbook(String username) throws Exception/列出已借圖書Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;List bookList=new ArrayList();tryconn=JdbcUtil.getConnection();String sql=select * from lendbook where username=?;ps=conn.prepareStatement(sql);ps.setString(1,username );rs=ps.executeQuery();while(rs.next()lendbook book=new lendbook();book.setUsername(rs.getString(1);book.setBno(rs.getString(2);book.setBname(rs.getString(3);book.setAuthor(rs.getString(4);book.setPrice(rs.getString(5);book.setOther(rs.getString(6);bookList.add(book);finallyJdbcUtil.free(rs, ps, conn);return bookList;public void modify_book(bookinfo book) throws Exception/修改圖書Connection conn=null;PreparedStatement ps=null;tryconn=JdbcUtil.getConnection();String sql=update book_info set bname=?,author=?,price=?,other=? where bno=?;ps=conn.prepareStatement(sql);ps.setString(1, book.getBname();ps.setString(2, book.getAuthor();ps.setString(3, book.getPrice();ps.setString(4, book.getOther();ps.setString(5, book.getBno();ps.executeUpdate();finallyJdbcUtil.free(null, ps, conn);5.獲取表格值代碼:function getTableContent(node) var tr1 = node.parentNode.parentNode; var name=tr1.cells0.innerText; window.location.href=/delete_user?name=+name; alert(name); 7. 背景jQuery代碼由于代碼過長,不展示;七、運(yùn)行結(jié)果1.管理員登錄頁面:管理員登錄界面采用簡單的CSS、jQuery、以及圖形驗(yàn)證碼,當(dāng)圖形驗(yàn)證碼輸入不正確以及賬號(hào)密碼輸入不正確會(huì)出現(xiàn)相相應(yīng)提示,同時(shí)點(diǎn)擊相信的輸入框,提示輸入對(duì)應(yīng)類型的背景字體會(huì)消失,當(dāng)鼠標(biāo)點(diǎn)擊其他地方時(shí)會(huì)相應(yīng)出現(xiàn),采用的是placeholder屬性,我們平時(shí)單純的html的輸入框以及提交的按鈕,讓人感覺不是很舒適,采用簡單的CSS將他們的邊框去除,然后加上相應(yīng)的邊框。2.登錄主界面:導(dǎo)航欄感謝bootstrap開源,運(yùn)用了始終懸浮在頂部的導(dǎo)航欄,奈何頁面長度有限不能向下滾動(dòng),無法看出這一功能,頁面內(nèi)容由于思維過于局限,暫時(shí)沒有想出用什么內(nèi)容來填充,只想到類似于積分的東西,這一內(nèi)容在以后會(huì)作出改進(jìn),目前只有一個(gè)大概的模板,同時(shí)在改變頁面的分辨率時(shí)導(dǎo)航欄中的功能選項(xiàng)會(huì)變成一個(gè)按鈕,用一個(gè)便簽來裝載,本頁也有一個(gè)亮點(diǎn)便是響應(yīng)式,在改變分辨率時(shí)板塊并不會(huì)發(fā)生錯(cuò)亂的現(xiàn)象,運(yùn)用柵格系統(tǒng)思想,在第二張圖張可以看到效果,由于調(diào)各種分辨率國語繁瑣,所以這一技術(shù)只在兩個(gè)頁面運(yùn)用到,以后有時(shí)間會(huì)加以改善。3.管理用戶頁面:點(diǎn)擊管理用戶的小便簽會(huì)出現(xiàn)用戶的列表,點(diǎn)擊刪除用戶可以將用戶從數(shù)據(jù)庫中刪除,同時(shí)頁面中的幾個(gè)小符號(hào)也是運(yùn)用bootstrap中的組件,給人以更直觀清楚的描述功能,在本頁面我并沒有采用分頁技術(shù),但是在后面幾個(gè)頁面中有采用分頁技術(shù),在做頁面的時(shí)候并沒有考慮到有很多的用戶,只是用幾個(gè)來驗(yàn)證,所以就沒有用分頁技術(shù),在這個(gè)點(diǎn)擊就刪除的技術(shù)上一開始遇到了難題,并不知道怎么樣去些控制的后臺(tái),后來在頁面中運(yùn)用了js的技術(shù),可以利用表格的結(jié)點(diǎn)來獲取每個(gè) 表格單元格的內(nèi)容,再將按鍵設(shè)置為this,點(diǎn)擊便是獲取當(dāng)前行的值,并傳到servlet中調(diào)用dao中刪除用戶的函數(shù),便實(shí)現(xiàn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 財(cái)務(wù)主管職位離職信息保密及競業(yè)限制合同
- 北京農(nóng)商銀行理財(cái)合同復(fù)印
- 畜牧局考試題庫及答案
- 安全生產(chǎn)責(zé)任制的核心是什么內(nèi)容
- 質(zhì)檢部的主要職責(zé)
- 安全生產(chǎn)許可證申領(lǐng)程序
- 衛(wèi)生院安全自查報(bào)告
- 防近月活動(dòng)方案
- 施工企業(yè)安全生產(chǎn)教育培訓(xùn)制度
- 2025年醫(yī)師三基考試題及答案
- 中遠(yuǎn)海運(yùn)招聘筆試題庫2025
- 2025至2030中國納米二氧化硅市場消費(fèi)前景與投資價(jià)值綜合分析報(bào)告
- 2025至2030中國核應(yīng)急機(jī)器人行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展報(bào)告
- 導(dǎo)管室護(hù)理管理制度
- 專利代理所管理制度
- 律師所案件管理制度
- 降低跌倒事件的發(fā)生率QC圈
- 玄隱遺密(含黃帝內(nèi)經(jīng))
- 2025年畢節(jié)市大方富民村鎮(zhèn)銀行招聘題庫帶答案分析
- 深靜脈血栓的試題及答案
評(píng)論
0/150
提交評(píng)論