📄 membercontroller.java
字号:
import java.io.IOException;import java.net.URLEncoder;import java.sql.SQLException;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.Hold;import library.Member;public class MemberController extends Controller { public void doPost (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { String action = req.getParameter("action"); // Output for debug purposes. System.err.println("MemberController: " + action); // Take the appropriate action. if (action.equals("placehold")) { placeHold(req, res); } else if (action.equals("makefav")) { makeFav(req, res); } else if (action.equals("login")) { login(req, res); } else if (action.equals("viewborrowed")) { viewBorrowed(req, res); } else if (action.equals("viewonhold")) { viewOnHold(req, res); } else { res.sendRedirect("/library/index.jsp"); } } private void viewBorrowed (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { // Get the session object. HttpSession session = req.getSession(); // Retrieve the member. Member member = (Member) session.getAttribute("member"); // Get the checked out books. Book book = null; try { book = member.getCheckedOutBooks(); } catch (SQLException se) { System.err.println(se.toString()); sendErrorRedirect(req, res, se); return; } // Store the book object in the session. session.setAttribute("book", book); // Redirect to the display page. res.sendRedirect("/library/viewborrowedbooks.jsp"); } private void viewOnHold (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { // Get the session object. HttpSession session = req.getSession(); // Retrieve the member. Member member = (Member) session.getAttribute("member"); // Get the held books. Hold hold = null; try { hold = member.getHolds(); } catch (SQLException se) { System.err.println(se.toString()); sendErrorRedirect(req, res, se); return; } // Store the book object in the session. session.setAttribute("hold", hold); // Redirect to the display page. res.sendRedirect("/library/viewheldbooks.jsp"); } private void login(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { // Get the session object. HttpSession session = req.getSession(); Member member = (Member) session.getAttribute("mem"); // The passwd and ssn parameters will be present when attempting // to login. String pass = req.getParameter("passwd"); int ssn = (req.getParameter("ssn").equals("")) ? 0 : Integer.parseInt(req.getParameter("ssn")); // A callNumber parameter may or may not be present, // One will be present if a member clicked "Place Hold" // without being logged in, and then attempts to log in. String hcn = (req.getParameter("hcn") == null) ? "" : req.getParameter("hcn"); String fcn = (req.getParameter("fcn") == null) ? "" : req.getParameter("fcn"); // When redirecting to another page, include a forwarded // call number to hold (if any). String hcnparam = hcn.equals("") ? "" : "?hcn=" + hcn; String fcnparam = fcn.equals("") ? "" : "?fcn=" + fcn; String cnparam = hcn.equals("") ? fcnparam : hcnparam; // Lets invalidate the session // to get rid of the unneeded Member session attribute. session.invalidate(); session = req.getSession(); try { if (member.validate(ssn, pass)) { session.setAttribute("member", member); res.sendRedirect("/library/memberaccount.jsp" + cnparam); } else { // The password was not validated. We simply // set an error message, and redirect back to // the member login page. Member m = new Member(); session.setAttribute("mem", m); m.setErrors("generic","Invalid user id and/or password"); res.sendRedirect(URLEncoder.encode("/library/member.jsp" + cnparam, "UTF-8")); } } catch (Exception e2) { // Something bad happened, so redirect to the // error page. System.err.println(e2.toString()); sendErrorRedirect(req, res, e2); } } private void placeHold(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { // Get the session object. HttpSession session = req.getSession(); Member member = (Member) session.getAttribute("member"); // Now get the callnumber parameter. String cn = req.getParameter("cn"); // Before placing a hold, we must first make sure that // a member is logged in. If they are not logged in, // redirect to the member login page. if (member == null) { res.sendRedirect(URLEncoder.encode("/library/member.jsp?hcn=" + cn, "UTF-8")); } else { try { int ok = member.placeHold(cn) ? 1 : 0; res.sendRedirect(URLEncoder.encode("/library/hold_done.jsp?cn=" + cn + "&ok=" + ok, "UTF-8")); } catch (Exception e) { System.err.println(e.toString()); sendErrorRedirect(req, res, e); } } } private void makeFav(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { // Get the session object. HttpSession session = req.getSession(); Member member = (Member) session.getAttribute("member"); // Now get the callnumber parameter. String cn = req.getParameter("cn"); // Before placing a hold, we must first make sure that // a member is logged in. If they are not logged in, // redirect to the member login page. if (member == null) { res.sendRedirect(URLEncoder.encode("/library/member.jsp?fcn=" + cn, "UTF-8")); } else { try { int ok = member.addFav(cn) ? 1 : 0; res.sendRedirect(URLEncoder.encode("/library/addfav_done.jsp?cn=" + cn + "&ok=" + ok, "UTF-8")); } catch (Exception e) { System.err.println(e.toString()); sendErrorRedirect(req, res, e); } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -