版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验报实验课程:_ WebWeb 应用开发学生姓名:_学 号:_专业班级:_20182018 年 6 6 月 1818 日南昌大学实验报告学生姓名: _ 学 号:专业班级: _实验类型:口 验证 综合 设计口创新 实验日期: _实验成绩: _一、实验项目名称Web 应用开发综合训练二、实验目的和要求使用 Java+JSP+ServIe 技术,选用 EL、JSTL、Struts、Hibernate myBatis、jQuery 等技术,开发一个基本 Web 的应用程序,以达到掌握 Web 应用开发的基本原理、具备 使用Java+JSP+Servle 技术结合流行框架技术开发 Web 应用程序的能
2、力,从而提升学 生的 Web编程能力。要求学生自选题目,开发一个模拟的 Web 应用程序。可以一人一题,也可以多人 一题。但是每人必须单独完成动态 Web 页面 10 页以上。要求学生根据需求描述独自完成需求分析, 软件设计、程序模块设计以及程序的编 写、调试和测试。设计和程序完成后,要求根据指定的格式要求,独自完成设计报告的撰写。三、实验基本情况本实训要求根据下述需求陈述写出需求分析文本并进行软件开发,并列出源代码和运行结果。四、需求分析项目介绍这是一个简单的图书管理系统,由一个管理员来实现对用户的删除,图书的增加,修改 和图书的删除功能,用户注册登录后可以实现对图书的借阅和归还。 由于时间
3、关系在设 计项目时有很多不好的地方,未来得及修改,在管理员登录界面采用了图形验证码, 由 于是同样的技术,在用户登录界面就没有采用图形验证技术。功能需求1.用户注册2.图书添加3. 图书修改4. 用户管理5. 图书借阅6. 归还图书五、软件设计ER图程序流程 数据库设计 模块设计及运行结果项目整体采用 MVC 模式,整体上运用 jsp+javabean+servlet+jdbc+dao ,每个 为背景,实现简单的动态背景,部分页面运用EL、JSTL、js 中的点击事件、页技术以及邮箱页面。六、源代码1.用户类User.Javapackage vo;public class User priva
4、te String 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 bookinfoprivate String bno, bname, author , price publicString getBn
5、o() return bno;jsp 页面采用 jQuery 技术作Bootsrap 、图形验证码、分, otherpublic 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 = autho
6、r;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 lendbookprivate String username , bno, bname , author , price ,
7、other public String getUsername() return usernamepublic 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
8、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.ja
9、va package dao;import java.sql.*;import vo.bookinfo;import vo.User;import vo.lendbook;import dbc.JdbcUtil;public class UserDaopublic void add(User user) throws Exception添加用户Connectionconn=null;PreparedStatement ps=null;tryconn=JdbcUtil.getConnection();String sql=insert into user values(?,?);ps=conn.
10、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
11、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(lendb
12、ook 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
13、(); ps.setString(4, book.getAuthor();ps.setString(5, book.getPrice(); ps.setString(6,book.getOther(); ps.executeUpdate();finallyJdbcUtil.free(null, ps, conn);public List QueryAII() throws Exception/列出全部用户Connection conn=nuII;PreparedStatement ps=null;ResultSet rs=null;List userList=new ArrayList();
14、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(S
15、tring 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
16、bno,String username)Exception/归还图书Connection conn=null;PreparedStatement ps=null;tryconn=JdbcUtil.getConnection();String sql=delete from lendbook where bno=? and username=?;ps=conn.prepareStatement(sql);throwsps.setString(1, bno);ps.setString(2, username);ps.executeUpdate();finallyJdbcUtil.free(null
17、, 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,
18、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.get
19、Int(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 ArrayLi
20、st();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);bo
21、ok.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) throwsException/列出已借图书Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;List b
22、ookList=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.setB
23、name(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=Jd
24、bcUtil.getConnection();Stringsql=updatebook_infosetbname=?,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.executeUpdat
25、e();finallyJdbcUtil.free(null, ps, conn);5获取表格值代码:fun cti ongetTableC ontent(no de) varvarn ame=tr1.cells0.i nn erText;delete_user ?n ame=+n ame;alert (n ame);7.背景jQuery代码由于代码过长,不展示;七、运行结果1.管理员登录页面:管理员登录界面采用简单的CSS、jQuery、以及图形验证码,当图形验证码输入不正确以及账号密码输入不正确会岀现相相应提示,同时点击相信的输入框,提示输入对应类型的背景字 体会消失,当鼠标点击其他地方时会
26、相应岀现,采用的是 placeholder 属性,我们平时单纯的 html 的输入框以及提交的按钮,让人感觉不是很舒适,采用简单的CSS 将他们的边框去除,然后加上相应的边框。2登录主界面:导航栏感谢 bootstrap 开源,运用了始终悬浮在顶部的导航栏,奈何页面长度有限不能向下滚动,无法看 岀这一功能,页面内容由于思维过于局限,暂时没有想岀用什么内容来填充,只想到类似于积分的东西,这一内容在以后会作岀改进,目前只有一个大概的模板,同时在改变页面的分辨率时导航栏中的功能选 项会变成一个按钮,用一个便签来装载,本页也有一个亮点便是响应式,在改变分辨率时板块并不会发生错乱的现象,运用栅格系统思想
27、,在第二张图张可以看到效果,由于调各种分辨率国语繁琐,所以这一技术只在两个页面运用到,以后有时间会加以改善。3管理用户页面:点击管理用户的小便签会岀现用户的列表,点击删除用户可以将用户从数据库中删除,同时页面中的几个小符号也是运用 bootstrap 中的组件,给人以更直观清楚的描述功能,在本页面我并没有采用分页技术,但是在后面几个页面中有采用分页技术,在做页面的时候并没有考虑到有很多的用户,只是用几个来验 证,所以就没有用分页技术,在这个点击就删除的技术上一开始遇到了难题,并不知道怎么样去些控制 的后台,后来在页面中运用了js 的技术,可以利用表格的结点来获取每个表格单元格的内容,再将按键设置为 this,点击便是获取当前行的值,并传到servlet 中调用 dao 中删除用户的函数,便实现了。同时利用 js 的鼠标事件,鼠标移动到当前行时会改变颜色。4添加
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 购车设备招标信息
- 购销合同电子书
- 贷款担保保证书
- 车辆个人抵押借款合同
- 软件开发与服务协议
- 输送带修理指南合同
- 退伙协议书格式示例
- 遵守法律法规承诺
- 酒店食材订购合同
- 重庆市地理概览
- 2024年度电梯加装改造设计方案3篇
- 2024-2025年(农作物植保员)职业技能从业资格知识考试题库与答案
- 天津市2023-2024学年高一上学期期末考试物理试题(含答案)3
- 湖北省鄂东南省级示范高中教育教学改革联盟学校2024-2025学年高一上学期期中联考生物试题(含答案)
- 部编版历史九年级上册第六单元 第18课《美国的独立》说课稿
- 河南省信阳市普通高中2024-2025学年高一上学期期中考试语文试卷(无答案)
- 电动汽车充电桩投标文件范本
- 山东省德州市德城区2024-2025学年八年级上学期期中生物学试题(含答案)
- 2024年四川省公务员录用考试《行测》试题及答案解析
- (新课标新教材)2024秋新人教版数学小学一年级上册数学第 四单元第1课时《10的再认识》说课稿
- 绿色体育场馆
评论
0/150
提交评论