




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件开发基础(Java)综合性实验报告题 目: MVC实验 图书管理系统班 级: 学生学号: 学生姓名: 指导老师: 提交时间:2016年1月14日数学与信息学院1、 实验目的掌握基于MVC的三层架构。2、 实验题目通过数据源和DAO对象访问数据库。其中JavaBeans实现模型,访问数据库,Servlet实现控制器,JSP页面实现视图。 模型包括2个JavaBean:BookBean用于存放图书信息,BookDAO用于访问数据库。 控制器包括2个Servlet:BookQueryServlet根据请求参数查询图书信息、BookInsertServlet用来向数据库中插入数据。 视图包括4个JSP页面:bookQuery.jsp显示查询页面、bookInsert.jsp显示插入页面、display.jsp显示查询结果页面和errorPage.jsp显示错误页面。3、 具体实现1.设计数据库CREATE TABLE books ( bookid varchar(20) PRIMARY KEY, titlevarchar(50)author varchar(30), publisher varchar(40), price Float);2.程序流程查询图书信息插入图书信息3.代码实现(1)存放图书信息的JavaBeans代码BookBean.javapackage com.beans;import java.io.*;public class BookBean implements Serializable private String bookid = null;/图书编号 private String title = null;/ 图书书名 private String author = null;/ 图书作者 private String publisher = null;/ 图书出版社 private float price = 0.0F;/ 图书价格 public BookBean() public BookBean(String bookId, String author, String title, String publisher, float price) this.bookid = bookId; this.title = title; this.author = author; this.publisher = publisher;this.price = price; public String getBookid() return this.bookid; public String getTitle() return title; public String getAuthor() return this.author; public float getPrice() return price; public String getPublisher () return publisher; public void setBookid(String bookid) this.bookid=bookid; public void setTitle(String title)this.title=title; public void setAuthor(String author) this. author = author; public void setPrice(float price)this.price=price; public void setPublisher (String publisher) this.publisher = publisher;(2)BookDAO是一个简单的JavaBeans,它实现数据库的访问package com.beans;import java.sql.*;import javax.sql.*;import javax.naming.*;import java.util.ArrayList;public class BookDAO private static Context context= null; private DataSource dataSource = null; public BookDAO() try if(context = null) context = new InitialContext(); context = (Context)context.lookup(“java:comp/env”);/ 连接的是在context.xml下面配置的数据库连接池 dataSource = (DataSource)context.lookup(databasePool); catch(NamingException e2) / 根据书号查询图书信息 public BookBean searchBook(String bookid) Connection conn = null; PreparedStatement pstmt = null; ResultSet rst = null; BookBean book = new BookBean(); try conn = dataSource.getConnection(); pstmt = conn.prepareStatement(SELECT * FROM books WHERE bookid=?); pstmt.setString(1,bookid); rst = pstmt.executeQuery(); if(rst.next() book.setBookid(rst.getString(bookid); book.setTitle(rst.getString(title); book.setAuthor(rst.getString(author); book.setPublisher(rst.getString(publisher); book.setPrice(rst.getFloat(price); return book; else return null; catch(SQLException se) return null; finally try conn.close(); catch(SQLException se) / 插入一本图书记录 public boolean insertBook(BookBean book) Connection conn = null; PreparedStatement pstmt = null; try conn = dataSource.getConnection(); pstmt = conn.prepareStatement( INSERT INTO books VALUES(?,?,?,?,?); pstmt.setString(1,book.getBookid(); pstmt.setString(2,book.getTitle(); pstmt.setString(3,book.getAuthor(); pstmt.setString(4,book.getPublisher(); pstmt.setFloat(5,book.getPrice(); pstmt.executeUpdate(); pstmt.close(); return true; catch(SQLException se) return false; finally try conn.close(); catch(SQLException se) (3)JSP页面bookQuery.jsp实现根据书号查询图书信息 Book Query请输入一个书号:(4)JSP页面bookInsert.jsp实现向数据库中插入数据 Book Insert请输入图书信息: 书号 书名 作者 出版社 单价 (5)显示查询结果的JSP页面display.jsp 书号: 书名: 作者: 出版社: 价格:(6)错误页面errorPage.jsp 对不起,您查的图书不存在!(7)从数据库中查找该书,最后根据查询结果将请求转发到显示页面(display.jsp)或错误页面(errorPage.jsp)package com.control;import java.io.*;import java.sql.*;import javax.servlet.*;import javax.servlet.http.*;import com.beans.BookBean;import com.beans.BookDAO;public class BookQueryServlet extends HttpServlet public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException String bookid = request.getParameter(bookid); BookDAO bookdao = new BookDAO(); BookBean book = bookdao.searchBook(bookid); if(book!=null) request.getSession().setAttribute(book, book); RequestDispatcher view = request.getRequestDispatcher(/display.jsp); view.forward(request, response); else RequestDispatcher view = request.getRequestDispatcher(/errorPage.jsp); view.forward(request, response); (8) Servlet实现向数据库插入数据,并将控制请求的转发到bookInsert.jsp页面。package com.control;import java.io.*;import java.sql.*;import javax.servlet.*;import javax.servlet.http.*;import com.beans.BookBean;import com.beans.BookDAO;public class BookInsertServlet extends HttpServlet public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException request.setCharacterEncoding(UTF-8); String message = null; BookBean book = new BookBean( request.getParameter(bookid),request.getParameter(title), request.getParameter(author),request.getParameter(publisher), Float.parseFloat(request.getParameter(price) ); BookDAO bookdao = new BookDAO(); boolean success = bookdao.insertBook(book); if(success) message = 成功插入一条记录!; else message = 插入记录错误!; request.setAttribute(result,message); RequestDispatcher view = request.getRequestDispatcher(/bookInsert.jsp); view.forward(request, response); (9)配置context文件(10)在web.xml文件中部署Servlet和context资源 SimpleBookManager index.html index.htm index.jsp default.html default.htm default.jsp databasePooljavax.sql.DataSourceContainer bookQuery control.BookQueryServlet bookQuery /bookquery
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北黄冈市麻城市思源实验学校2026届七年级数学第一学期期末复习检测模拟试题含解析
- 2026届山东省菏泽市九年级数学第一学期期末学业水平测试试题含解析
- 2026届四川省巴中南江县联考数学七上期末联考模拟试题含解析
- 2026届贵州省遵义汇川区六校联考数学七年级第一学期期末质量检测试题含解析
- 2025河南新乡市延津县审计局招聘辅助审计人员5人考前自测高频考点模拟试题附答案详解(完整版)
- 2025江苏泰州市卫生健康委员会所属部分事业单位招聘专业技术人员9人考前自测高频考点模拟试题附答案详解(突破训练)
- 2025年合肥长丰县下塘镇招聘村(社区)后备干部12人模拟试卷及答案详解(必刷)
- 2025年玉环市经济和化局公开选聘工作人员1人考前自测高频考点模拟试题及1套参考答案详解
- 2025吉林白山市教育系统“进校园”招聘高校毕业生52人考前自测高频考点模拟试题参考答案详解
- 2025湖南师范大学附属小学第二轮非事业编制教师招聘4人考前自测高频考点模拟试题及答案详解(名师系列)
- 资阳产业投资集团有限公司第三轮一般员工市场化招聘笔试参考题库附答案解析
- 【高考真题】陕西、山西、宁夏、青海2025年高考历史真题(含解析)
- 宣威课件教学课件
- 2025年淮南市大通区和寿县经开区公开招聘社区“两委”后备干部30名笔试备考题库及答案解析
- 《文献检索与科技论文写作入门》课件(共八章)
- 2025云南红河红家众服经营管理有限公司社会招聘工作人员8人笔试参考题库附带答案详解
- 2025年浙江高考真题化学试题(解析版)
- 牛羊布氏杆菌课件
- 机动车排放定期检验标准考核试题及答案
- 共享实验室合作协议书
- DBJ04-T 290-2012 袖阀管注浆加固地基技术规程
评论
0/150
提交评论