1、实验六 利用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、息采用数据库存放 2)使用Servlet作为业务流程控制器 3)使用session、JavaBean进行数据传递 5、实验要求 1)实验前充分预习实验指导书内容及相关理论知识内容;实验时提交本次实验预习报告。 2)实验中严格遵守实验室规范和制度,调试程序出现问题并给出解决方法。认真完成实验内容并做好实验纪录 3)实验后必须按照要求独立完成实验报告 4)打印源程序清单和测试结果附在实验报告后面。源程序必须有注释以及必要测试数据和运行结果数据 6、实验程序 <1>登录界面 package com.imut.servlet; import java.io.IOExc
3、eption; 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; publ
4、ic 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 ServletExcep
5、tion, 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();
6、 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.IOExce
7、ption; 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
8、 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(requ
9、est, 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.g
10、etParameter("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 remar
11、k=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", "图书信息添
12、加成功!"); 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.ht
13、tp.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 HttpS
14、ervlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession
15、 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.setAttri
16、bute("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
17、 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 UpdateBookServ
18、let 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
19、 { 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
20、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.par
21、seFloat(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)
22、 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.Lis
23、t; 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 co
24、m.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(HttpServle
25、tRequest 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()
26、 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; im
27、port 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 Ch
28、eckBookServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,
29、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("publishCo
30、m"); 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, aut
31、hor, 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.ht
32、tp.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 exte
33、nds HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { re
34、quest.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
35、>用户定义 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,St
36、ring 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 =
37、 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; } p
38、ublic 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 = featur
39、e; } 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() { retur
40、n 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
41、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=? a
42、nd 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));
43、 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, con
44、n); } 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; pub
45、lic 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.pri
46、ce = 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
47、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 pub
48、lishCom; } 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 setPublishD
49、ate(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






