librariancontroller.java
来自「图书馆检索系统」· Java 代码 · 共 145 行
JAVA
145 行
import java.io.IOException;import java.net.URLEncoder;import javax.servlet.ServletConfig;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 library.Book;import library.Librarian;import library.Member;public class LibrarianController extends Controller { public void doPost (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { String action = req.getParameter("action"); if (action.equals("checkin")) { checkin(req, res); } else if (action.equals("checkout")) { checkout(req, res); } else if (action.equals("login")) { login(req, res); } else { res.sendRedirect("/library/index.jsp"); } } private void checkin (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { // Get the session. HttpSession session = req.getSession(); Librarian librarian = (Librarian) session.getAttribute("librarian"); Book book = (Book) session.getAttribute("book"); // Get the bookid parameter int bookID = (req.getParameter("bookID") == null) ? 0 : Integer.parseInt(req.getParameter("bookID")); // Set the book object to the specified book. if (book.getBook(bookID)) { try { // Check in. if (book.checkIn()) { res.sendRedirect("/library/entrycomplete.jsp?action=checkedin"); } else { res.sendRedirect("/library/librarianaccess.jsp"); } } catch (Exception e) { System.err.println("Checkin failed: " + e.toString()); sendErrorRedirect(req, res, e); } } else { // This book did not exist. book.setErrors("checkinbook", "This book does not exist"); res.sendRedirect("/library/librarianaccess.jsp"); } } private void checkout (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { // Get the session. HttpSession session = req.getSession(); Librarian librarian = (Librarian) session.getAttribute("librarian"); Book book = (Book) session.getAttribute("book"); // Get the bookid parameter int bookID = (req.getParameter("bookID") == null) ? -1 : Integer.parseInt(req.getParameter("bookID")); // Get the member's ssn. int ssn = (req.getParameter("ssn") == null) ? -1 : Integer.parseInt(req.getParameter("ssn")); String pssn = (ssn == -1) ? "" : "?ssn" + ssn; // Set the book object to the specified book. if (book.getBook(bookID)) { // Retrieve the member object. Member member = new Member(); if (member.getMember(ssn)) { try { // Check out. if (book.checkOut(librarian, member)) { res.sendRedirect("/library/entrycomplete.jsp?action=checkedout"); } else { res.sendRedirect("/library/librarianaccess.jsp" + pssn); } } catch (Exception e) { System.err.println("Checkout failed: " + e.toString()); sendErrorRedirect(req, res, e); } } else { // This member did not exist. book.setErrors("checkoutmember", "This member does not exist"); res.sendRedirect("/library/librarianaccess.jsp" + pssn); } } else { // This book did not exist. book.setErrors("checkoutbook", "This book does not exist"); res.sendRedirect("/library/librarianaccess.jsp" + pssn); } } private void login (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { // Get the session object. HttpSession session = req.getSession(); try { Librarian librarian = (Librarian) session.getAttribute("lib"); if (librarian.validate( Integer.parseInt(req.getParameter("ssn")), req.getParameter("passwd"))) { // Lets invalidate the session // to get rid of the unnecessary objects. session.invalidate(); session = req.getSession(); session.setAttribute("librarian", librarian); // Redirect to the librarian page. res.sendRedirect("/library/librarianaccess.jsp"); return; } } catch(NumberFormatException nfe) { //nothing here. allows pass through to post catch //code that is common to nfe and validate == false } catch (Exception e) { System.err.println(e.toString()); sendErrorRedirect(req, res, e); return; } session.invalidate(); res.sendRedirect("/library/librarian.jsp?errMsg=" + URLEncoder.encode("Invalid user id and/or password", "UTF-8")); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?