下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验报告2018 年 6 月 18 日南昌大学实验报告学生姓名: 学 号: 专业班级:实验类型:口 验证 综合口 设计 口 创新实验日期:实验成绩: 一、实验项目名称Web应用开发综合训练二、实验目的和要求使用 Java+JSP+Servlet 技术,选用 EL、JSTL、Struts、Hibernate、myBatis、 jQuery等技术,开发一个基本 Web的应用程序,以达到掌握 Web应用开发的基本原 理、具备使用Java+JSP+Servlet 技术结合流行框架技术开发Web应用程序的能力, 从而提升学生的Web编程能力。要求学生自选题目,开发一个模拟的 Web应用程序。可以一人一题
2、,也可以多人 一题。但是每人必须单独完成动态 Web页面10页以上。要求学生根据需求描述独自完成需求分析, 软件设计、程序模块设计以及程序的编 写、调试和测试。设计和程序完成后,要求根据指定的格式要求,独自完成设计报告的撰写。三、实验基本情况本实训要求根据下述需求陈述写出需求分析文本并进行软件开发,并列出源代码和运行结果。四、需求分析项目介绍这是一个简单的图书管理系统,由一个管理员来实现对用户的删除,图书的增加,修改和图书的删除功能, 用户注册登录后可以实现对图书的借阅和归还。 由于时间关系在设计项目时有很多不好的地方, 未来得及修改, 在管理员登录界面采用了图形验证码, 由于是同样的技术,在
3、用户登录界面就没有采用图形验证技术。功能需求1. 用户注册2. 图书添加3. 图书修改4. 用户管理5. 图书借阅6. 归还图书五、软件设计ER图程序流程数据库设计模块设计及运行结果项目整体采用 MVC 模式,整体上运用 jsp+javabean+servlet+jdbc+dao ,每个 jsp 页面采用 jQuery 技术作为背景, 实现简单的动态背景, 部分页面运用 EL 、 JSTL 、js 中的点击事件、 Bootsrap 图形验证码、分页技术以及邮箱页面。六、源代码1. 用户类 User.Javapackage vo;public class User private String
4、name ,pwd ;public String getName() return name ;public void setName(String name) this . 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 , otherpublic String
5、 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
6、 ;public void setPrice(String price) this .price = price;return otherpublic void setOther(String other) this .other = other;3. 借书信息类package vo;public class lendbookprivate String username , bno , bname , author , price , otherpublic String getUsername() return username ;public void setU
7、sername(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 aut
8、hor) 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.u
9、til.ArrayList;import vo.bookinfo;import vo.User;import vo.lendbook;import dbc.JdbcUtil;public class UserDao添加用户public void add(User user) throws Exception/Connection conn=null;PreparedStatement ps=null;tryconn=JdbcUtil.getConnection();String sql="insert into user values(?,?)"ps=conn.prepar
10、eStatement(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 b
11、ook_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
12、(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(
13、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<User> QueryAll() throws Exception/Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;List&
14、lt;User> userList=new ArrayList<User>();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);finallyJdbcUti
15、l.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()
16、;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.setStr
17、ing(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.prep
18、areStatement(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
19、(*) 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<bookinfo> QueryAll_book(int pageNo) throws Exception/ 列出全部图书Connection conn=null;
20、PreparedStatement ps=null;ResultSet rs=null;int pageSize=5;int startRecno=(pageNo-1)*pageSize;List<bookinfo> bookList=new ArrayList<bookinfo>();tryconn=JdbcUtil.getConnection();String sql="select * from book_info order by bno limit ?,?"ps=conn.prepareStatement(sql);ps.setInt(1,
21、 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, co
22、nn);return bookList;username)public List<lendbook> QueryAll_lendbook(Stringthrows Exception/ 列出已借图书Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;List<lendbook> bookList=new ArrayList<lendbook>();tryconn=JdbcUtil.getConnection();String sql="select * from lend
23、book 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);
24、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();setStringsql="updatebook_infobname=?,author=?,price=?,o
25、ther=? 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 getTableCon
26、tent(node) var tri = node.parentNode.parentNode;var name=tr1.cells0.innerText;window.location.href= "<%= path %>/delete_user?name= "+name; alert(name);)7. 背景jQuery代码由于代码过长,不展示;七、运行结果1 .管理员登录页面:管理员登录界面采用简单的CSS、jQuery、以及图形验证码,当图形验证码输入不正确以及账号密码输入不正确会出现相相应提示,同时点击相信的输入框,提示输入对应类型的背景字体会消失,当
27、鼠标点击其他地方时会相应出现,采用的是placeholder 属性,我们平时单纯的html的输入框以及提交的按钮, 让人感觉不是很舒适,采用简单的CSS将他们的边框去除, 然后加上相应的边框。2 .登录主界面:导航栏感谢bootstrap 开源,运用了始终悬浮在顶部的导航栏,奈何页面长度有限不能向下滚动, 无法看出这一功能,页面内容由于思维过于局限,暂时没有想出用什么内容来填充,只想到类似于 积分的东西,这一内容在以后会作出改进,目前只有一个大概的模板,同时在改变页面的分辨率时 导航栏中的功能选项会变成一个按钮,用一个<nva>便签来装载,本页也有一个亮点便是响应式,在改变分辨率时
28、板块并不会发生错乱的现象,运用栅格系统思想,在第二张图张可以看到效果,由 于调各种分辨率国语繁琐,所以这一技术只在两个页面运用到,以后有时间会加以改善。E”图书管理系统欢迎回来!绑定信息项目介绍我的资产:群情操作|无 7统计币值可用数量折合现金3 .管理用户页面:点击管理用户的小便签会出现用户的列表,点击删除用户可以将用户从数据库中删除,同时页面中的几个小符号也是运用 bootstrap 中的组件,给人以更直观清楚的描述功能,在本页面我并没有采用分页技术,但是在后面几个页面中有采用分页技术,在做页面的时候并没有考虑到有很多的用户,只是用几个来验证,所以就没有用分页技术,在这个点击就删除的技术上一开始遇到了难题,并不知道怎么样去些控制的后台,后来在页面中运用了js的技术,可以利用表格的结点来获取每个表格单元格的内容,再将按键设置为 this,点击便是获取当前行的值,并传
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 分析面形转换在医疗领域使用准则
- 公司花卉种苗工岗位现场作业技术规程
- 炭极生产工岗位现场作业技术规程
- 电子商务师岗前深度考核试卷含答案
- 公司数控等离子切割机操作工岗位职业健康、安全、环保技术规程
- 纤维增强砌块技术-洞察与解读
- 托育师现场作业技术规程
- 环境因子响应-第1篇-洞察与解读
- 清远市总体应急预案(3篇)
- 北体大运动生理学课件第4章 血液
- 2025年成都市团校入团考试题库(含答案)
- 毛绒玩具课件讲解
- 监理安全知识岗前培训课件
- 霹雳舞教学课件图片
- 特种设备管理课件
- 某市美术馆建设项目可行性研究报告
- 2025年国网湖北电力考试笔试试题(含答案)
- 中小企业融资计划书模板
- 2025至2030年中国包醛氧淀粉行业市场深度分析及发展趋势预测报告
- 小儿流行性腮腺炎护理查房
- 异常事项管理办法
评论
0/150
提交评论