围绕中小学(注:无图书馆)图书管理需求(如采购入库、图书编码、借书还书、图书出库),设计合理的系统功能模块和数据库结构,构建一个较为实用的图书管理系统。
任务要求:按照软件工程理论,依次完成分析、设计、实现、测试各步骤,有较好的用户界面,考虑相关数据的安全和隐私性,所有数据通过用户界面输入输出。
该项目采用三层B/S架构,数据层,表示层,控制层。
NetBeans8.2(如果要直接使用提供的代码最好用该开发工具,该工具Servlet的方法是自动生成,与目前主流的IDE有所不同)
JDK1.8
数据库为Oracle 11g 简化版
表示层使用前端框架Pintuer。具体情况请参阅官网资料:www.pintuer.com
在该系统中使用的是1.0版本。下载后在web文件夹里面建立两个文件夹,css文件夹和js文件夹。将下载后的pintuer框架文件夹解压,将里面的js文件放到js文件夹,css文件放到css文件夹。
具体如下:
同时还需要如下架包:
jstl.jar
ojdbc6.jar
standard.jar
这些文件的下载请自行下载。这里不提供。
将这个三个架包放到WEB-INF的lib文件夹。lib文件夹请自己建立。具体如上图所示。
同时这些文件还要导入到库文件夹下面
具体如下图:
所需的tomcat服务器请自行到tomcat官网下载,请使用8.5以上版本,使用7.0版本会有中文乱码,本系统没有做这方面的处理。
项目结构如下:
数据层主要负责对数据库表的各种增删改查。采用DAO模式,将对数据库的操作封装在一个接口里,一个类来实现。
数据库表的设计如下:
三个表:图书表,用户表,用户借书表
create table Book /*图书表*/
(
Bno varchar2(15) primary key, /*书的编号*/
Bname varchar2(30), /*书名*/
Bauthor varchar2(24), /*书的作者*/
Bnum int check(Bnum>=0) /*书的数量*/
)
create table BookUser /*用户表*/
(
username varchar2(12) primary key, /*用户名*/
passwords varchar2(12) not null, /*密码*/
permission int not null /*权限*1:管理员 2:普通用户/
)
create table UB /*用户借书信息表*/
(
username varchar2(12), /*用户名*/
Bno varchar2(15), /*书的编号*/
Bname varchar2(30), /*书名*/
LendTime date, /*借书时间*/
primary key(username,Bno),
foreign key(username) references BookUser(username) on delete cascade,
foreign key(Bno) references Book(Bno) on delete cascade
)
数据层的java类如下图所示:
数据层代码如下:
package com.book.dao;
import com.book.model.Book;
import com.book.model.BookUser;
import com.book.model.UB;
import com.book.until.Pagination;
import java.util.List;
public interface ISBookDao {
/*图书*/
public List<Book> getAllBook();
public List<Book> getAllBooks(Pagination pagination);
public List<Book> getAllBooks(String bno, Pagination pagination);
public Book getBook(String bno);
public boolean findBook(String bno);
public boolean insertBook(Book book);
public boolean updateBook(Book book);
public boolean lendBook(String bno);
public boolean returnBook(String bno);
public boolean deleteBook(String bno);
/*用户*/
public List<BookUser> getAllBookUser();
public List<BookUser> getAllBookUsers(Pagination pagination);
public List<BookUser> getAllBookUser(String username, Pagination pagination);
public BookUser getBookUser(String username);
public boolean updateBookUser(BookUser bookuser);
public boolean deleteBookUser(String username);
public boolean findBookUser(BookUser bookuser);
public boolean insertBookUser(BookUser bookuser);
public boolean isAdmin(BookUser bookuser);
public boolean findBookUser(String userame);
/*用户借书*/
public List<UB> getAllUB();
public List<UB> getAllUBs(Pagination pagination);
public List<UB> getAllUB(String username, Pagination pagination);
public UB getUB(String username);
public boolean updateUB(UB ub);
public boolean deleteUB(String username, String bno);
public boolean findUB(UB ub);
public boolean insertUB(UB ub);
public boolean isLend(String bno);
public boolean isLends(String bno, String username);
}
package com.book.impl;
import com.book.dao.ISBookDao;
import com.book.model.Book;
import com.book.model.BookUser;
import com.book.model.UB;
import com.book.until.DatabaseBean;
import com.book.until.Pagination;
import java.awt.Image;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
public class BookDaoImpl implements ISBookDao {
Connection conn = null;
Statement stmt = null;
PreparedStatement psmt = null;
ResultSet rs = null;
public List<Book> getAllBook() { //查询所有图书信息
List<Book> books = new ArrayList<Book>();
try {
conn = DatabaseBean.getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from Book");
while (rs.next()) {
Book book = new Book();
book.setBno(rs.getString("bno"));
book.setBname(rs.getString("bname"));
book.setBauthor(rs.getString("bauthor"));
book.setBnum(rs.getInt("bnum"));
books.add(book);
}
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, stmt, conn);
}
return books;
}
public Book getBook(String bno) {//根据书号查询图书信息
Book book = new Book();
try {
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement("select * from Book where bno=?");
psmt.setString(1, bno);
rs = psmt.executeQuery();
while (rs.next()) {
book.setBno(rs.getString("bno"));
book.setBname(rs.getString("bname"));
book.setBauthor(rs.getString("bauthor"));
book.setBnum(rs.getInt("bnum"));
}
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return book;
}
public boolean findBook(String bno) {//根据书号查询图书是否存在 存在返回true,不存在返回false
try {
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement("select bno from Book where bno=?");
psmt.setString(1, bno);
rs = psmt.executeQuery();
if (rs.next()) {
return true;
}
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return false;
}
public boolean insertBook(Book book) {//插入图书信息 插入成功返回true,失败返回false
String sql = "insert into Book(Bno,Bname,Bauthor,Bnum) values(?,?,?,?)";
try {
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement(sql);
psmt.setString(1, book.getBno());
psmt.setString(2, book.getBname());
psmt.setString(3, book.getBauthor());
psmt.setInt(4, book.getBnum());
psmt.executeUpdate();
return true;
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return false;
}
public boolean updateBook(Book book) {//修改图书信息 修改成功返回true,失败返回false
String sql = "update Book set bname=?,bauthor=?,bnum=? where bno=?";
try {
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement(sql);
psmt.setString(1, book.getBname());
psmt.setString(2, book.getBauthor());
psmt.setInt(3, book.getBnum());
psmt.setString(4, book.getBno());
psmt.executeUpdate();
return true;
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return false;
}
public boolean isLend(String bno) {//检测图书是否可借 true:可借 false:不可借
int number = 0;
try {
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement("select bnum from Book where bno=?");
psmt.setString(1, bno);
rs = psmt.executeQuery();
while (rs.next()) {
number = rs.getInt("bnum");
}
if (number > 0) {
return true;
}
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return false;
}
public boolean lendBook(String bno) {//借书,借书成功返回true,失败返回false
int number = 0;
try {
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement("select bnum from Book where bno=?");
psmt.setString(1, bno);
rs = psmt.executeQuery();
while (rs.next()) {
number = rs.getInt("bnum");
number = number - 1;
}
psmt = conn.prepareStatement("update book set bnum=? where bno=?");
psmt.setInt(1, number);
psmt.setString(2, bno);
psmt.executeUpdate();
return true;
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return false;
}
public boolean returnBook(String bno) {//还书,,还书成功返回true,失败返回false
int number = 0;
try {
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement("select bnum from Book where bno=?");
psmt.setString(1, bno);
rs = psmt.executeQuery();
while (rs.next()) {
number = rs.getInt("bnum");
number += 1;
}
psmt = conn.prepareStatement("update book set bnum=? where bno=?");
psmt.setInt(1, number);
psmt.setString(2, bno);
psmt.executeUpdate();
return true;
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return false;
}
public boolean deleteBook(String bno) {//删除图书 删除成功返回true,失败返回false
try {
String sql = "delete from book where bno=? ";
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement(sql);
psmt.setString(1, bno);
psmt.executeUpdate();
return true;
} catch (SQLException ex) {
ex.printStackTrace();
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return false;
}
public List<Book> getAllBooks(Pagination pagination) {//分页显示图书信息
List<Book> books = new ArrayList<Book>();
try {
conn = DatabaseBean.getConnection();
String sql = "select count(*) as counts from Book";
psmt = conn.prepareStatement(sql);
rs = psmt.executeQuery();
rs.next();
pagination.setCountSize(rs.getInt("counts"));
//求指定显示的记录数
int start = (pagination.getCurrPage() - 1) * pagination.getPageSize() + 1;
int end = pagination.getCurrPage() * pagination.getPageSize();
//小于等于该页最大条数,大于等于该页最小条数
sql = "SELECT * FROM(SELECT ROWNUM NO,s.* FROM "
+ "(SELECT * FROM book ORDER BY bno ASC) s "
+ "WHERE ROWNUM<=?) WHERE NO >=?";
psmt = conn.prepareStatement(sql);
psmt.setInt(1, end);
psmt.setInt(2, start);
rs = psmt.executeQuery();
while (rs.next()) {
Book book = new Book();
book.setBno(rs.getString("bno"));
book.setBname(rs.getString("bname"));
book.setBauthor(rs.getString("bauthor"));
book.setBnum(rs.getInt("bnum"));
books.add(book);
}
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return books;
}
public List<Book> getAllBooks(String bno, Pagination pagination) {//模糊查询显示图书信息
List<Book> books = new ArrayList<Book>();
try {
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement("select count(*) as counts from book where bno like ?");
psmt.setString(1, "%" + bno + "%");
rs = psmt.executeQuery();
rs.next();
pagination.setCountSize(rs.getInt("counts"));
int start = (pagination.getCurrPage() - 1) * pagination.getPageSize() + 1;
int end = pagination.getCurrPage() * pagination.getPageSize();
psmt = conn.prepareStatement("SELECT * FROM(SELECT ROWNUM NO,s.* FROM "
+ "(SELECT * FROM book where bno like ? ORDER BY bno ASC) s "
+ "WHERE ROWNUM<=?) WHERE NO >=?");
psmt.setString(1, "%" + bno + "%");
psmt.setInt(2, end);
psmt.setInt(3, start);
rs = psmt.executeQuery();
while (rs.next()) {
Book book = new Book();
book.setBno(rs.getString("bno"));
book.setBname(rs.getString("bname"));
book.setBauthor(rs.getString("bauthor"));
book.setBnum(rs.getInt("bnm"));
books.add(book);
}
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return books;
}
@Override
public boolean findBookUser(BookUser bookuser) {//检测用户是否已经注册,输入的登录信息是否正确
try {
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement("select passwords from bookUser where username=? ");//检查数据库中是否存在该用户
psmt.setString(1, bookuser.getUsername());
rs = psmt.executeQuery();
while (rs.next()) {
String password = rs.getString("passwords");
if (bookuser.getPasswords().equals(password)) {
return true;
} else {
return false;
}
}
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return false;
}
public boolean isAdmin(BookUser bookuser) {//判断登录用户身份 true:管理员 false:普通用户
try {
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement("select permission from bookuser where username=? and passwords=?");//检查数据库中是否存在该用户
psmt.setString(1, bookuser.getUsername());
psmt.setString(2, bookuser.getPasswords());
rs = psmt.executeQuery();
rs.next();
if (rs.getInt("permission") == 1) {//数据库中没有该用户注册信息
return true;
}
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return false;
}
@Override
public boolean insertBookUser(BookUser bookuser) {//用户注册 成功返回true,失败返回false
String sql = "insert into BookUser(username,passwords,permission) values(?,?,?) ";
int permission = 2;
try {
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement(sql);
psmt.setString(1, bookuser.getUsername());
psmt.setString(2, bookuser.getPasswords());
psmt.setInt(3, permission);
psmt.execute();
return true;
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return false;
}
@Override
public List<BookUser> getAllBookUser() {//查询所有用户信息
List<BookUser> bookusers = new ArrayList<BookUser>();
try {
conn = DatabaseBean.getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from BookUser");
while (rs.next()) {
BookUser bookuser = new BookUser();
bookuser.setUsername(rs.getString("username"));
bookuser.setPasswords(rs.getString("passwords"));
bookuser.setPermission(rs.getInt("permission"));
bookusers.add(bookuser);
}
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, stmt, conn);
}
return bookusers;
}
public List<BookUser> getAllBookUsers(Pagination pagination) {//分页显示所有用户信息
List<BookUser> bookusers = new ArrayList<BookUser>();
try {
conn = DatabaseBean.getConnection();
String sql = "select count(*) as counts from BookUser";
psmt = conn.prepareStatement(sql);
rs = psmt.executeQuery();
rs.next();
pagination.setCountSize(rs.getInt("counts"));
//求指定显示的记录数
int start = (pagination.getCurrPage() - 1) * pagination.getPageSize() + 1;
int end = pagination.getCurrPage() * pagination.getPageSize();
//小于等于该页最大条数,大于等于该页最小条数
sql = "SELECT * FROM(SELECT ROWNUM NO,s.* FROM "
+ "(SELECT * FROM BookUser ORDER BY username ASC) s "
+ "WHERE ROWNUM<=?) WHERE NO >=?";
psmt = conn.prepareStatement(sql);
psmt.setInt(1, end);
psmt.setInt(2, start);
rs = psmt.executeQuery();
while (rs.next()) {
BookUser bookuser = new BookUser();
bookuser.setUsername(rs.getString("username"));
bookuser.setPasswords(rs.getString("passwords"));
bookuser.setPermission(rs.getInt("permission"));
bookusers.add(bookuser);
}
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return bookusers;
}
public List<BookUser> getAllBookUser(String username, Pagination pagination) {//模糊查询用户信息
List<BookUser> bookusers = new ArrayList<BookUser>();
try {
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement("select count(*) as counts from bookuser where username like ?");
psmt.setString(1, "%" + username + "%");
rs = psmt.executeQuery();
rs.next();
pagination.setCountSize(rs.getInt("counts"));
int start = (pagination.getCurrPage() - 1) * pagination.getPageSize() + 1;
int end = pagination.getCurrPage() * pagination.getPageSize();
psmt = conn.prepareStatement("SELECT * FROM(SELECT ROWNUM NO,s.* FROM "
+ "(SELECT * FROM bookuser where username like ? ORDER BY username ASC) s "
+ "WHERE ROWNUM<=?) WHERE NO >=?");
psmt.setString(1, "%" + username + "%");
psmt.setInt(2, end);
psmt.setInt(3, start);
rs = psmt.executeQuery();
while (rs.next()) {
BookUser bookuser = new BookUser();
bookuser.setUsername(rs.getString("username"));
bookuser.setPasswords(rs.getString("passwords"));
bookuser.setPermission(rs.getInt("permission"));
bookusers.add(bookuser);
}
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return bookusers;
}
@Override
public BookUser getBookUser(String username) {//根据用户名查询具体用户信息
BookUser bookuser = new BookUser();
try {
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement("select * from BookUser where username=?");
psmt.setString(1, username);
rs = psmt.executeQuery();
while (rs.next()) {
bookuser.setUsername(rs.getString("username"));
bookuser.setPasswords(rs.getString("passwords"));
bookuser.setPermission(rs.getInt("permission"));
}
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return bookuser;
}
@Override
public boolean updateBookUser(BookUser bookuser) {//修改用户信息,成功返回true,失败返回1false
String sql = "update bookuser set passwords=? where username=?";
try {
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement(sql);
psmt.setString(1, bookuser.getPasswords());
psmt.setString(2, bookuser.getUsername());
psmt.executeUpdate();
return true;
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return false;
}
@Override
public boolean deleteBookUser(String username) {//删除用户 成功:true 失败:false
try {
String sql = "delete from bookuser where username=? ";
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement(sql);
psmt.setString(1, username);
psmt.executeUpdate();
return true;
} catch (SQLException ex) {
ex.printStackTrace();
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return false;
}
@Override
public List<UB> getAllUB() {//查询所有借阅图书信息
List<UB> ubs = new ArrayList<UB>();
try {
conn = DatabaseBean.getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from ub");
while (rs.next()) {
UB ub = new UB();
ub.setUsername(rs.getString("username"));
ub.setBno(rs.getString("bno"));
ub.setBname(rs.getString("bname"));
ub.setLendTime(rs.getTimestamp("lendtime").toString());//日期
ubs.add(ub);
}
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, stmt, conn);
}
return ubs;
}
public List<UB> getAllUBs(Pagination pagination) {//分页显示所有图书借阅信息
List<UB> ubs = new ArrayList<UB>();
try {
conn = DatabaseBean.getConnection();
String sql = "select count(*) as counts from UB";
psmt = conn.prepareStatement(sql);
rs = psmt.executeQuery();
rs.next();
pagination.setCountSize(rs.getInt("counts"));
//求指定显示的记录数
int start = (pagination.getCurrPage() - 1) * pagination.getPageSize() + 1;
int end = pagination.getCurrPage() * pagination.getPageSize();
//小于等于该页最大条数,大于等于该页最小条数
sql = "SELECT * FROM(SELECT ROWNUM NO,s.* FROM "
+ "(SELECT * FROM UB ORDER BY username ASC) s "
+ "WHERE ROWNUM<=?) WHERE NO >=?";
psmt = conn.prepareStatement(sql);
psmt.setInt(1, end);
psmt.setInt(2, start);
rs = psmt.executeQuery();
while (rs.next()) {
UB ub = new UB();
ub.setUsername(rs.getString("username"));
ub.setBno(rs.getString("bno"));
ub.setBname(rs.getString("bname"));
ub.setLendTime(rs.getTimestamp("lendtime").toString());//日期
ubs.add(ub);
}
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return ubs;
}
public List<UB> getAllUB(String username, Pagination pagination) {//模糊查询图书借阅信息
List<UB> ubs = new ArrayList<UB>();
try {
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement("select count(*) as counts from ub where username like ?");
psmt.setString(1, "%" + username + "%");
rs = psmt.executeQuery();
rs.next();
pagination.setCountSize(rs.getInt("counts"));
int start = (pagination.getCurrPage() - 1) * pagination.getPageSize() + 1;
int end = pagination.getCurrPage() * pagination.getPageSize();
psmt = conn.prepareStatement("SELECT * FROM(SELECT ROWNUM NO,s.* FROM "
+ "(SELECT * FROM ub where username like ? ORDER BY username ASC) s "
+ "WHERE ROWNUM<=?) WHERE NO >=?");
psmt.setString(1, "%" + username + "%");
psmt.setInt(2, end);
psmt.setInt(3, start);
rs = psmt.executeQuery();
while (rs.next()) {
UB ub = new UB();
ub.setUsername(rs.getString("username"));
ub.setBno(rs.getString("bno"));
ub.setBname(rs.getString("bname"));
ub.setLendTime(rs.getTimestamp("lendtime").toString());//日期
ubs.add(ub);
}
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return ubs;
}
@Override
public UB getUB(String username) {//根据用户名查询借阅信息
UB ub = new UB();
try {
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement("select * from ub where username=?");
psmt.setString(1, username);
rs = psmt.executeQuery();
while (rs.next()) {
ub.setUsername(rs.getString("username"));
ub.setBno(rs.getString("bno"));
ub.setBname(rs.getString("bname"));
ub.setLendTime(rs.getTimestamp("lendtime").toString());//日期
}
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return ub;
}
@Override
public boolean updateUB(UB ub) {//修改用户借阅信息 成功返回true,失败返回false
String sql = "update ub set bname=?,lendtime=(to_date(?,'yyyy-mm-dd')) where username=? and bno=?";
try {
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement(sql);
psmt.setString(1, ub.getBname());
psmt.setString(2, ub.getLendTime());
psmt.setString(3, ub.getUsername());
psmt.setString(4, ub.getBno());
psmt.executeUpdate();
return true;
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return false;
}
@Override
public boolean deleteUB(String username, String bno) {//删除图书借阅记录 成功返回true,失败返回false
try {
String sql = "delete from ub where username=? and bno=?";
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement(sql);
psmt.setString(1, username);
psmt.setString(2, bno);
psmt.executeUpdate();
return true;
} catch (SQLException ex) {
ex.printStackTrace();
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return false;
}
@Override
public boolean findUB(UB ub) {//检测借阅记录是否存在 存在:true 不存在:false
try {
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement("select * from ub where username=? and bno=?");//检查数据库中是否存在该用户
psmt.setString(1, ub.getUsername());
psmt.setString(2, ub.getBno());
rs = psmt.executeQuery();
if (rs.next()) {//数据库中有该借阅信息
return true;
}
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return false;
}
@Override
public boolean insertUB(UB ub) {//添加借阅信息 成功:true 失败:false
String sql = "insert into ub(username,Bno,Bname,LendTime) values(?,?,?,to_date(?,'yyyy-mm-dd'))";
try {
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement(sql);
psmt.setString(1, ub.getUsername());
psmt.setString(2, ub.getBno());
psmt.setString(3, ub.getBname());
psmt.setString(4, ub.getLendTime());
psmt.executeUpdate();
return true;
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return false;
}
@Override
public boolean isLends(String bno, String username) { //满足true 不满足false
try {
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement("select username from UB where bno=? ");
psmt.setString(1, bno);
rs = psmt.executeQuery();
while (rs.next()) {
String name = rs.getString("username");
if (name.equals(username)) { //已经有用户了
return false;
}
}
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return true;
}
@Override
public boolean findBookUser(String userame) {
try {
conn = DatabaseBean.getConnection();
psmt = conn.prepareStatement("select * from bookUser where username=? ");//检查数据库中是否存在该用户
psmt.setString(1, userame);
rs = psmt.executeQuery();
while (rs.next()) {
if (rs != null) { //有用户
return true;
} else { //没有
return false;
}
}
} catch (SQLException ex) {
Logger.getLogger(BookDaoImpl.class.getName()).log(Level.SEVERE, null, ex);
} finally {
DatabaseBean.close(rs, psmt, conn);
}
return false;
}
}
package com.book.model;
public class Book {
private String Bno;/*书号*/
private String Bname;/*书名*/
private String Bauthor;/*作者*/
private int Bnum;/*数量*/
public Book() {
}
public Book(String Bno, String Bname, String Bauthor, int Bnum) {
this.Bno = Bno;
this.Bname = Bname;
this.Bauthor = Bauthor;
this.Bnum = Bnum;
}
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 getBauthor() {
return Bauthor;
}
public void setBauthor(String Bauthor) {
this.Bauthor = Bauthor;
}
public int getBnum() {
return Bnum;
}
public void setBnum(int Bnum) {
this.Bnum = Bnum;
}
}
package com.book.model;
public class BookUser {
String username;/*用户名*/
String passwords;/*密码*/
int permission;/*区分管理员与用户 1:管理员 2:用户*/
public BookUser() {
}
public BookUser(String username, String passwords) {
this.username = username;
this.passwords = passwords;
}
public BookUser(String username, String passwords, int permission) {
this.username = username;
this.passwords = passwords;
this.permission = permission;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPasswords() {
return passwords;
}
public void setPasswords(String passwords) {
this.passwords = passwords;
}
public int getPermission() {
return permission;
}
public void setPermission(int permission) {
this.permission = permission;
}
@Override
public String toString() {
return "BookUser{" + "username=" + username + ", passwords=" + passwords + ", permission=" + permission + '}';
}
}
package com.book.model;
public class UB {
String username;/*用户名*/
String Bno;/*书的编号*/
String Bname;/*书名*/
String LendTime;/*借书时间*/
public UB() {
}
public UB(String username, String Bno) {
this.username = username;
this.Bno = Bno;
}
public UB(String username, String Bno, String Bname, String LendTime) {
this.username = username;
this.Bno = Bno;
this.Bname = Bname;
this.LendTime = LendTime;
}
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 getLendTime() {
return LendTime;
}
public void setLendTime(String LendTime) {
this.LendTime = LendTime;
}
}
package com.book.until;
import com.book.dao.ISBookDao;
import com.book.impl.BookDaoImpl;
public class DaoFactory {
public static ISBookDao getBookDao() {
return new BookDaoImpl();
}
}
package com.book.until;
import java.sql.*;
import oracle.jdbc.pool.OracleDataSource;
public class DatabaseBean {
public static Connection getConnection() throws SQLException {
String jdbcUrl = "jdbc:oracle:thin:@localhost:1521/xe";
String userid = "hr";
String password = "oracle";
OracleDataSource ds = new OracleDataSource();
ds.setURL(jdbcUrl);
return ds.getConnection(userid, password);
}
public static void close(ResultSet rs, Statement st, Connection conn) {
try {
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
public static void close(ResultSet rs, PreparedStatement psmt, Connection conn) {
try {
if (rs != null) {
rs.close();
}
if (psmt != null) {
psmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
package com.book.until;
public class Pagination {
//当前页码
private int currPage = 1;
//总页数
private int countPage = 0;
//每页显示记录数
private int pageSize = 10;
//总记录条数
private int countSize = 0;
private String pageBar;
private String numPageBar;
private String url;
public int getCurrPage() {
return currPage;
}
public void setCurrPage(int currPage) {
this.currPage = currPage;
}
public int getCountPage() {
if (countSize != 0) {
if (countSize % pageSize != 0) {
countPage = countSize / pageSize + 1;
} else {
countPage = countSize / pageSize;
}
}
return countPage;
}
public void setCountPage(int countPage) {
this.countPage = countPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getCountSize() {
return countSize;
}
public void setCountSize(int countSize) {
this.countSize = countSize;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getPageBar() {
countPage = getCountPage();
if (countPage != 0) {
//判断当前页号的合法性
if (currPage < 1) {
currPage = 1;
}
if (currPage > countPage) {
currPage = countPage;
}
StringBuilder sb = new StringBuilder();
sb.append("每页:").append(pageSize).append(" 页次:").append(currPage).
append("/").append(countPage).append(" 总计:").append(countSize).
append(" ");
sb.append("<ul class=\"pagination pagination-small border-main\">");
if (currPage == 1) {
sb.append("<li class=\"disabled\"><a href=\"#\">首页</a> </li>");
sb.append("<li class=\"disabled\"><a href=\"#\">上页</a> </li>");
} else {
sb.append("<li><a href=\"").append(url).append("&currPage=").append("1\">首页</a> </li>");
sb.append("<li><a href=\"").append(url).append("&currPage=").append(currPage - 1).append("\">上页</a> </li>");
}
if (currPage == countPage) {
sb.append("<li class=\"disabled\"><a href=\"#\">下页</a> </li>");
sb.append("<li class=\"disabled\"><a href=\"#\">尾页</a> </li>");
} else {
sb.append("<li><a href=\"").append(url).append("&currPage=").append(currPage + 1).append("\">下页</a> </li>");
sb.append("<li><a href=\"").append(url).append("&currPage=").append(countPage).append("\">尾页</a> </li>");
}
sb.append("</ul>");
pageBar = sb.toString();
} else {
pageBar = "";
}
return pageBar;
}
public String getNumPageBar() {
countPage = getCountPage();
if (countPage != 0) {
//判断当前页号的合法性
if (currPage < 1) {
currPage = 1;
}
if (currPage > countPage) {
currPage = countPage;
}
StringBuilder sb = new StringBuilder();
//计算当前页所在的组
int group = currPage / 5 + (currPage % 5 == 0 ? 0 : 1);
int start = (group - 1) * 5 + 1;
int end = start + 4;
System.out.println("group:" + group + ";start:" + start + ";end:" + end);
if (end > countPage) {
end = countPage;
}
sb.append("<ul class=\"pagination pagination-small border-main\">");
if (start > 1) {
sb.append("<li><a href=\"").append(url).append("&currPage=").
append(start - 1).append("\"><</a></li>");
}
for (int i = start; i <= end; i++) {
if (currPage != i) {
sb.append("<li><a href=\"").append(url).append("&currPage=").append(i).
append("\">").append(i).append("</a></li>");
} else {
sb.append("<li class=\"active\"><a href=\"#\">").append(i).append("</a></li>");
}
}
if (end < countPage) {
sb.append("<li><a href=\"").append(url).append("&currPage=").append(end + 1).append("\">></a></li>");
}
sb.append("</ul>");
numPageBar = sb.toString();
} else {
numPageBar = "";
}
return numPageBar;
}
}
package com.book.until;
public class Tools {
public static String user;
}
控制层使用servlet实现:系统中所有Servlet如下:
代码如下:
package com.UB.dao;
import com.book.model.BookUser;
import com.book.model.UB;
import com.book.until.DaoFactory;
import com.book.until.Pagination;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name = "SelectAllUB", urlPatterns = {"/SelectAllUB"})
public class SelectAllUB extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
int page = 1;
Pagination pagination = new Pagination();
String username = request.getParameter("username");
String currPage = request.getParameter("currPage");
if (currPage != null) {
page = Integer.parseInt(currPage);
}
pagination.setCurrPage(page);
List<UB> ubs;
if (username != null && !"".equals(username)) {
pagination.setUrl("SelectAllUB?username=" + username);
ubs = DaoFactory.getBookDao().getAllUB(username, pagination);
} else {
pagination.setUrl("SelectAllUB?");
ubs =DaoFactory.getBookDao().getAllUBs(pagination);
}
request.setAttribute("ubs", ubs);
request.setAttribute("pagination", pagination);
System.out.println("开始显示程序");
request.getRequestDispatcher("selectAllUB.jsp").forward(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
package com.book.servlet;
import com.book.until.DaoFactory;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name = "BookDelete", urlPatterns = {"/BookDelete"})
public class BookDelete extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
String bno = request.getParameter("bno");
System.out.println(bno);
if(DaoFactory.getBookDao().deleteBook(bno)){
response.sendRedirect(request.getContextPath() + "/BookDisplay");
}else{
System.out.println("失败");
request.setAttribute("insertErr", "删除信息失败,请检查原因!");
request.getRequestDispatcher("First.jsp").forward(request, response);
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
package com.book.servlet;
import com.book.model.Book;
import com.book.until.DaoFactory;
import com.book.until.Pagination;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name = "BookDisplay", urlPatterns = {"/BookDisplay"})
public class BookDisplay extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
int page = 1;
Pagination pagination = new Pagination();
String bno = request.getParameter("bno");
String currPage = request.getParameter("currPage");
if (currPage != null) {
page = Integer.parseInt(currPage);
}
pagination.setCurrPage(page);
List<Book> books;
if (bno != null && !"".equals(bno)) {
pagination.setUrl("BookDisplay?bno=" + bno);
books = DaoFactory.getBookDao().getAllBooks(bno, pagination);
} else {
pagination.setUrl("BookDisplay?");
books = DaoFactory.getBookDao().getAllBooks(pagination);
}
request.setAttribute("books", books);
request.setAttribute("pagination", pagination);
System.out.println("开始显示程序");
request.getRequestDispatcher("First.jsp").forward(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
package com.book.servlet;
import com.book.model.Book;
import com.book.model.BookUser;
import com.book.until.DaoFactory;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name = "InsertBook", urlPatterns = {"/InsertBook"})
public class InsertBook extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
String bno = request.getParameter("bno");
String bname = request.getParameter("bname");
String bauthor = request.getParameter("bauthor");
String bnum = request.getParameter("bnum");
Book book = new Book(bno, bname, bauthor, Integer.parseInt(bnum));
System.out.println("图书编号"+bno);
System.out.println("图书名称"+bname);
System.out.println("发现用户:"+DaoFactory.getBookDao().findBook(bno));
if(!DaoFactory.getBookDao().findBook(bno)){
DaoFactory.getBookDao().insertBook(book);
response.sendRedirect(request.getContextPath() + "/BookDisplay");
}else {
String string = "书库中已经有该图书!!!";
request.setAttribute("string", string);
request.getRequestDispatcher("insertBook.jsp").forward(request, response);
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
package com.book.servlet;
import com.book.model.UB;
import com.book.until.DaoFactory;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
@WebServlet(name = "LendBook", urlPatterns = {"/LendBook"})
public class LendBook extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
String bno = request.getParameter("bno");
String bname = request.getParameter("bname");
// System.out.println(bno);
// System.out.println(bname);
Date date = new Date();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String time = dateFormat.format(date);
// System.out.println("当前时间为:"+time);
if (DaoFactory.getBookDao().isLend(bno) ) {
request.setAttribute("bno", bno);
request.setAttribute("bname", bname);
request.setAttribute("time", time);
request.getRequestDispatcher("lendBook.jsp").forward(request, response);
} else {
String string = "该图书不可借";
request.setAttribute("bno", bno);
request.setAttribute("bname", bname);
request.setAttribute("string", string);
request.setAttribute("time", time);
request.getRequestDispatcher("lendBook.jsp").forward(request, response);
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.book.servlet;
import com.book.model.Book;
import com.book.model.UB;
import com.book.until.DaoFactory;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author 25371
*/
@WebServlet(name = "LendBookDo", urlPatterns = {"/LendBookDo"})
public class LendBookDo extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
String username = request.getParameter("username");
String bno = request.getParameter("bno");
String bname = request.getParameter("bname");
String time = request.getParameter("time");
System.out.println("当前的用户为:"+username);
UB ub = new UB();
ub.setBname(bname);
ub.setBno(bno);
ub.setLendTime(time);
ub.setUsername(username);
/* 没有UB用户 && */
System.out.println("发现一条记录:"+DaoFactory.getBookDao().isLends(bno,username));
System.out.println("发现一条用户:"+DaoFactory.getBookDao().findBookUser(username) );
System.out.println("username!=null:"+ (username!=null) );
System.out.println("!(\"\".equals(username)):"+ (!("".equals(username))) );
if(DaoFactory.getBookDao().isLends(bno,username) && DaoFactory.getBookDao().findBookUser(username) && username!=null && !("".equals(username))){
System.out.println("进入");
DaoFactory.getBookDao().insertUB(ub);
System.out.println("插入数据");
DaoFactory.getBookDao().lendBook(bno);
System.out.println("借书");
response.sendRedirect(request.getContextPath() + "/BookDisplay");
}else {
String string = "用户名错误";
request.setAttribute("bno", bno);
request.setAttribute("bname", bname);
request.setAttribute("string", string);
request.setAttribute("time", time);
request.getRequestDispatcher("lendBook.jsp").forward(request, response);
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.book.servlet;
import com.book.model.UB;
import com.book.until.DaoFactory;
import static com.book.until.Tools.user;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author 25371
*/
@WebServlet(name = "LendBookDoTwo", urlPatterns = {"/LendBookDoTwo"})
public class LendBookDoTwo extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
String bno = request.getParameter("bno");
String bname = request.getParameter("bname");
String time = request.getParameter("time");
System.out.println("当前的用户为:"+user);
UB ub = new UB();
ub.setBname(bname);
ub.setBno(bno);
ub.setLendTime(time);
ub.setUsername(user);
System.out.println("user:"+user);
/* 没有UB用户 && */
System.out.println("发现一条记录:"+DaoFactory.getBookDao().isLends(bno,user));
System.out.println("发现一条用户:"+DaoFactory.getBookDao().findBookUser(user) );
if(DaoFactory.getBookDao().isLends(bno,user)){
System.out.println("进入");
DaoFactory.getBookDao().insertUB(ub);
System.out.println("插入数据");
DaoFactory.getBookDao().lendBook(bno);
System.out.println("借书");
response.sendRedirect(request.getContextPath() + "/SelectUserAllBook");
}else {
String string = "已经借有该图书";
request.setAttribute("bno", bno);
request.setAttribute("bname", bname);
request.setAttribute("string", string);
request.setAttribute("time", time);
request.getRequestDispatcher("lendBookTwo.jsp").forward(request, response);
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.book.servlet;
import com.book.model.UB;
import com.book.until.DaoFactory;
import static com.book.until.Tools.user;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author 25371
*/
@WebServlet(name = "LendBookTwo", urlPatterns = {"/LendBookTwo"})
public class LendBookTwo extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
String bno = request.getParameter("bno");
String bname = request.getParameter("bname");
// System.out.println(bno);
// System.out.println(bname);
Date date = new Date();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String time = dateFormat.format(date);
System.out.println("图书是否可借:"+DaoFactory.getBookDao().isLend(bno));
if (DaoFactory.getBookDao().isLend(bno) && DaoFactory.getBookDao().isLends(bno,user)) {
request.setAttribute("bno", bno);
request.setAttribute("bname", bname);
request.setAttribute("time", time);
request.getRequestDispatcher("lendBookTwo.jsp").forward(request, response);
} else {
String string = "该图书不可借";
request.setAttribute("bno", bno);
request.setAttribute("bname", bname);
request.setAttribute("string", string);
request.setAttribute("time", time);
request.getRequestDispatcher("lendBookTwo.jsp").forward(request, response);
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.book.servlet;
import com.book.until.DaoFactory;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author 25371
*/
@WebServlet(name = "ReturnBook", urlPatterns = {"/ReturnBook"})
public class ReturnBook extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
String bno = request.getParameter("bno");
String bname = request.getParameter("bname");
// System.out.println(bno);
// System.out.println(bname);
Date date = new Date();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String time = dateFormat.format(date);
// System.out.println("当前时间为:"+time);
request.setAttribute("bno", bno);
request.setAttribute("bname", bname);
request.setAttribute("time", time);
request.getRequestDispatcher("returnBook.jsp").forward(request, response);
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.book.servlet;
import com.book.model.UB;
import com.book.until.DaoFactory;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author 25371
*/
@WebServlet(name = "ReturnBookDo", urlPatterns = {"/ReturnBookDo"})
public class ReturnBookDo extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
String username = request.getParameter("username");
String bno = request.getParameter("bno");
String bname = request.getParameter("bname");
String time = request.getParameter("time");
System.out.println("当前的用户为:"+username);
UB ub = new UB();
ub.setBname(bname);
ub.setBno(bno);
ub.setLendTime(time);
ub.setUsername(username);
if(DaoFactory.getBookDao().findUB(ub) && username!=null && !"".equals(username) ){
DaoFactory.getBookDao().deleteUB(username,bno);
DaoFactory.getBookDao().returnBook(bno);
response.sendRedirect(request.getContextPath() + "/BookDisplay");
}else {
String string = "用户名错误";
request.setAttribute("bno", bno);
request.setAttribute("bname", bname);
request.setAttribute("string", string);
request.setAttribute("time", time);
request.getRequestDispatcher("returnBook.jsp").forward(request, response);
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.book.servlet;
import static com.book.until.Tools.user;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author 25371
*/
@WebServlet(name = "ReturnBookTwo", urlPatterns = {"/ReturnBookTwo"})
public class ReturnBookTwo extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
String bno = request.getParameter("bno");
String bname = request.getParameter("bname");
// System.out.println(bno);
// System.out.println(bname);
Date date = new Date();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String time = dateFormat.format(date);
// System.out.println("当前时间为:"+time);
request.setAttribute("bno", bno);
request.setAttribute("bname", bname);
request.setAttribute("time", time);
request.setAttribute("user", user);
request.getRequestDispatcher("returnBookTwo.jsp").forward(request, response);
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.book.servlet;
import com.book.model.UB;
import com.book.until.DaoFactory;
import com.book.until.Tools;
import static com.book.until.Tools.user;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author 25371
*/
@WebServlet(name = "ReturnBookTwoDo", urlPatterns = {"/ReturnBookTwoDo"})
public class ReturnBookTwoDo extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
String bno = request.getParameter("bno");
String bname = request.getParameter("bname");
String time = request.getParameter("time");
UB ub = new UB();
ub.setBname(bname);
ub.setBno(bno);
ub.setLendTime(time);
ub.setUsername(user);
DaoFactory.getBookDao().deleteUB(user, bno);
DaoFactory.getBookDao().returnBook(bno);
response.sendRedirect(request.getContextPath() + "/SelectUserAllBook");
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.book.servlet;
import com.book.model.UB;
import com.book.until.DaoFactory;
import com.book.until.Pagination;
import static com.book.until.Tools.user;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author 25371
*/
@WebServlet(name = "SelectOurBookTwo", urlPatterns = {"/SelectOurBookTwo"})
public class SelectOurBookTwo extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
int page = 1;
Pagination pagination = new Pagination();
String currPage = request.getParameter("currPage");
if (currPage != null) {
page = Integer.parseInt(currPage);
}
pagination.setCurrPage(page);
List<UB> ubs;
pagination.setUrl("BookDisplay?");
ubs =DaoFactory.getBookDao().getAllUB(user,pagination);
request.setAttribute("ubs", ubs);
request.setAttribute("pagination", pagination);
System.out.println("开始显示程序");
request.getRequestDispatcher("selectOursBookTwo.jsp").forward(request, response);
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.book.servlet;
import com.book.model.Book;
import com.book.model.UB;
import com.book.until.DaoFactory;
import com.book.until.Pagination;
import com.book.until.Tools;
import static com.book.until.Tools.user;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author 25371
*/
@WebServlet(name = "SelectOursBook", urlPatterns = {"/SelectOursBook"})
public class SelectOursBook extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
int page = 1;
Pagination pagination = new Pagination();
String currPage = request.getParameter("currPage");
if (currPage != null) {
page = Integer.parseInt(currPage);
}
pagination.setCurrPage(page);
List<UB> ubs;
pagination.setUrl("BookDisplay?");
ubs =DaoFactory.getBookDao().getAllUB(user,pagination);
request.setAttribute("ubs", ubs);
request.setAttribute("pagination", pagination);
System.out.println("开始显示程序");
request.getRequestDispatcher("selectOursBook.jsp").forward(request, response);
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.book.servlet;
import com.book.model.Book;
import com.book.until.DaoFactory;
import com.book.until.Pagination;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author 25371
*/
@WebServlet(name = "SelectUserAllBook", urlPatterns = {"/SelectUserAllBook"})
public class SelectUserAllBook extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
int page = 1;
Pagination pagination = new Pagination();
// String bno = request.getParameter("bno");
String currPage = request.getParameter("currPage");
if (currPage != null) {
page = Integer.parseInt(currPage);
}
pagination.setCurrPage(page);
List<Book> books;
/* if (bno != null && "".equals(bno)) {
pagination.setUrl("SelectUserAllBook?" + bno);
books = DaoFactory.getBookDao().getAllBooks(bno, pagination);
} else {*/
pagination.setUrl("SelectUserAllBook?");
books = DaoFactory.getBookDao().getAllBooks(pagination);
// }
request.setAttribute("books", books);
request.setAttribute("pagination", pagination);
System.out.println("开始显示程序");
request.getRequestDispatcher("userFirst.jsp").forward(request, response);
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.bookUser.servlet;
import com.book.model.BookUser;
import com.book.until.DaoFactory;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author 25371
*/
@WebServlet(name = "InsertUser", urlPatterns = {"/InsertUser"})
public class InsertUser extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
String username = request.getParameter("username");
String passwords = request.getParameter("passwords");
BookUser bookUser = new BookUser();
bookUser.setPasswords(passwords);
bookUser.setUsername(username);
bookUser.setPermission(2);
System.out.println("用户名"+username);
System.out.println("密码"+passwords);
System.out.println("发现用户:"+DaoFactory.getBookDao().findBookUser(bookUser));
System.out.println("发现账号:"+DaoFactory.getBookDao().findBookUser(username));
if(!DaoFactory.getBookDao().findBookUser(bookUser) && !DaoFactory.getBookDao().findBookUser(username)){
DaoFactory.getBookDao().insertBookUser(bookUser);
response.sendRedirect(request.getContextPath() + "/SelectAllUser");
}else {
String string = "该用户已经被注册!!!";
request.setAttribute("string", string);
request.getRequestDispatcher("insertUser.jsp").forward(request, response);
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.bookUser.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.book.model.BookUser;
import com.book.until.DaoFactory;
import java.sql.SQLException;
import com.book.until.Tools;
import static com.book.until.Tools.user;
/**
*
* @author 25371
*/
@WebServlet(name = "Login", urlPatterns = {"/Login"})
public class Login extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
String inputUser = request.getParameter("inputUser");
String inputPass = request.getParameter("inputPass");
BookUser bookUser = new BookUser();
bookUser.setUsername(inputUser);
bookUser.setPasswords(inputPass);
System.out.println(inputUser);
System.out.println(inputPass);
if (DaoFactory.getBookDao().findBookUser(bookUser)) { //数据库中是否有该用户
if (DaoFactory.getBookDao().isAdmin(bookUser)) { //进入管理员界面(该用户为管理员)
System.out.println("管理员" + DaoFactory.getBookDao().isAdmin(bookUser));
response.sendRedirect(request.getContextPath() + "/BookDisplay");
} else { //进入普通用户界面(该用户为普通用户)
System.out.println("普通用户" + DaoFactory.getBookDao().isAdmin(bookUser));
response.sendRedirect(request.getContextPath() + "/SelectUserAllBook");
}
user = inputUser;
}else{
String string = "用户不存在或者密码错误";
request.setAttribute("string", string);
request.getRequestDispatcher("login.jsp").forward(request, response);
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.bookUser.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author 25371
*/
@WebServlet(name = "LoginShow", urlPatterns = {"/LoginShow"})
public class LoginShow extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
response.sendRedirect(request.getContextPath() + "/login.jsp");
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.bookUser.servlet;
import com.book.model.BookUser;
import com.book.until.DaoFactory;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author 25371
*/
@WebServlet(name = "RegisteredUser", urlPatterns = {"/RegisteredUser"})
public class RegisteredUser extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
String inputUser = request.getParameter("inputUser");
String inputPass = request.getParameter("inputPass");
BookUser bookUser = new BookUser();
bookUser.setUsername(inputUser);
bookUser.setPasswords(inputPass);
bookUser.setPermission(2);
System.out.println("发现用户:"+DaoFactory.getBookDao().findBookUser(bookUser));
System.out.println("发现账号:"+DaoFactory.getBookDao().findBookUser(inputUser));
if(!DaoFactory.getBookDao().findBookUser(bookUser) && !DaoFactory.getBookDao().findBookUser(inputUser)){
DaoFactory.getBookDao().insertBookUser(bookUser);
response.sendRedirect(request.getContextPath() + "/login.jsp");
}else{
String string = "该用户已经被注册!!!";
request.setAttribute("string", string);
request.getRequestDispatcher("registered.jsp").forward(request, response);
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.bookUser.servlet;
import com.book.model.Book;
import com.book.model.BookUser;
import com.book.until.DaoFactory;
import com.book.until.Pagination;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author 25371
*/
@WebServlet(name = "SelectAllUser", urlPatterns = {"/SelectAllUser"})
public class SelectAllUser extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
int page = 1;
Pagination pagination = new Pagination();
String username = request.getParameter("username");
String currPage = request.getParameter("currPage");
if (currPage != null) {
page = Integer.parseInt(currPage);
}
pagination.setCurrPage(page);
List<BookUser> bookUsers;
if (username != null && !"".equals(username)) {
pagination.setUrl("SelectAllUser?username=" + username);
bookUsers = DaoFactory.getBookDao().getAllBookUser(username, pagination);
} else {
pagination.setUrl("SelectAllUser?");
bookUsers =DaoFactory.getBookDao().getAllBookUsers(pagination);
}
request.setAttribute("bookUsers", bookUsers);
request.setAttribute("pagination", pagination);
System.out.println("开始显示程序");
request.getRequestDispatcher("selectAllUser.jsp").forward(request, response);
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.bookUser.servlet;
import com.book.model.BookUser;
import com.book.until.DaoFactory;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author 25371
*/
@WebServlet(name = "UpdatePassword", urlPatterns = {"/UpdatePassword"})
public class UpdatePassword extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
String username = request.getParameter("username");
String passwords = request.getParameter("passwords");
BookUser bookUser = new BookUser(username, passwords);
DaoFactory.getBookDao().updateBookUser(bookUser);
response.sendRedirect(request.getContextPath() + "/BookDisplay");
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.bookUser.servlet;
import static com.book.until.Tools.user;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author 25371
*/
@WebServlet(name = "UpdateUser", urlPatterns = {"/UpdateUser"})
public class UpdateUser extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
request.setAttribute("user", user);
request.getRequestDispatcher("updatePassword.jsp").forward(request, response);
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.bookUser.servlet;
import com.book.model.BookUser;
import com.book.until.DaoFactory;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author 25371
*/
@WebServlet(name = "UpdateUserPass", urlPatterns = {"/UpdateUserPass"})
public class UpdateUserPass extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
String username = request.getParameter("username");
String passwords = request.getParameter("passwords");
BookUser bookUser = new BookUser(username, passwords);
DaoFactory.getBookDao().updateBookUser(bookUser);
response.sendRedirect(request.getContextPath() + "/SelectUserAllBook");
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.bookUser.servlet;
import static com.book.until.Tools.user;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author 25371
*/
@WebServlet(name = "UpdateUserPassDo", urlPatterns = {"/UpdateUserPassDo"})
public class UpdateUserPassDo extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
request.setAttribute("user", user);
request.getRequestDispatcher("updateUserPass.jsp").forward(request, response);
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
表示层使用jsp实现,具体jsp如下:
由于篇幅有限,表示层代码请参阅下一篇文章:表示层的实现
完整项目下载(包含所有所需要的架包,框架文件。项目可以直接运行):数据库系统实现课设:图书管理系统源代码下载