资源描述
内蒙古工业大学信息工程学院
设计一个通用的基于浏览器/服务器的简单图书馆管理系统,实现用户的注册和登陆,以及图书的查询与借阅。
1、 实验要求
1) 利用JavaBean进行数据传递
2) 用户的基本信息采用数据库存放
3) 使用Sevlet进行数据验证
八、程序清单
Admin类 //管理员
package library.info;
public class Admin {
private String username;
private String userkey;
public Admin(){
username=null;
userkey=null;
}
public Admin(String username,String userkey){
this.username=username;
this.userkey=userkey;
}
public void setUsername(String username) {
this.username = username;
}
public String getUsername() {
return username;
}
public void setUserkey(String userkey) {
this.userkey = userkey;
}
public String getUserkey() {
return userkey;
}
public boolean equals(Object a){
if(a==null)return false;
if(!(a instanceof Admin))return false;
Admin temp=(Admin)a;
if((username.equals(temp.username))&&(userkey.equals(temp.userkey)))return true;
else return false;
}
}
Book类 //图书
package library.info;
public class Book {
private String number;
private String name;
private String author;
private String chubanshe;
private String jiage;
private String shuliang;
public Book(){
number=null;
name=null;
author=null;
chubanshe=null;
jiage=null;
shuliang=null;
}
public Book(String number,String name,String author,String chubanshe,String jiage,String shuliang){
this.number=number;
this.name=name;
this.author=author;
this.chubanshe=chubanshe;
this.jiage=jiage;
this.shuliang=shuliang;
}
public void setNumber(String number) {
this.number = number;
}
public String getNumber() {
return number;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAuthor(String author) {
this.author = author;
}
public String getAuthor() {
return author;
}
public void setChubanshe(String chubanshe) {
this.chubanshe = chubanshe;
}
public String getChubanshe() {
return chubanshe;
}
public void setJiage(String jiage) {
this.jiage = jiage;
}
public String getJiage() {
return jiage;
}
public void setShuliang(String shuliang) {
this.shuliang = shuliang;
}
public String getShuliang() {
return shuliang;
}
}
userlogin.jsp //登陆界面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>登陆</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<form name="form" method="post" action="userlogin">
<table width="354" border="0" align="center">
<tr>
<td colspan="2" align="center" >登录管理界面</td>
</tr>
<tr>
<td width="93" >管理员账号</td>
<td width="251"><input type="text" name="username"></td>
</tr>
<tr>
<td width="93">管理员密码</td>
<td width="251"><input type="password" name="userkey"></td>
</tr>
<tr>
<td colspan="2">
<input name="submit" type="submit" value="登录" /> <input type="reset" value="重置" name="reset"></td>
</tr>
</table>
</form>
</body>
</html>
UserLogin //servlet用户登录的处理
package library.database;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import library.info.*;
public class UserLogin extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String url = "error.jsp";
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
Admin user = new Admin();
user.setUsername(request.getParameter("username").trim());
user.setUserkey(request.getParameter("userkey").trim());
if(user.getUsername().equals("")||user.getUserkey().equals("")){
request.setAttribute("message", "用户名或密码不能为空,请重新输入!");
}
else if(AdminDatabase.CheckLogin(user)==3){
url="index.jsp";
request.setAttribute("username", user.getUsername());
}
else if(AdminDatabase.CheckLogin(user)==2){
request.setAttribute("message", "密码有误,请检查!");
}
else if(AdminDatabase.CheckLogin(user)==1){
request.setAttribute("message", "用户名不存在,请重新输入!");
}
RequestDispatcher rd=request.getRequestDispatcher(url);
rd.forward(request, response);
return;
}
public void init() throws ServletException {
// Put your code here
}
}
AdminDatabase //处理登陆的数据库信息
package library.database;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.sql.Statement;
import library.info.*;
public class AdminDatabase {
public static Connection getconnect(){
String DBDRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String DBURL="jdbc:sqlserver://localhost:1433;databaseName=libraryinfo";
Connection con = null;
try{
Class.forName(DBDRIVER);
con = DriverManager.getConnection(DBURL,"sa","zty");
}catch(ClassNotFoundException e){
System.err.println(e.getMessage());
System.exit(1);
}catch(SQLException e){
System.err.println(e.getMessage());
}
return con;
}
public static int CheckLogin(Admin user){
Admin temp = new Admin();
Connection con=null;
Statement stmt=null;
ResultSet rs=null;
boolean flag=false;
int lab=1;
try{
con=AdminDatabase.getconnect();
stmt=con.createStatement();
rs=stmt.executeQuery("select * from admininfo where username ='"+user.getUsername().trim()+"'");
while(rs.next()){
flag = true;
temp.setUsername(rs.getString("username").trim());
temp.setUserkey(rs.getString("userkey").trim());
if(user.equals(temp)){
lab=3;
flag=false;
break;
}
}
if(flag)lab=2;
}catch(SQLException e){
System.err.println(e.getMessage());
}if(rs!=null){
try{
rs.close();
}catch(SQLException e){}
}
Finally(con,stmt);
return lab;
}
public static void Finally(Connection con,Statement stmt){
if(stmt!=null){
try{
stmt.close();
}catch(SQLException e){}
}
if(con!=null){
try{
con.close();
}catch(SQLException e){}
}
}
}
error.jsp //处理错误信息
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>错误</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%=request.getAttribute("message") %> <br>
<p><a href="userlogin.jsp">重新登录</a></p>
</body>
</html>
success.jsp //处理正确信息
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>成功</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%=request.getAttribute("message") %> <br>
<p><a href="index.jsp">返回主页</a></p>
</body>
</html>
index.jsp //主页面
<%@ page language="java" import="java.util.*,library.database.*,library.info.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>欢迎登陆</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
欢迎你:<%=request.getAttribute("username")%>,使用图书管理系统 <br>
<table width="706" border="0" align="center" height="75">
<tr>
<td colspan="6" align="center" ><strong>图书管理系统</strong></td>
</tr>
<tr>
<td colspan="6" align="center" > </td>
</tr>
<tr>
<td align="right" width="500"> <form name="form" method="post" action="querybook"> 书号查询:
<input type="text" name="number">
<input type="submit" value="查询" ></form></td>
<td align="right" width="103"> <form name="form" method="post" action="bookinput.jsp">
<input type="submit" value="添加" ></form></td>
<td align="right" width="103"> <form name="form" method="post" action="userlogin.jsp">
<input type="submit" value="注销" ></form></td>
</tr>
</table>
<%
ArrayList<Book> bookinfo = BookDatabase.showAllInfo();
if(bookinfo!=null&&bookinfo.size()>0){
%>
<table width="706" border="1" align="center">
<tr>
<td colspan="6" align="center" >图书列表</td>
</tr>
</table>
<table width="706" border="1" align="center">
<tr>
<td width="180" colspan="1" align="center" >书号</td>
<td width="180" colspan="1" align="center" >书名</td>
<td width="131" colspan="1" align="center" >作者</td>
<td width="122" colspan="1" align="center" >出版社</td>
<td width="85" colspan="1" align="center" >价格</td>
<td width="65" colspan="1" align="center" >数量</td>
<td width="83" colspan="1" align="center" >操作</td>
</tr>
<%
for(int i=0;i<bookinfo.size();i++){
Book book=(Book)bookinfo.get(i);
%>
<tr >
<td><%=book.getNumber() %></td>
<td><%=book.getName()%></td>
<td><%=book.getAuthor() %></td>
<td><%=book.getChubanshe() %></td>
<td><%=book.getJiage() %></td>
<td><%=book.getShuliang() %></td>
<td align="right"> <form name="form" method='post' action='deletebook'>
<input type="hidden" name="number" value=<%=book.getNumber()%>>
<input type="submit" name="action" value="删除" ></form></td>
</tr>
<%} %>
</table>
<%} %>
<table align="center">
<tr>
<td colspan="2" align="center">Copyright © zty 2012.6.11</td>
</tr>
</table>
</body>
</html>
BookDatabase类 //处理数据库的图书信息
package library.database;
import java.util.ArrayList;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
import library.info.*;
public class BookDatabase {
private static Connection con;
private static PreparedStatement stmt;
private static ResultSet rs;
public static ArrayList<Book> showAllInfo(){
ArrayList<Book> bookinfo = new ArrayList<Book>();
try{
con=AdminDatabase.getconnect();
stmt=con.prepareStatement("select * from bookinfo ");
rs=stmt.executeQuery();
while(rs.next()){
Book book = new Book();
book.setNumber(rs.getString("number"));
book.setName(rs.getString("name"));
book.setAuthor(rs.getString("author"));
book.setChubanshe(rs.getString("chubanshe"));
book.setJiage(rs.getString("jiage"));
book.setShuliang(rs.getString("shuliang"));
bookinfo.add(book);
}
}catch(SQLException e){
bookinfo=null;
}if(rs!=null){
try{
rs.close();
}catch(SQLException e){}
}
AdminDatabase.Finally(con,stmt);
return bookinfo;
}
public static boolean addInfo(Book book){
boolean flag=false;
try{
con=AdminDatabase.getconnect();
stmt=con.prepareStatement("insert into bookinfo "+"values(?,?,?,?,?,?)");
stmt.setString(1,book.getNumber());
stmt.setString(2,book.getName());
stmt.setString(3,book.getAuthor());
stmt.setString(4,book.getChubanshe());
stmt.setString(5,book.getJiage());
stmt.setString(6,book.getShuliang());
if(stmt.executeUpdate()==1)flag=true;
}catch(SQLException e){
System.out.println(e.getMessage());
}
AdminDatabase.Finally(con,stmt);
return flag;
}
public static Book QueryInfo(String number){
Book book = new Book();
ResultSet rs=null;
try{
con=AdminDatabase.getconnect();
stmt=con.prepareStatement("select * from bookinfo where number= '"+number+"'");
rs=stmt.executeQuery();
while(rs.next()){
book.setNumber(rs.getString("number"));
book.setName(rs.getString("name"));
book.setAuthor(rs.getString("author"));
book.setChubanshe(rs.getString("chubanshe"));
book.setJiage(rs.getString("jiage"));
book.setShuliang(rs.getString("shuliang"));
}
}catch(SQLException e){
book=null;
}if(rs!=null){
try{
rs.close();
}catch(SQLException e){}
}
AdminDatabase.Finally(con,stmt);
return book;
}
public static boolean deleteInfo(String number){
boolean flag=false;
try{
con=AdminDatabase.getconnect();
stmt=con.prepareStatement("delete from bookinfo where number='"+number+"'");
if(stmt.executeUpdate()==1)flag=true;
}catch(SQLException e){
System.out.println(e.getMessage());
}
AdminDatabase.Finally(con,stmt);
return flag;
}
}
展开阅读全文