资源描述
实验六 利用Servlet和JSP设计并实现简单图书管理系统
1、实验目
1)掌握对JDBC基本操作步骤简单封装
2)掌握Servlet和JSP结合使用
3)掌握MVC设计模式
4)掌握监听器、过滤器使用
2、实验设备及环境
硬件:安装有Windows XP系统微机一台。
软件:JDK1.6、MyEclipse 6.0以上、Oracle或者SQL Server2000(2005、2008)和Tomcat 6。
3、实验内容
设计一个通用基于浏览器/服务器简单图书管理系统。系统包括用户登录、图书基本信息维护(图书增删改查)等简单功能。
4、实验要求
1)用户、图书基本信息采用数据库存放
2)使用Servlet作为业务流程控制器
3)使用session、JavaBean进行数据传递
5、实验要求
1)实验前充分预习实验指导书内容及相关理论知识内容;实验时提交本次实验预习报告。
2)实验中严格遵守实验室规范和制度,调试程序出现问题并给出解决方法。认真完成实验内容并做好实验纪录
3)实验后必须按照要求独立完成实验报告
4)打印源程序清单和测试结果附在实验报告后面。源程序必须有注释以及必要测试数据和运行结果数据
6、实验程序
<1>登录界面
package com.imut.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.imut.javabean.User;
import com.imut.javabean.UserDBAccess;
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session=request.getSession();
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String name=request.getParameter("name");
String passwd=request.getParameter("password");
UserDBAccess dbAccess=new UserDBAccess();
User user=dbAccess.login(name,passwd);
if(user!=null){
session.setAttribute("user",user);
response.sendRedirect("");
}else{
session.setAttribute("message","登录信息有误,请重新登录!!!");
response.sendRedirect("");
}
}
}
<2>添加
package com.imut.servlet;
import java.io.IOException;
import java.util.Date;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.imut.javabean.Book;
import com.imut.javabean.BookDBAccess;
import com.imut.javabean.User;
import com.imut.javabean.UserDBAccess;
public class AddBookServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session=request.getSession();
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String bookName=request.getParameter("bookName");
String ISBN=request.getParameter("ISBN");
String author=request.getParameter("author");
String publishCom=request.getParameter("publishCom");
String strPrice=request.getParameter("price");
String publishDate=request.getParameter("publishDate");
String remark=request.getParameter("remark");
float price=Float.parseFloat(strPrice);
BookDBAccess dbAccess=new BookDBAccess();
Book book=new Book(dbAccess.getBookId(),bookName,ISBN,author,
publishCom,price,publishDate,remark);
dbAccess.addBook(book);
session.setAttribute("message", "图书信息添加成功!");
request.getRequestDispatcher("/listAllBookServlet").forward(request, response);
}
}
<3>删除
package com.imut.servlet;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.imut.javabean.Book;
import com.imut.javabean.BookDBAccess;
import com.imut.javabean.User;
import com.imut.javabean.UserDBAccess;
public class DeleteBookServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session=request.getSession();
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String id=request.getParameter("bookId");
int bookId=Integer.parseInt(id);
BookDBAccess dbAccess=new BookDBAccess();
dbAccess.delBookById(bookId);
session.setAttribute("message", "删除图书信息成功!");
request.getRequestDispatcher("/listAllBookServlet").forward(request, response);
}
}
<4>更新
package com.imut.servlet;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.imut.javabean.Book;
import com.imut.javabean.BookDBAccess;
import com.imut.javabean.User;
import com.imut.javabean.UserDBAccess;
public class UpdateBookServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session=request.getSession();
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String id=request.getParameter("bookId");
String bookName=request.getParameter("bookName");
String ISBN=request.getParameter("ISBN");
String author=request.getParameter("author");
String publishCom=request.getParameter("publishCom");
String strPrice=request.getParameter("price");
String publishDate=request.getParameter("publishDate");
String remark=request.getParameter("remark");
int bookId=Integer.parseInt(id);
float price=Float.parseFloat(strPrice);
BookDBAccess dbAccess=new BookDBAccess();
Book book=dbAccess.findBookById(bookId);
book.setAuthor(author);
book.setBookName(bookName);
book.setISBN(ISBN);
book.setPrice(price);
book.setPublishCom(publishCom);
book.setPublishDate(publishDate);
book.setRemark(remark);
dbAccess.updateBook(book);
session.setAttribute("message", "修改图书信息成功!");
request.getRequestDispatcher("/listAllBookServlet").forward(request, response);
}
}
<5>书籍管理界面
package com.imut.servlet;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.imut.javabean.Book;
import com.imut.javabean.BookDBAccess;
import com.imut.javabean.User;
import com.imut.javabean.UserDBAccess;
public class ShowBookServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String id=request.getParameter("bookId");
int bookId=Integer.parseInt(id);
BookDBAccess dbAccess=new BookDBAccess();
Book book=dbAccess.findBookById(bookId);
request.setAttribute("book",book);
request.getRequestDispatcher("/bookShow.jsp").forward(request, response);
}
}
<6>检索
package com.imut.servlet;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.imut.javabean.BookDBAccess;
import com.imut.javabean.User;
import com.imut.javabean.UserDBAccess;
public class CheckBookServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String bookName=request.getParameter("bookName");
String ISBN=request.getParameter("ISBN");
String author=request.getParameter("author");
String publishCom=request.getParameter("publishCom");
request.setAttribute("bookName", bookName);
request.setAttribute("ISBN", ISBN);
request.setAttribute("author", author);
request.setAttribute("publishCom", publishCom);
BookDBAccess dbAccess=new BookDBAccess();
List list=dbAccess.findAllBookByMostCon(bookName, ISBN, author, publishCom);
request.setAttribute("list", list);
request.getRequestDispatcher("/bookList.jsp").forward(request, response);
}
}
<7>显示图书清单
package com.imut.servlet;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.imut.javabean.BookDBAccess;
import com.imut.javabean.User;
import com.imut.javabean.UserDBAccess;
public class ListAllBookServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
BookDBAccess dbAccess=new BookDBAccess();
List list=dbAccess.findAllBook();
request.setAttribute("list", list);
request.getRequestDispatcher("/bookList.jsp").forward(request, response);
}
}
<8>用户定义
package com.imut.javabean;
public class User {
private int userId;
private String name;
private String password;
private String sex;
private String feature;
private String privence;
private String author;
private int userType;
public User() {
}
public User(int userId,String name, String password, String sex, String feature,
String privence, String author,int userType) {
this.userId = userId;
this.name = name;
this.password = password;
this.sex = sex;
this.feature = feature;
this.privence = privence;
this.author = author;
this.userType = userType;
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getFeature() {
return feature;
}
public void setFeature(String feature) {
this.feature = feature;
}
public String getPrivence() {
return privence;
}
public void setPrivence(String privence) {
this.privence = privence;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public int getUserType() {
return userType;
}
public void setUserType(int userType) {
this.userType = userType;
}
}
<9>用户数据库
package com.imut.javabean;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import mmon.ConnectionFactory;
import mmon.ResourceClose;
public class UserDBAccess {
public User login(String name,String password) {
User user=null;
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
try{
conn=ConnectionFactory.getConnection();
String sql="select * from usertbl1 where name=? and password=?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.setString(2, password);
rs=pstmt.executeQuery();
if(rs.next()){
user=new User();
user.setUserId(rs.getInt(1));
user.setName(rs.getString(2));
user.setPassword(rs.getString(3));
user.setSex(rs.getString(4));
user.setFeature(rs.getString(5));
user.setPrivence(rs.getString(6));
user.setAuthor(rs.getString(7));
user.setUserType(rs.getInt(8));
}
}catch (SQLException e) {
e.printStackTrace();
}finally{
ResourceClose.close(rs, pstmt, conn);
}
return user;
}
}
<10>图书定义
package com.imut.javabean;
public class Book {
private int bookId;
private String bookName;
private String author;
private String ISBN;
private String publishCom;
private float price;
private String publishDate;
private String remark;
public Book() {
}
public Book(int bookId, String bookName, String isbn, String author,
String publishCom, float price, String publishDate, String remark) {
this.bookId = bookId;
this.bookName = bookName;
ISBN = isbn;
this.author = author;
this.publishCom = publishCom;
this.price = price;
this.publishDate = publishDate;
this.remark = remark;
}
public int getBookId() {
return bookId;
}
public void setBookId(int bookId) {
this.bookId = bookId;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getISBN() {
return ISBN;
}
public void setISBN(String isbn) {
ISBN = isbn;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getPublishCom() {
return publishCom;
}
public void setPublishCom(String publishCom) {
this.publishCom = publishCom;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
public String getPublishDate() {
return publishDate;
}
public void setPublishDate(String publishDate) {
this.publishDate = publishDate;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}
<11>图书数据库
package com.imut.javabean;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import mmon.ConnectionFactory;
import mmon.ResourceClose;
pu
展开阅读全文