已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实 验 报 告实验课程: Web应用开发 学生姓名: 学 号: 专业班级: 2018年6月18日 南昌大学实验报告学生姓名: 学 号: 专业班级: 实验类型: 验证 综合 设计 创新 实验日期: 实验成绩: 一、实验项目名称Web应用开发综合训练二、实验目的和要求使用Java+JSP+Servlet技术,选用EL、JSTL、Struts、Hibernate、myBatis、jQuery等技术,开发一个基本Web的应用程序,以达到掌握Web应用开发的基本原理、具备使用Java+JSP+Servlet技术结合流行框架技术开发Web应用程序的能力,从而提升学生的Web编程能力。要求学生自选题目,开发一个模拟的Web应用程序。可以一人一题,也可以多人一题。但是每人必须单独完成动态Web页面10页以上。要求学生根据需求描述独自完成需求分析,软件设计、程序模块设计以及程序的编写、调试和测试。设计和程序完成后,要求根据指定的格式要求,独自完成设计报告的撰写。三、实验基本情况本实训要求根据下述需求陈述写出需求分析文本并进行软件开发,并列出源代码和运行结果。四、需求分析项目介绍这是一个简单的图书管理系统,由一个管理员来实现对用户的删除,图书的增加,修改和图书的删除功能,用户注册登录后可以实现对图书的借阅和归还。由于时间关系在设计项目时有很多不好的地方,未来得及修改,在管理员登录界面采用了图形验证码,由于是同样的技术,在用户登录界面就没有采用图形验证技术。功能需求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 name,pwd;public String getName() return name;public void setName(String 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,other;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 author) 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;3.借书信息类package vo;public class lendbook private String username, bno,bname,author,price,other;public String getUsername() return username;public void setUsername(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 author) 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.util.ArrayList;import vo.bookinfo;import vo.User;import vo.lendbook;import dbc.JdbcUtil;public class UserDaopublic void add(User user) throws Exception/添加用户Connection conn=null;PreparedStatement ps=null;tryconn=JdbcUtil.getConnection();String sql=insert into user values(?,?);ps=conn.prepareStatement(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 book_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(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(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 QueryAll() throws Exception/列出全部用户Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;List userList=new ArrayList();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);finallyJdbcUtil.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();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.setString(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.prepareStatement(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(*) 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 QueryAll_book(int pageNo) throws Exception/列出全部图书Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;int pageSize=5;int startRecno=(pageNo-1)*pageSize;List bookList=new ArrayList();tryconn=JdbcUtil.getConnection();String sql=select * from book_info order by bno limit ?,?;ps=conn.prepareStatement(sql);ps.setInt(1, 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, conn);return bookList;public List QueryAll_lendbook(String username) throws Exception/列出已借图书Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;List bookList=new ArrayList();tryconn=JdbcUtil.getConnection();String sql=select * from lendbook 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);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();String sql=update book_info set bname=?,author=?,price=?,other=? 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 getTableContent(node) var tr1 = node.parentNode.parentNode; var name=tr1.cells0.innerText; window.location.href=/delete_user?name=+name; alert(name); 7. 背景jQuery代码由于代码过长,不展示;七、运行结果1.管理员登录页面:管理员登录界面采用简单的CSS、jQuery、以及图形验证码,当图形验证码输入不正确以及账号密码输入不正确会出现相相应提示,同时点击相信的输入框,提示输入对应类型的背景字体会消失,当鼠标点击其他地方时会相应出现,采用的是placeholder属性,我们平时单纯的html的输入框以及提交的按钮,让人感觉不是很舒适,采用简单的CSS将他们的边框去除,然后加上相应的边框。2.登录主界面:导航栏感谢bootstrap开源,运用了始终悬浮在顶部的导航栏,奈何页面长度有限不能向下滚动,无法看出这一功能,页面内容由于思维过于局限,暂时没有想出用什么内容来填充,只想到类似于积分的东西,这一内容在以后会作出改进,目前只有一个大概的模板,同时在改变页面的分辨率时导航栏中的功能选项会变成一个按钮,用一个便签来装载,本页也有一个亮点便是响应式,在改变分辨率时板块并不会发生错乱的现象,运用栅格系统思想,在第二张图张可以看到效果,由于调各种分辨率国语繁琐,所以这一技术只在两个页面运用到,以后有时间会加以改善。3.管理用户页面:点击管理用户的小便签会出现用户的列表,点击删除用户可以将用户从数据库中删除,同时页面中的几个小符号也是运用bootstrap中的组件,给人以更直观清楚的描述功能,在本页面我并没有采用分页技术,但是在后面几个页面中有采用分页技术,在做页面的时候并没有考虑到有很多的用户,只是用几个来验证,所以就没有用分页技术,在这个点击就删除的技术上一开始遇到了难题,并不知道怎么样去些控制的后台,后来在页面中运用了js的技术,可以利用表格的结点来获取每个 表格单元格的内容,再将按键设置为this,点击便是获取当前行的值,并传到servlet中调用dao中删除用户的函数,便实现
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024居间合同受法律保护居间合同正式合同范本
- 编剧合同编剧合同终止协议2024年
- 2024常规解除劳动合同证明书范本
- 标准版采购协议样本
- 大学毕业生就业意向协议书
- 人才公寓优惠政策协议
- 个人个人存单质押贷款合同
- 广告拍摄合同案例
- 企业合伙协议合同样本欣赏
- 企业劳动合同范本汇编
- 胃肠镜健康宣教胃肠镜检查注意事项适应症与禁忌症宣传课件
- 会计学职业生涯发展报告
- JT-T-280-2004路面标线涂料
- 广西壮族桂林市永福县2023-2024学年四年级英语第二学期期中检测试题含答案
- Q/GDW-1738-2012配电网规划设计技术导则
- 包装盒结构的认识
- 龙口粉丝行业分析
- 《跨境电商应用英语1》课程标准
- 匾额制作工艺
- 天堂旅行团读书分享
- 急性心力衰竭通用课件
评论
0/150
提交评论