版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
试验汇报模板
实验报告
课程名称高级Java程序设计
试验项目基于MVC模式Web综合应用
试验仪器.个人“算机_
系别计算机学院一
专业计算机科学和技术
班级/学号计科1204
学生姓名_____________________
试验日期/5/21-6/5
成绩_______________________
指导老师______________________
目录
第一章需求分析
第二章总体设计••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••a***
2.1本系统关键功效
2.2Java源文件及其功效
2.3项目构建思绪
第三章模块功效介绍
第四章功效测试及运行效果
参考文件
工作总结
第一章:需求分析
任务1开发图书馆管理信息系统
项目需求:
1.基于MVC模式开发该JavaWeb项目;
2.木系统有两类用户角色,一般用户和管理员用户:
3.一般用户:浏览图书信息,分类浏览,能够分别依据书名、作者、出版社为关键字查询图
书;登陆后还可借阅图书;
4.管理员用户管理系统各项信息,包含:信息添加、修改和删除。
5.建立图书类包含以下信息:编号、书名、作者、出版社、出版日期。
项H设计
■选择开发模型一一MVC
层文件名描述
浏览所有图书信息,并提供添加、修改和删除图书的超
list.jsp
级链接。
add.html添加图书信息页面
视图层
edit.jsp编辑图书信息页面,该页面会显示已有的图书信息。
success.html操作成功提示页面,含有浏览图书信息的超级琏接。
failure.html操作失败提示页面,含有返回超级链接。
Scivlcl,负责根据用户请求的URL调用不同的模型进行
控制层BookControIler.java
处理,最后选择不同视图响应用户。
DBBean.java连接数据库的JavaBean(同第7章的DBBean)
模型层
Booklnfo.java完成图书信息读取、添加、修改和删除操作的JavaBean。
第二章:总体设计
2.1本系统关键功效:
1、基于MVC模式开发该JavaWeb项目;
2、本系统有两类用户角色,一般用户和管理员用户;
3、一般用户:浏览图书信息,分类浏览,能够分别依据书名、作者、出版社为关键字查询
图书;登陆后还可借阅图书;
4、管理员用户管理系统各项信息,包含:信息添加、修改和删除。
Date:14-5-31
Time:下午3:59
TochangethistemplateuseFile|Settings|FileTemplates.
-%>
<%@pagecontentType=,,text/htnil;charset=UTF-8"language="java"
iinporl=',java.ulil.ArrayLisl.bcaii.bookinfo"%>
<html>
<head>
<title></title>
</hcad>
<body>
<center>
<h2xahref="/add.jsp”>添加图书v/a></h2>
<tablealign=,'center"border=n1">
<tr>
<fontsize="2"face="黑体"color="blue"〉
<th>编号v/th><th>书名作者</th><th>出版社</fhxth>出版日期</ih><th
colspan="2">管理</th>
</font>
</tr>
<%
requesi.se(CharaclerEncoding("ulf-8'');
ArrayList<bookinfo>list=(ArrayList<bookinfo>)request.getAttribute("list");
for(bookinfobi:list){
Stringid=bi.getld();
%>
<tr>
<td><%=bi.getld()%x/td><td><%=bi.getName()%x/td><td><%=
bi.gctAuthor()%x/td><td><%=bi.gctPrcss()%x/td><td><%=bi.gctDatc()%x/td>
<td><ahref="Vservlets/edit.do?id=<%=修改</a></td>
<td><ahref=7servlets/delete.do?id=<%=id%>”>删除
</tr>
v%
)
%>
</table>
</ccntcr>
</body>
</html>
Reader.jsp
<%-
CreatedbyIntelliJIDEA.
User:Administrator
Date:14-5-31
Time:下午3:59
TochangethistemplateuseFile|Settings|FileTemplates.
-%>
<%@pagecontentTypc="text/html;charset=UTF-8"language="java,,
import="java.util.ArrayList.bean.bookinfo"%>
<html>
<head>
</head>
<body>
<center>
<fbrmaction='7scrvlcts/borrow.do"mcthod="post">
Cablealign="center"border="l">
vcaption>vh2>现有图书信M</h2></caplion><p>
<tr><tdcolspan="6"align="right"><ahref="/check.jsp”>点击查询</a></td>v/tr>
<fbntsize="2"face="黑体"color="blue"><ih>编号v/ih>〈lh>书名v/th>yh>
作者v/thxth>出版社v/thxth〉出版日期v/lh>vihcolspan="2">借阅v/lh>v/font>
</tr>
<%
request.selCharacterEncoding("ulf-8");
ArrayList<bookinfo>list=(ArrayList<bookinfo>)request.getAttribute("Iist");
for(bookinfobi:list){
Stringid=bi.getld();
%>
<tr>
<td><%=hi.getld()%></td><td><%=hi.getNanie()%></td><td><%=
bi.getAuthor()%x/td><td><%=bi.getPress()%></td><td><%=bi.getDate()%x/td>
<(d><inpu(lype="radio"name="borrow"value=,,123"x/cd>
(inputtype="hidden"name="id"value="<%=bi.getld()%>">
</tr>
<%
)
%>
</tablcxp>
<inputlype="submil"value="提交"〉
</form>
</center>
</body>
</html>
Success.jsp
<%-
CreatedbyIntelliJIDEA
User:Administrator
Date:14-6-1
Time:下午1:34
TochangethistemplatetseFile|Settings|FileTemplates.
-%>
<%@pagecontentType="text/html;charset=UTF-8"language="java"%>
<html>
<head>
<titlc></titlc>
</head>
<body><center>
<h2>操作成功</h2><br>
<ahref="/servlets/list.do">浏览图书信息</a>
</center>
</body>
</html>
Finalcheck.jsp
<%-
CreatedbyIntelliJIDEA.
User:Administrator
Dale:14-6-1
Time:下午4:15
TochangethistemplateuseFile|Settings|FileTemplates.
-%>
<%@pagecontentType="text/html;charset=UTF-8"language="javan
iniport=',bean.bookinfb"%>
<head>
<title></title>
</head>
<body>
<center>
<tablealign="center"border="1">
<tr>
<%
request.setCharaclerEncoding("ulf-8'');
bookinfobi=(bookinfo)request.getAttribute("bi");
%>
vth>编号v/th>v【h>书名</th>vth>作#</th><th>出版社v/th><ih>出版日期</th>
</tr>
<tr>
<td><%=bi.gctld()%x/td><td><%=bi.gctNamc()%x/td><td><%=
bi.getAuthor()%></td><ld><%=bi.getPress()%></ld><td><%=bi.getDale()%x/ld>
</tr>
</tab!c>
</ccntcr>
</body>
</html>
Successreader.jsp
<%-
CreatedbyIntelliJIDEA.
User:Administrator
Date:14-6-1
Time:下午1:34
TochangethistemplateuseFile|Settings|FileTemplates.
-%>
<%@pagecontentType="text/html;charset=UTF-8"language="java"%>
<h(ml>
<head>
</head>
<body><center>
vh2>操作成功v/h2xbr>
<ahref="/servlets/listreader.do”>浏览图书信息v/a>
</center>
</body>
</html>
Failure.jsp
<%-
CreatedbyIntelliJIDEA.
User:Administrator
Date:14-6-1
Time:下午2:00
TochangethistemplateuseFile|Settings|FileTemplates.
-%>
<%@pagecontentType="text/html;charset=UTF-8"language="java"%>
<html>
<head>
</head>
<body><ucnlcr>
vh2>操作失败v/h2>
<ahref="javascripl:history.back()”>点击返回v/a>
</center></body>
</html>
Edit.jsp
<%-
CreatedbyIntelliJIDEA.
User:Administrator
Date:14-5-31
Time:下午6:52
TochangethistemplateuseFile|Settings|FileTemplates.
-%>
<%@pagecontentType="tex(/html;charset=UTF-8"language="javan
import="bean.bookinfo"%>
<html>
<head>
</head>
<body>
<%request.setCharacterEncoding("utf-8");
bookinfobi=(bookinfo)rcqucst.gctAttributc("bi");
%>
<ccntcr>
<formaction="update.do"method="post">
<inpu(type="hidden"name="id"value="<%=bi.getld()%>,>
<table>
<h2xc叩ii51A修改信息v/capii(“ix/h2》
<tr><th>书名v/ih>vid><inpu〔lype="tex("value="<%=bi.getName()%>"
name="name"></td></tr>
<tr><th>作者</th><td><inputtype="text'value="<%=bi.getAuthor()%>"
name="author"></td></tr>
<tr><th>出版社</th><td><inputtype="texl"value="<%=bi.getPress()%>"
name="press"></td></tr>
<tr><th>出版三期v/thxtdxinputtype="text"value=,,<%=bi.getDate()%>"
name="date,,></tdx/tr>
<(r><tdcolspan="2"align="center"><inputtype="submit"value="提交"xinput
type="reset"value="Mfi"></td></tr>
</tahle>
</fbrni>
</cen(er>
</body>
</html>
Check.jsp
<%-
CreatedbyIntelliJIDEA.
User:Administrator
Date:14-5-31
Time:下午6:52
TochangethistemplateuseFile|Settings|FileTemplates.
-%>
<%@pagecontentType=,,text/htnil;charset=UTF-8"language="java"
import="bean.bookinfo"%>
<html>
<hcad>
</head>
<body>
<%request.setCharacterEncoding("utf-8");
bookinfbbi=(bookinfo)request.getAtiribute("bi");
%>
<center>
<formaction="updated。”nethod="post">
<inputtype="hidden"naine="id"value="<%=bi.getld()%>>>
<tahle>
<h2>vcaplion>修改信息v/cap(ion>v/h2>
<tr><th>书名v/th>vtd>vinputtype="text"value=,'<%=bi.getName()%>"
name="name"></tdx/tr>
<(r><th>作者</thx(d><inputtype="text'value="<%=bi.getAuthor()%>"
name="aulhor"></td></tr>
出版社</thxtd><inputtype="text"value="<%=bi.getPress()%>"
name="prcss"></tdx/tr>
<tr><th>出版三期</th><td><inputtype="text,'value=,,<%=bi.getDate()%>"
name="daie"></idx/tr>
<tr><tdcolspan="2"align="center"xinputtype="submit"value="提交"xinput
type="reset"value="重置
</table>
</form>
</center>
</body>
</html>
Add.jsp
<%-
CreatedbyIntelliJIDEA.
User:Administrator
Date:14-5-31
Time:下午7:20
TochangethistemplateuseFile|Settings|FileTemplates.
-%>
<%@pagecontcntTypc="tcxt/hln】l;charsct二UTF-8"language="java"%>
<h(ml>
<head>
<titlc></title>
</head>
<scriptlanguage="JavaScript"src="common.js,'x/scripl>
<body>
<ccntcr>
<formname="tbrml"onsubmit="returncheck()"ac(ion="/servlets/add.do,'method="post">
<tablealign="center"border="l">
vh2><caption>图书信息v/caption>v/h2>
<tr><th>编'v</th><td><inputtypc="tcxt"namc='id"></tdx/tr>
书名</t上>vtd><inpul(ype="text"name='name"></td></lr>
v(r>vth>作者v/止>v(d>vinpultype="tex("name=,author"></td></tr>
<tr><th>illKStt</th><td><inputtype="text"name="press"></td></tr>
<tr><th>出版日期</thxtdxinputtypc="tcxt"nainc="datc"></td></tr>
<lr><tdcolspan="2"align="center"><inputtype="submit"value="添加"xinpul
type="reset,'value=,'MM',x/td></tr>
</table>
</fc)rin>
</center>
</body>
</html>
Common.js
functioncheck(){
if(fonnl.id.value=="")
{alert("noid!");
forml.id.fbcusO;
returnfalse;}
if(.value=="")
{alert("noname!");
form.focusO;
returnfalse;}
if(fbrm1.author.value="")
(
alert("noauthor!");
form1.author.focus();
returnfalse;
if(form1.press.value=="")
alert("nopress!");
form1.prcss.focus();
returnfalse;
)
if(form1.date.value==""){
alcrtC'nodate!")
form1.dateJbcus();
returnfalse;
Bookinfo.java
packagebean;
importjava.lang.Exception;
importjava.lang.String;
importjava.lang.System;
importjava.sql.*;
importjava.sql.Conncction:
importjava.sql.ResultSet;
importjava.sql.SQLExceplion;
importjava.sql.Statement;
importjava.util.*;
importjava.util.ArrayList;
publicclassbookinfo{
privateStringid;
privateStringname;
privateStringauthor;
privateStringpress;
privateStringdate;
publicvoidse(Name(Slringname){
=name;
}
publicStringgetName()(
returnname;
}
publicvoidsetAulhor(Stringauthor){
this.author=author;
}
publicStringgetAuthor(){
returnauthor;
)
publicvoidsetDate(Stringdate){
this.datc=date;
}
publicStringgctDatc(){
returndate;
}
publicvoidsetPress(Stringpress){
ihis.press=press;
)
publicStringgetPress(){
returnpress;
publicvoidsetId(Stringid){
this.id=id;
}
publicStringgetld(){
returnid;
}
publicstaticArrayList<bookinfo>gctbooklist(){
ArrayList<bookinfb>list=newArrayList<bookinfo>();
Siringsql="selec(*frommvc_book";
bean.dbbeanjdbc=newbean.dbbean();
ResultSetrs;jdbc.executeQuery(sql);
try{
while(rs.next()){
bookinfbbi=newbookinfo();
bi.sctId(rs.getStnng("id"));
bi.setName(rs.getString("name"));
bi.setAulhonrs.getSlringC'author"));
bi.setPress(rs.getString("press"));
bi.sctDatc(rs.gctString("datc"));
list.add(bi);
)
rs.close();
}
catch(SQLExceptione){
e.printStackTrace();
jdbc.close();
returnlist;
}
publicstaticbookinfogetbookbyid(S(ringid){
Siringsql="select*frommvc_bookwhereid="+id;
dbbeanjdbc=newdbbean();
ResultSctrs=jdbc.cxccutcQucry(sql);
bookinfobi=newbookinfb();
try{
if(rs.next()){
bi.sctDatc(rs.gctString("datc"));
bi.setPress(rs.getString(Mpress"));
bi.selAuthor(rs.getSlring("author"));
bi.setName(rs.getString("name"));
bi.sctldirs.gctStringC'id"));
)
rs.close();
)
catch(SQLExceptione){
System.oul.println("nofind");
)
jdbc.close();
returnbi;
publicstaticintupdatebook(Stringid,Stringname,Stringauthor,Stringpress,Stringdate).
intresult=O;
Stringsql="updatcmvc_bookset
name-"+narne+,M,author="'+author+"',press=",+press+",,date=",+date+"'whereid="+id;
dbbeanjdbc=newdbbean();
result=jdbc.executeUpdate(sql);
rulumrusull;
)
publicstaticintdclctcbook(Stringid){
intresul(=O;
Stringsql="deletefrommvc_bookwhereid="+id;
dbbeanjdbc=newdbbean();
rcsult=jdbc.cxccutcUpdatc(sql);
returnresult;
)
publicstaticintaddbook(Stringid,Stringname,Stringauthor,Stringpress,Stringdate){
intresult=O;
Stringsql="insertintomvc_book(id,name,author,press,date)
values(idJ'+name+"'J'+aulhor+"?"+press+”'「+date+"')";
dbbeanjdbc=newdbbean。;
rcsult=jdbc.cxccutcUpdatc(sql);
returnresult;
Dbbean.java
packagebean;
importjava.lang.Exception;
importjava.lang.String;
importjava.lang.System;
importjava.sql.*;
importjava.sql.Connection:
imporljava.sql.RusullSul;
importjava.sql.Stalement;
publicclassdbbean{
privateStringdriverStr="com.mysql.jdbc.Driver";
privateStringconnStr=,jdbc:mysql://localhost:3306/boDk?characterEncoding=utf-8";
privateStringname="root";
privateStringpassword="xyh68";
privateConnectionconn=null;
privateStatementstmt=null;
publicdbbean(){
try(
Class.forName(driverStr);
conn=DriverManager.gelConnection(connStr,name,password);
stmt=conn.createStatement();
)
catch(Exccptioncx){
System.oul.println("noconnect");
)
)
publicintexecuteUpdate(Strings){
intresult=0;
try{
rcsult=stmt.cxccutcUpdatc(s);
catch(Exccptioncx){
System.out.println("updatewrong!");
)
returnresult;
}
publicResullSetexecu(eQuery(S(rings){
ResultSetrs=null;
try{
rs=stmt.executeQuery(s);
)
catch(Exccptioncx){
System.oul.prin(ln("checkwrong!");
)
returnrs;
)
publicvoidclose(){
try{stmt.close();conn.close();
}
catch(Exceptionex){
System.oul.prin(ln("close!");
)
Servlet,java
packageservlets;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HtlpScrvictResponse;
importjava.io.IOExceplion:
importjava.io.PrintWriter;
importjava.util.ArrayList;
importbean.*;
/**
*CreatedbyAdministratoron14-5-31.
*/
publicclassServletextendsHttpServlet{
protectedvoiddoGet'HttpServIetRequestrequest.HupServletResponseresponse)throws
SenletException,lOException{
doPost(rcqucst,response);
}
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throws
SenletException,lOException{
request.setCharacterEncoding("utf-8");
Stringaction=request.getServletPath();
if(action.equals("/servlets/depend.do")){
Stringvakie=rcquest.getParamcter("password");
if(value.equalsC123")){
ArrayLisl<bean.bookinfb>lisl=bean.bookinfo.getbooklist();
request.setAttribute("list",list);
rcqucst.gctRcqucstDispatchcr('7inanagcr.jsp").fbrward(rcqucst,response);
else
{ArrayList<bcan.bookinfo>list=bcan.bookinfo.getbooklist();
request.setA(tribu(e("list",list);
request.getRequestDispatcher("/reader.jsp").forward(re<]uest,response);
)
)
elseif(action.eqiials(,7servlets/list.do,')){
AnayList<bean.bookinfo>list=bean.bookinfo.getbooklist();
request.sctAttributcClist",list);
request.getRequestDispatcher('7nianager.jsp").forward(request,response);
)
elseif(action.equals(7servlets/edit.do',)){
Stringid=rcquest.gctParamctcr("id");
bean,bookinfobi=bean.bookinfo.getbookbyid(id);
request.setAttribute("bi",bi);
reqnest.getReqiiestDispatcher(,7edit.jsp").forward(reqi]e5;t,response);
)
elseif(aclion.equals("/servlels/upda(e.do")){
Stringid=request.getParameter("id");
Stringname=request.getParameter("nanie");
Stringauthor=request.getParameter("author");
Stringpress=request.ge(Parame(er("press");
Stringdate=request.getParameter("date");
intr=bean.bookinfo.updatebook(id,name,authorpress,date);
if(r==l){
request.getRequestDispatcher("/success.jsp").forward(requesl,response);
else{request.getRequestDispatcher(,7failure.jsp").forward(request,response);
elseif(action.equals('7servlets/delete.do")){
Stringid^cquest.gctParamctcrC'id");
intr=bean.bookinfo.deletebook(id);
if(r==l){
rcquest.getRcquestDispatcher('7success.jsp").forward(rcquest,response);
)
else{request.getRequestDispalcher('7failure.jsp").forward(request,response);
}
)
elseif(action.equals("/servlets/add.do")){
Stringid=request.getParameter("id");
Stringname=request.getParameter("name");
Stringauthor=request.getParanieter("author");
Stringpress=rcquest.getParameter("press");
Stringdate=request.getParameter(',date");
intr=bcan.bookinfo.addbook(id,name,author,press,date);
if(r==l){
request.getRequestDispatcher("/success.jsp").fonvard(request,response);
else{
requesl.getRequestDispatcher("/failure.jsp").forward(requesl,response);
elseif(action.equals(,7servlets/boiTow.do,,)){
Stringborrow=rcqucst.getParamctcr("borrow');
if(borrow.equals("123")){
Stringid=request.getParameter("id");
inii-bcaii.buokiiifo.dclclcbouk(id);
if(r==l){
request.getRequestDispatcher('7success.jsp").forward(requesl,response);
)
clsc{rcqucst.gctRcqucstDispatchcr(7failurc.jsp").forward(rcqucst,rcsponsc);
elseif(action.equals("/servlets/check.do")){
Stringid=request.getParameter("id");
bean,bookinfobi=bcan.bookinfo.gctbookbyid(id);
request.setAtlnbute("bi",bi);
request.getRequestDispatcher('7finalcheck.jsp").fbrward(request,response);
2.3项目构建思绪:
i、主界面有两条通道,管理员必需要有密码才能进入管理员页面,管理员页面含有修改,
删除,添加等功效,而一般用户则含有借阅图书(我这边借阅图书,相当于删除,没有后
续功效),按编号查询图书信息等功效。
2^界面有javascript来验证修改或录用图书时,是否输入为空。
3、servlet用来响应全部页面请求,然后依据请求做出对应操作。
4、javabean有两个,一个用来连接数据库,一个用来封装图书类信息,并有操作。
第三章模块功效介绍
Indcx.jsp:主页,用来登录管理员或一般用户。
ManagenJsp:管理员用户主页,界面含有增加,修改,删除等功效。
Add.jsp:用来增加图书。
Edit.jsp:用来修改图书。
Reader.jsp:一般用户主页,含有借阅,查找等功效。
Success.jsp:管理员用户操作成功后,提醒信息,并返回。
Successreader.jsp:一般用户操作成功后,提醒信息,并返回。
Failure.Jsp:操作失败时,返回上一次层。
Check.jsp:按编号查询
FinalCheck.jsp:用来返回查找信息。
Common.js:输入校验。
Bookinfo.java:封装图书类信息,并有对应删除,修改等操作。
Dbbean.java:连接数据库
ServletJava:用来响应全部界面操作。
第四章功效测试及运行效果
依据截图一步步往下走,功效很清楚:
欢迎进入图书馆里系统!
普通用户颌
管理员用户
管理员密码
京
现有图书信息
___________________________________________点击查询1
编号书名|作者|出版社I出版日期借阅
2033434224农夫山泉天然水)中国科技)2008-4-7
臊作系统
2033434225
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 年秋季呼吸道症状自查知识宣讲
- 某麻纺厂生产现场作业细则
- 某食品厂食品安全操作准则
- 玻璃厂生产安全管理规范
- 重庆企业涉税法律服务税务稽查应对指南
- 《健康管理实务》教案 项目五 慢性病患者健康管理
- 基于FP光纤干涉仪的压力传感器
- 2026年高校迎新手机支付营销推广活动方案
- 大米仓储管理及常见问题讲师版
- 可化为一元一次方程的分式方程
- 《耳科学》全册配套教学课件3
- 2026秋初中数学华东师大版七年级上册(新教材)教学计划含进度表
- 2026秋译林版八年级英语上册【Unit1-8】全册语法专项练习(含参考答案)
- 2026年法院文员考试试题及答案真题
- 2026年甘肃省酒泉矿业投资集团有限公司招聘考试备考试题及答案详解
- 2026年秋苏教版新教材小学科学四年级上册教学计划及进度表
- 2026年云南省直机关遴选公务员笔试真题及答案解析
- 新版2026年秋教科版(新教材)小学科学四年级上册(全册)教学设计
- 电梯公司质量保证体系
- 2026年商务数据分析模考试题(含答案)
- 2026礼鼎制造部技术员面试题及答案
评论
0/150
提交评论