还剩23页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
实验报告模板实验报告课程名称高级Java程序设计实验项目基于MVC模式的Web综合应用实验仪器____个人计算机__系别___计算机学院___专业__计算机科学与技术_____班级/学号____计科1204学生姓名____实验日期_2014/5/21-6/5_________成绩_______________________指导教师______________目录TOC\o1-2\h\z第二章总体设计第一章需求分析任务1开发图书馆管理信息系统项目需求
1.基于MVC模式开发该JavaWeb项目;
2.本系统有两类用户角色,普通用户和管理员用户;
3.普通用户浏览图书信息,分类浏览,能够分别根据书名、作者、出版社为关键字查询图书;登陆后还可借阅图书;
4.管理员用户管理系统各项信息,包括信息的添加、修改和删除
5.建立的图书类包含如下信息编号、书名、作者、出版社、出版日期项目设计选择开发模型——MVC第二章总体设计
2.1本系统的主要功能
1、基于MVC模式开发该JavaWeb项目;
2、本系统有两类用户角色,普通用户和管理员用户;
3、普通用户浏览图书信息,分类浏览,能够分别根据书名、作者、出版社为关键字查询图书;登陆后还可借阅图书;
4、管理员用户管理系统各项信息,包括信息的添加、修改和删除
5、建立的图书类包含如下信息编号、书名、作者、出版社、出版日期
2.2Java源文件及其功能功能在下一章讲述Index.jsp%--CreatedbyIntelliJIDEA.--%%@pagecontentType=text/html;charset=UTF-8language=java%htmlheadtitle/title/headbodycenterh2欢迎进入图书馆里系统!/h2pformmethod=postaction=/servlets/depend.do普通用户inputtype=radioname=personvalue=readercheckedbr管理员用户inputtype=radioname=personvalue=editerbr管理员密码inputtype=passwordname=passwordpinputtype=submitvalue=登录/form/center/body/htmlManager.jsp%--CreatedbyIntelliJIDEA.User:AdministratorDate:14-5-31Time:下午3:59TochangethistemplateuseFile|Settings|FileTemplates.--%%@pagecontentType=text/html;charset=UTF-8language=javaimport=java.util.ArrayListbean.bookinfo%htmlheadtitle/title/headbodycenterh2ahref=/add.jsp添加图书/a/h2tablealign=centerborder=1trfontsize=2face=黑体color=blueth编号/thth书名/thth作者/thth出版社/thth出版日期/ththcolspan=2管理/th/font/tr%request.setCharacterEncodingutf-8;ArrayListbookinfolist=ArrayListbookinforequest.getAttributelist;forbookinfobi:list{Stringid=bi.getId;%trtd%=bi.getId%/tdtd%=bi.getName%/tdtd%=bi.getAuthor%/tdtd%=bi.getPress%/tdtd%=bi.getDate%/tdtdahref=/servlets/edit.doid=%=id%修改/a/tdtdahref=/servlets/delete.doid=%=id%删除/a/td/tr%}%/table/center/body/htmlReader.jsp%--CreatedbyIntelliJIDEA.User:AdministratorDate:14-5-31Time:下午3:59TochangethistemplateuseFile|Settings|FileTemplates.--%%@pagecontentType=text/html;charset=UTF-8language=javaimport=java.util.ArrayListbean.bookinfo%htmlheadtitle/title/headbodycenterformaction=/servlets/borrow.domethod=posttablealign=centerborder=1captionh2现有图书信息/h2/captionptrtdcolspan=6align=rightahref=/check.jsp点击查询/a/td/trtrfontsize=2face=黑体color=blueth编号/thth书名/thth作者/thth出版社/thth出版日期/ththcolspan=2借阅/th/font/tr%request.setCharacterEncodingutf-8;ArrayListbookinfolist=ArrayListbookinforequest.getAttributelist;forbookinfobi:list{Stringid=bi.getId;%trtd%=bi.getId%/tdtd%=bi.getName%/tdtd%=bi.getAuthor%/tdtd%=bi.getPress%/tdtd%=bi.getDate%/tdtdinputtype=radioname=borrowvalue=123/tdinputtype=hiddenname=idvalue=%=bi.getId%/tr%}%/tablepinputtype=submitvalue=提交/form/center/body/htmlSuccess.jsp%--CreatedbyIntelliJIDEA.User:AdministratorDate:14-6-1Time:下午1:34TochangethistemplateuseFile|Settings|FileTemplates.--%%@pagecontentType=text/html;charset=UTF-8language=java%htmlheadtitle/title/headbodycenterh2操作成功/h2brahref=/servlets/list.do浏览图书信息/a/center/body/htmlFinalcheck.jsp%--CreatedbyIntelliJIDEA.User:AdministratorDate:14-6-1Time:下午4:15TochangethistemplateuseFile|Settings|FileTemplates.--%%@pagecontentType=text/html;charset=UTF-8language=javaimport=bean.bookinfo%htmlheadtitle/title/headbodycentertablealign=centerborder=1tr%request.setCharacterEncodingutf-8;bookinfobi=bookinforequest.getAttributebi;%th编号/thth书名/thth作者/thth出版社/thth出版日期/th/trtrtd%=bi.getId%/tdtd%=bi.getName%/tdtd%=bi.getAuthor%/tdtd%=bi.getPress%/tdtd%=bi.getDate%/td/tr/table/center/body/htmlSuccessreader.jsp%--CreatedbyIntelliJIDEA.User:AdministratorDate:14-6-1Time:下午1:34TochangethistemplateuseFile|Settings|FileTemplates.--%%@pagecontentType=text/html;charset=UTF-8language=java%htmlheadtitle/title/headbodycenterh2操作成功/h2brahref=/servlets/listreader.do浏览图书信息/a/center/body/htmlFailure.jsp%--CreatedbyIntelliJIDEA.User:AdministratorDate:14-6-1Time:下午2:00TochangethistemplateuseFile|Settings|FileTemplates.--%%@pagecontentType=text/html;charset=UTF-8language=java%htmlheadtitle/title/headbodycenterh2操作失败/h2ahref=javascript:history.back点击返回/a/center/body/htmlEdit.jsp%--CreatedbyIntelliJIDEA.User:AdministratorDate:14-5-31Time:下午6:52TochangethistemplateuseFile|Settings|FileTemplates.--%%@pagecontentType=text/html;charset=UTF-8language=javaimport=bean.bookinfo%htmlheadtitle/title/headbody%request.setCharacterEncodingutf-8;bookinfobi=bookinforequest.getAttributebi;%centerformaction=update.domethod=postinputtype=hiddenname=idvalue=%=bi.getId%tableh2caption修改信息/caption/h2trth书名/thtdinputtype=textvalue=%=bi.getName%name=name/td/trtrth作者/thtdinputtype=textvalue=%=bi.getAuthor%name=author/td/trtrth出版社/thtdinputtype=textvalue=%=bi.getPress%name=press/td/trtrth出版日期/thtdinputtype=textvalue=%=bi.getDate%name=date/td/trtrtdcolspan=2align=centerinputtype=submitvalue=提交inputtype=resetvalue=重置/td/tr/table/form/center/body/htmlCheck.jsp%--CreatedbyIntelliJIDEA.User:AdministratorDate:14-5-31Time:下午6:52TochangethistemplateuseFile|Settings|FileTemplates.--%%@pagecontentType=text/html;charset=UTF-8language=javaimport=bean.bookinfo%htmlheadtitle/title/headbody%request.setCharacterEncodingutf-8;bookinfobi=bookinforequest.getAttributebi;%centerformaction=update.domethod=postinputtype=hiddenname=idvalue=%=bi.getId%tableh2caption修改信息/caption/h2trth书名/thtdinputtype=textvalue=%=bi.getName%name=name/td/trtrth作者/thtdinputtype=textvalue=%=bi.getAuthor%name=author/td/trtrth出版社/thtdinputtype=textvalue=%=bi.getPress%name=press/td/trtrth出版日期/thtdinputtype=textvalue=%=bi.getDate%name=date/td/trtrtdcolspan=2align=centerinputtype=submitvalue=提交inputtype=resetvalue=重置/td/tr/table/form/center/body/htmlAdd.jsp%--CreatedbyIntelliJIDEA.User:AdministratorDate:14-5-31Time:下午7:20TochangethistemplateuseFile|Settings|FileTemplates.--%%@pagecontentType=text/html;charset=UTF-8language=java%htmlheadtitle/title/headscriptlanguage=JavaScriptsrc=common.js/scriptbodycenterformname=form1onsubmit=returncheckaction=/servlets/add.domethod=posttablealign=centerborder=1h2caption图书信息/caption/h2trth编号/thtdinputtype=textname=id/td/trtrth书名/thtdinputtype=textname=name/td/trtrth作者/thtdinputtype=textname=author/td/trtrth出版社/thtdinputtype=textname=press/td/trtrth出版日期/thtdinputtype=textname=date/td/trtrtdcolspan=2align=centerinputtype=submitvalue=添加inputtype=resetvalue=重置/td/tr/table/form/center/body/htmlCommon.jsfunctioncheck{ifform
1.id.value=={alertnoid!;form
1.id.focus;returnfalse;}ifform
1.name.value=={alertnoname!;form
1.name.focus;returnfalse;}ifform
1.author.value=={alertnoauthor!;form
1.author.focus;returnfalse;}ifform
1.press.value=={alertnopress!;form
1.press.focus;returnfalse;}ifform
1.date.value=={alertnodate!form
1.date.focus;returnfalse;}}Bookinfo.javapackagebean;importjava.lang.Exception;importjava.lang.String;importjava.lang.System;importjava.sql.*;importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.*;importjava.util.ArrayList;publicclassbookinfo{privateStringid;privateStringname;privateStringauthor;privateStringpress;privateStringdate;publicvoidsetNameStringname{this.name=name;}publicStringgetName{returnname;}publicvoidsetAuthorStringauthor{this.author=author;}publicStringgetAuthor{returnauthor;}publicvoidsetDateStringdate{this.date=date;}publicStringgetDate{returndate;}publicvoidsetPressStringpress{this.press=press;}publicStringgetPress{returnpress;}publicvoidsetIdStringid{this.id=id;}publicStringgetId{returnid;}publicstaticArrayListbookinfogetbooklist{ArrayListbookinfolist=newArrayListbookinfo;Stringsql=select*frommvc_book;bean.dbbeanjdbc=newbean.dbbean;ResultSetrs=jdbc.executeQuerysql;try{whilers.next{bookinfobi=newbookinfo;bi.setIdrs.getStringid;bi.setNamers.getStringname;bi.setAuthorrs.getStringauthor;bi.setPressrs.getStringpress;bi.setDaters.getStringdate;list.addbi;}rs.close;}catchSQLExceptione{e.printStackTrace;}jdbc.close;returnlist;}publicstaticbookinfogetbookbyidStringid{Stringsql=select*frommvc_bookwhereid=+id;dbbeanjdbc=newdbbean;ResultSetrs=jdbc.executeQuerysql;bookinfobi=newbookinfo;try{ifrs.next{bi.setDaters.getStringdate;bi.setPressrs.getStringpress;bi.setAuthorrs.getStringauthor;bi.setNamers.getStringname;bi.setIdrs.getStringid;}rs.close;}catchSQLExceptione{System.out.printlnnofind;}jdbc.close;returnbi;}publicstaticintupdatebookStringidStringnameStringauthorStringpressStringdate{intresult=0;Stringsql=updatemvc_booksetname=+name+author=+author+press=+press+date=+date+whereid=+id;dbbeanjdbc=newdbbean;result=jdbc.executeUpdatesql;returnresult;}publicstaticintdeletebookStringid{intresult=0;Stringsql=deletefrommvc_bookwhereid=+id;dbbeanjdbc=newdbbean;result=jdbc.executeUpdatesql;returnresult;}publicstaticintaddbookStringidStringnameStringauthorStringpressStringdate{intresult=0;Stringsql=insertintomvc_bookidnameauthorpressdatevaluesid+name++author++press++date+;dbbeanjdbc=newdbbean;result=jdbc.executeUpdatesql;returnresult;}}Dbbean.javapackagebean;importjava.lang.Exception;importjava.lang.String;importjava.lang.System;importjava.sql.*;importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.Statement;publicclassdbbean{privateStringdriverStr=com.mysql.jdbc.Driver;privateStringconnStr=jdbc:mysql://localhost:3306/bookcharacterEncoding=utf-8;privateStringname=root;privateStringpassword=xyh201268;privateConnectionconn=null;privateStatementstmt=null;publicdbbean{try{Class.forNamedriverStr;conn=DriverManager.getConnectionconnStrnamepassword;stmt=conn.createStatement;}catchExceptionex{System.out.printlnnoconnect;}}publicintexecuteUpdateStrings{intresult=0;try{result=stmt.executeUpdates;}catchExceptionex{System.out.printlnupdatewrong!;}returnresult;}publicResultSetexecuteQueryStrings{ResultSetrs=null;try{rs=stmt.executeQuerys;}catchExceptionex{System.out.printlncheckwrong!;}returnrs;}publicvoidclose{try{stmt.close;conn.close;}catchExceptionex{System.out.printlnclose!;}}}Servlet.javapackageservlets;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;importjava.io.PrintWriter;importjava.util.ArrayList;importbean.*;/***CreatedbyAdministratoron14-5-
31.*/publicclassServletextendsHttpServlet{protectedvoiddoGetHttpServletRequestrequestHttpServletResponseresponsethrowsServletExceptionIOException{doPostrequestresponse;}protectedvoiddoPostHttpServletRequestrequestHttpServletResponseresponsethrowsServletExceptionIOException{request.setCharacterEncodingutf-8;Stringaction=request.getServletPath;ifaction.equals/servlets/depend.do{Stringvalue=request.getParameterpassword;ifvalue.equals123{ArrayListbean.bookinfolist=bean.bookinfo.getbooklist;request.setAttributelistlist;request.getRequestDispatcher/manager.jsp.forwardrequestresponse;}else{ArrayListbean.bookinfolist=bean.bookinfo.getbooklist;request.setAttributelistlist;request.getRequestDispatcher/reader.jsp.forwardrequestresponse;}}elseifaction.equals/servlets/list.do{ArrayListbean.bookinfolist=bean.bookinfo.getbooklist;request.setAttributelistlist;request.getRequestDispatcher/manager.jsp.forwardrequestresponse;}elseifaction.equals/servlets/edit.do{Stringid=request.getParameterid;bean.bookinfobi=bean.bookinfo.getbookbyidid;request.setAttributebibi;request.getRequestDispatcher/edit.jsp.forwardrequestresponse;}elseifaction.equals/servlets/update.do{Stringid=request.getParameterid;Stringname=request.getParametername;Stringauthor=request.getParameterauthor;Stringpress=request.getParameterpress;Stringdate=request.getParameterdate;intr=bean.bookinfo.updatebookidnameauthorpressdate;ifr==1{request.getRequestDispatcher/success.jsp.forwardrequestresponse;}else{request.getRequestDispatcher/failure.jsp.forwardrequestresponse;}}elseifaction.equals/servlets/delete.do{Stringid=request.getParameterid;intr=bean.bookinfo.deletebookid;ifr==1{request.getRequestDispatcher/success.jsp.forwardrequestresponse;}else{request.getRequestDispatcher/failure.jsp.forwardrequestresponse;}}elseifaction.equals/servlets/add.do{Stringid=request.getParameterid;Stringname=request.getParametername;Stringauthor=request.getParameterauthor;Stringpress=request.getParameterpress;Stringdate=request.getParameterdate;intr=bean.bookinfo.addbookidnameauthorpressdate;ifr==1{request.getRequestDispatcher/success.jsp.forwardrequestresponse;}else{request.getRequestDispatcher/failure.jsp.forwardrequestresponse;}}elseifaction.equals/servlets/borrow.do{Stringborrow=request.getParameterborrow;ifborrow.equals123{Stringid=request.getParameterid;intr=bean.bookinfo.deletebookid;ifr==1{request.getRequestDispatcher/success.jsp.forwardrequestresponse;}else{request.getRequestDispatcher/failure.jsp.forwardrequestresponse;}}}elseifaction.equals/servlets/check.do{Stringid=request.getParameterid;bean.bookinfobi=bean.bookinfo.getbookbyidid;request.setAttributebibi;request.getRequestDispatcher/finalcheck.jsp.forwardrequestresponse;}}}
2.3项目构建思路:
1、主界面有两条通道,管理员必须要有密码才能进入管理员页面,管理员页面具有修改,删除,添加等功能,而普通用户则具有借阅图书(我这边的借阅图书,相当于删除,没有后续的功能),按编号查询图书信息等功能
2、界面有javascript来验证修改或者录取图书时,是否输入为空
3、servlet用来响应所有的页面请求,然后根据请求做出相应的操作
4、javabean有两个,一个用来连接数据库,一个用来封装图书类的信息,并有操作第三章模块功能介绍Index.jsp:主页,用来登录管理员或者普通用户Manager.Jsp管理员用户的主页,界面具有增加,修改,删除等功能Add.jsp用来增加图书Edit.jsp用来修改图书Reader.jsp普通用户的主页,具有借阅,查找等功能Success.jsp管理员用户操作成功后,提示信息,并返回Successreader.jsp普通用户操作成功后,提示信息,并返回Failure.Jsp操作失败时,返回上一次层Check.jsp按编号查询FinalCheck.jsp用来返回查找的信息Common.js输入校验Bookinfo.java封装图书类信息,并有相应删除,修改等操作Dbbean.java连接数据库Servlet.Java用来响应所有界面的操作第四章功能测试及运行效果根据截图一步步往下走,功能很清晰工作总结
1、MVC设计理念认为,在一个应用系统中,用户界面发生变动的可能性最大,控制部分变动次之,而业务逻辑是最稳定的因此,业务逻辑的实现代码不应和反映用户界面的代码混杂在一起,而是尽可能地独立和分离,并由控制器来担当两者交互的“门面(Façade)”开发基于MVC模式的Web应用时,视图层可以选择JSP页面实现,控制器可以选择Servlet,负责流程控制,模型的调用和视图的选择;模型层可以用Java类来实现,完成相应的业务逻辑开发过程中要注意路径的正确书写以及对于在JSP页面中对get或post方式提交的中文参数的特殊处理Web应用开发完成后,可以使用jar命令对其打包,打包后的应用便于发布和移植
2、jsp所有的请求先发给servlet,servlet根据请求做出相应,或是访问javabean获取数据,或者传入另一个jsp页面总的来说,servlet是作为控制层面来讲的
3、只要两个java文件在同一目录下,则他们不需要互相导入包,即可使用对方的类,不需要导入包了。