《javaWeb图书管理系统.pdf》由会员分享,可在线阅读,更多相关《javaWeb图书管理系统.pdf(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 实验报告模板 实 验 报 告 课程名称 高级 Java 程序设计 实验项目 基于 MVC 模式的 Web 综合应用 实验仪器 _ 个人计算机 _ 系 别_计算机学院 _ 专 业_计算机科学与技术_ 班级/学号_计科 1204 学生姓名 _ 实验日期 _ 2014/5/21/_ 成 绩 _ 指导教师 _ _ 目 录 第一章 需求分析.第二章 总体设计.2。1 本系统的主要功能.2.2 Java 源文件及其功能.2。3 项目构建思路.第三章 模块功能介绍.第四章 功能测试及运行效果.参考文献.工作总结.第一章:需求分析 任务 1 开发图书馆管理信息系统 项目需求:1.基于 MVC 模式开发该 J
2、ava Web 项目;2.本系统有两类用户角色,普通用户和管理员用户;3.普通用户:浏览图书信息,分类浏览,能够分别根据书名、作者、出版社为关键字查询图书;登陆后还可借阅图书;4.管理员用户管理系统各项信息,包括:信息的添加、修改和删除。5。建立的图书类包含如下信息:编号、书名、作者、出版社、出版日期。项目设计 选择开发模型-MVC 第二章:总体设计 2。1 本系统的主要功能:1、基于 MVC 模式开发该 Java Web 项目;2、本系统有两类用户角色,普通用户和管理员用户;3、普通用户:浏览图书信息,分类浏览,能够分别根据书名、作者、出版社为关键字查询图书;登陆后还可借阅图书;4、管理员用
3、户管理系统各项信息,包括:信息的添加、修改和删除.5、建立的图书类包含如下信息:编号、书名、作者、出版社、出版日期。2.2 Java 源文件及其功能(功能在下一章讲述):Index。jsp 层 文件名 描述 list.jsp 浏览所有图书信息,并提供添加、修改和删除图书的超级链接。add.html 添加图书信息页面 edit.jsp 编辑图书信息页面,该页面会显示已有的图书信息。success.html 操作成功提示页面,含有浏览图书信息的超级链接。视图层 failure.html 操作失败提示页面,含有返回超级链接。控制层 BookController.java Servlet,负责根据用户
4、请求的 URL 调用不同的模型进行处理,最后选择不同视图响应用户。DBBean.java 连接数据库的 JavaBean(同第 7 章的 DBBean)模型层 BookInfo.java 完成图书信息读取、添加、修改和删除操作的 JavaBean。page contentType=”text/html;charset=UTF8”language=”java html head title/title /head 欢迎进入图书馆里系统!普通用户input type=radio”name=”person value=reader checkedbr 管理员用户input type=radio na
5、me=”person value=”editer”br 管理员密码 input type=”submit”value=”登录 /center /html Manager。jsp-Created by IntelliJ IDEA.User:Administrator Date:145-31 Time:下午 3:59 To change this template use File Settings|File Templates。-%head /head body center h2 table align=”center”border=1”tr th编号/th书名/th作者/thth出版社%re
6、quest.setCharacterEncoding(utf-8”);ArrayListbookinfo list=(ArrayList tr td%=bi.getId()/td td/td td/td td=bi.getPress()td=bi.getDate()%/td a href=”/servlets/edit.do?id=a href=”/servlets/delete.do?id=删除/a/td /tr /center/body Reader.jsp Created by IntelliJ IDEA.User:Administrator Date:14-531 Time:下午 3:
7、59 To change this template use File|Settings|File Templates.-%page contentType=text/html;charset=UTF-8”language=java”import=”java。util.ArrayList,bean。bookinfo”/title body form action=/servlets/borrow。do”method=”post”table align=center border=1”现有图书信息/h2/caption tra href=/check。jsp点击查询/a/td/tr tr th编
8、号th书名/thth作者/thth出版社th出版日期/font /tr%request.setCharacterEncoding(utf-8);ArrayList list=(ArrayList%=bi。getId()%/tdtd/tdtd/td td=bi.getPress()%/td/td tdinput type=radio”name=borrow”value=”123”%p /form/center /html Success。jsp%page contentType=text/html;charset=UTF8 language=java”%html head title/title
9、/head body h2操作成功 浏览图书信息/a /body Finalcheck.jsp%-Created by IntelliJ IDEA.User:Administrator Date:146-1 Time:下午 4:15 To change this template use File|Settings|File Templates。-%page contentType=”text/html;charset=UTF8 language=”java”import=bean。bookinfo”%html head body center%request。setCharacterEnco
10、ding(utf-8”);bookinfo bi=(bookinfo)request.getAttribute(”bi”);编号/th th书名/th th作者th出版社/th出版日期/th /tr td=bi.getId()%td=bi。getName()%/td td=bi.getAuthor()/tdtd/tdtd=bi。getDate()/td /tr /center/body/html Successreader。jsp Created by IntelliJ IDEA.User:Administrator Date:146-1 Time:下午 1:34 To change this
11、 template use File Settings File Templates.head title/title/head center br a href=/servlets/listreader。do”浏览图书信息/a /body/html Failure.jsp%Created by IntelliJ IDEA。User:Administrator Date:146-1 Time:下午 2:00 To change this template use File|Settings|File Templates.%page contentType=”text/html;charset=
12、UTF8”language=java”html head body h2操作失败/h2 a href=”javascript:history。back()”点击返回/a/center/body head /head body request.setCharacterEncoding(”utf-8”);bookinfo bi=(bookinfo)request.getAttribute(”bi);%form action=”update。do method=”post input type=”hidden”name=”id”value=”h2caption修改信息 书名/thtd input t
13、ype=text”value=”name=”name”/td/tr th作者input type=text”value=%=bi。getAuthor()”name=author/td tr 出版社/thtdinput type=text”value=”/tr tr th出版日期/th td input type=”text value=name=date”/td trinput type=”submit value=提交input type=”reset value=重置/td /html Check。jsp page contentType=text/html;charset=UTF8 la
14、nguage=”java import=bean。bookinfo”%html /title/head body input type=”hidden name=id”value=”table h2caption修改信息/h2 trth书名/th td input type=text”value=”%=bi.getName()%”name=name/td tr td input type=text”value=”name=”author”/td tr td name=”press”/td/tr trtdinput type=”text”value=”%=bi。getDate()%name=da
15、te”/td/td /table /body Add。jsp%-Created by IntelliJ IDEA。User:Administrator Date:145-31 Time:下午 7:20 To change this template use File Settings|File Templates。-%page contentType=text/html;charset=UTF-8 language=”java%html head title/script body caption图书信息/caption 编号/thtd input type=text name=id/td t
16、r书名/thtdinput type=”text name=name”/td/tr 作者/thinput type=text”name=author”/td/tr trth出版社/th/tr th出版日期/th td input type=reset”value=重置”/td/tr /table /center/body/html Common。js function check()if(form1.id.value=”)alert(”no id!);form1.id。focus();return false;if(form1。name。value=”)alert(”no name!”);fo
17、rm1.name。focus();return false;if(form1.author.value=)alert(”no author!);form1。author.focus();return false;if(form1。press.value=”)alert(no press!”);form1。press。focus();return false;if(form1。date.value=”)alert(”no date!)form1.date.focus();return false;Bookinfo。java package bean;import java。lang.Except
18、ion;import java.lang.String;import java.lang。System;import java.sql。*;import java.sql.Connection;import java。sql.ResultSet;import java.sql.SQLException;import java.sql。Statement;import java.util.;import java。util.ArrayList;public class bookinfo private String id;private String name;private String au
19、thor;private String press;private String date;public void setName(String name)this。name=name;public String getName()return name;public void setAuthor(String author)this。author=author;public String getAuthor()return author;public void setDate(String date)this。date=date;public String getDate()return d
20、ate;public void setPress(String press)this。press=press;public String getPress()return press;public void setId(String id)this。id=id;public String getId()return id;public static ArrayListbookinfo getbooklist()ArrayListbookinfo list=new ArrayList();String sql=”select from mvc_book;bean。dbbean jdbc=new
21、bean.dbbean();ResultSet rs=jdbc。executeQuery(sql);try while(rs.next())bookinfo bi=new bookinfo();bi.setId(rs。getString(id));bi。setName(rs.getString(”name);bi.setAuthor(rs。getString(author);bi.setPress(rs。getString(press”));bi。setDate(rs。getString(date);list.add(bi);rs.close();catch(SQLException e)e。
22、printStackTrace();jdbc.close();return list;public static bookinfo getbookbyid(String id)String sql=”select from mvc_book where id=+id;dbbean jdbc=new dbbean();ResultSet rs=jdbc。executeQuery(sql);bookinfo bi=new bookinfo();try if(rs。next()bi。setDate(rs.getString(date”);bi.setPress(rs。getString(”press
23、”);bi。setAuthor(rs.getString(”author”);bi。setName(rs.getString(name”);bi。setId(rs.getString(”id”);rs.close();catch(SQLException e)System.out.println(”no find”);jdbc.close();return bi;public static int updatebook(String id,String name,String author,String press,String date)int result=0;String sql=”up
24、date mvc_book set name=”+name+,author=+author+”,press=”+press+,date=+date+”where id=+id;dbbean jdbc=new dbbean();result=jdbc.executeUpdate(sql);return result;public static int deletebook(String id)int result=0;String sql=delete from mvc_book where id=+id;dbbean jdbc=new dbbean();result=jdbc。executeU
25、pdate(sql);return result;public static int addbook(String id,String name,String author,String press,String date)int result=0;String sql=”insert into mvc_book(id,name,author,press,date)values(id,”+name+”,”+author+,+press+”,+date+)”;dbbean jdbc=new dbbean();result=jdbc.executeUpdate(sql);return result
26、;Dbbean。java package bean;import java.lang。Exception;import java。lang.String;import java.lang.System;import java。sql。*;import java。sql。Connection;import java.sql。ResultSet;import java.sql。Statement;public class dbbean private String driverStr=com.mysql。jdbc.Driver”;private String connStr=jdbc:mysql:
27、/localhost:3306/book?characterEncoding=utf-8;private String name=root;private String password=xyh201268;private Connection conn=null;private Statement stmt=null;public dbbean()try Class。forName(driverStr);conn=DriverManager.getConnection(connStr,name,password);stmt=conn。createStatement();catch(Excep
28、tion ex)System。out。println(no connect);public int executeUpdate(String s)int result=0;try result=stmt。executeUpdate(s);catch(Exception ex)System.out。println(”update wrong!);return result;public ResultSet executeQuery(String s)ResultSet rs=null;try rs=stmt.executeQuery(s);catch(Exception ex)System。ou
29、t。println(”check wrong!);return rs;public void close()trystmt。close();conn。close();catch(Exception ex)System。out.println(close!”);Servlet.java package servlets;import javax。servlet。ServletException;import javax。servlet.http。HttpServlet;import javax.servlet。http。HttpServletRequest;import javax.servle
30、t.http。HttpServletResponse;import java。io.IOException;import java.io。PrintWriter;import java.util.ArrayList;import bean。*;/*Created by Administrator on 14-5-31。/public class Servlet extends HttpServlet protected void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletExcepti
31、on,IOException doPost(request,response);protected void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException request。setCharacterEncoding(utf8”);String action=request.getServletPath();if(action.equals(/servlets/depend。do”))String value=request.getParamete
32、r(”password);if(value。equals(123”))ArrayList list=bean。bookinfo.getbooklist();request.setAttribute(”list”,list);request。getRequestDispatcher(/manager。jsp)。forward(request,response);else ArrayList list=bean。bookinfo。getbooklist();request.setAttribute(list,list);request.getRequestDispatcher(/reader。js
33、p”)。forward(request,response);else if(action。equals(”/servlets/list。do”))ArrayListbean.bookinfo list=bean。bookinfo。getbooklist();request.setAttribute(”list”,list);request.getRequestDispatcher(/manager。jsp”).forward(request,response);else if(action。equals(”/servlets/edit.do”)String id=request。getPara
34、meter(”id);bean。bookinfo bi=bean。bookinfo。getbookbyid(id);request.setAttribute(”bi,bi);request。getRequestDispatcher(/edit.jsp”).forward(request,response);else if(action.equals(”/servlets/update.do)String id=request.getParameter(id);String name=request。getParameter(”name”);String author=request。getPa
35、rameter(”author”);String press=request。getParameter(press”);String date=request.getParameter(date”);int r=bean。bookinfo.updatebook(id,name,author,press,date);if(r=1)request.getRequestDispatcher(”/success。jsp)。forward(request,response);elserequest。getRequestDispatcher(/failure。jsp)。forward(request,re
36、sponse);else if(action。equals(/servlets/delete。do”)String id=request。getParameter(id”);int r=bean.bookinfo.deletebook(id);if(r=1)request.getRequestDispatcher(”/success.jsp”).forward(request,response);else request。getRequestDispatcher(”/failure。jsp)。forward(request,response);else if(action。equals(/se
37、rvlets/add.do))String id=request。getParameter(”id);String name=request.getParameter(”name”);String author=request。getParameter(author”);String press=request。getParameter(press”);String date=request.getParameter(date”);int r=bean.bookinfo。addbook(id,name,author,press,date);if(r=1)request.getRequestDi
38、spatcher(”/success。jsp”)。forward(request,response);else request.getRequestDispatcher(”/failure。jsp”)。forward(request,response);else if(action.equals(/servlets/borrow。do”)String borrow=request。getParameter(”borrow);if(borrow.equals(”123”)String id=request。getParameter(id);int r=bean。bookinfo.deletebo
39、ok(id);if(r=1)request.getRequestDispatcher(/success.jsp”).forward(request,response);elserequest.getRequestDispatcher(”/failure。jsp”)。forward(request,response);else if(action.equals(”/servlets/check。do”)String id=request.getParameter(”id”);bean.bookinfo bi=bean。bookinfo.getbookbyid(id);request。setAtt
40、ribute(bi,bi);request。getRequestDispatcher(/finalcheck.jsp”)。forward(request,response);2。3 项目构建思路:1、主界面有两条通道,管理员必须要有密码才能进入管理员页面,管理员页面具有修改,删除,添加等功能,而普通用户则具有借阅图书(我这边的借阅图书,相当于删除,没有后续的功能),按编号查询图书信息等功能。2、界面有 javascript 来验证修改或者录取图书时,是否输入为空。3、servlet 用来响应所有的页面请求,然后根据请求做出相应的操作。4、javabean 有两个,一个用来连接数据库,一个用来封
41、装图书类的信息,并有操作。第三章 模块功能介绍 Index。jsp:主页,用来登录管理员或者普通用户.Manager.Jsp:管理员用户的主页,界面具有增加,修改,删除等功能。Add。jsp:用来增加图书。Edit。jsp:用来修改图书。Reader。jsp:普通用户的主页,具有借阅,查找等功能。Success.jsp:管理员用户操作成功后,提示信息,并返回。Successreader。jsp:普通用户操作成功后,提示信息,并返回.Failure。Jsp:操作失败时,返回上一次层。Check.jsp:按编号查询 FinalCheck。jsp:用来返回查找的信息。Common。js:输入校验。B
42、ookinfo。java:封装图书类信息,并有相应删除,修改等操作。Dbbean.java:连接数据库 Servlet.Java:用来响应所有界面的操作。第四章 功能测试及运行效果 根据截图一步步往下走,功能很清晰:工作总结 1、MVC 设计理念认为,在一个应用系统中,用户界面发生变动的可能性最大,控制部分变动次之,而业务逻辑是最稳定的。因此,业务逻辑的实现代码不应和反映用户界面的代码混杂在一起,而是尽可能地独立和分离,并由控制器来担当两者交互的“门面(Faade)”开发基于 MVC 模式的 Web 应用时,视图层可以选择 JSP 页面实现,控制器可以选择Servlet,负责流程控制,模型的调用和视图的选择;模型层可以用 Java 类来实现,完成相应的业务逻辑.开发过程中要注意路径的正确书写以及对于在 JSP 页面中对 get 或 post 方式提交的中文参数的特殊处理。Web 应用开发完成后,可以使用 jar 命令对其打包,打包后的应用便于发布和移植。2、jsp 所有的请求先发给 servlet,servlet 根据请求做出相应,或是访问 javabean 获取数据,或者传入另一个 jsp 页面。总的来说,servlet 是作为控制层面来讲的。3、只要两个 java 文件在同一目录下,则他们不需要互相导入包,即可使用对方的类,不需要导入包了.