今天用Servlet實現了一個站點用戶登錄功能。
流程如下:
Login.class
實現視圖功能,實現一個表單,第一行為用戶名,第二行為密碼,第三行為提交按鈕。
readservlet.class
將表單數據暫存在session中,利用RequestDispatcher實現頁面跳轉功能,重定向到“/validata”。
validata.class
實現數據校驗。判斷輸入用戶名與密碼是否正確匹配,方法是與數據庫中記錄比較驗證。
若用戶名和密碼有一為null, 則重定向回/Login。否則,
若匹配,則重定向到"/successlogin";
若不匹配,則重定向到"/failurelogin"
successlogin.class
提示成功登錄,顯示用戶名和密碼。
failurelogin.class
提示登錄失敗。提供重新登錄功能,即重定向到/Login的功能。這個功能可以通過設置"action=\login"的表單實現,也可以通過超鏈接實現。
需注意的問題:
重定向的兩種方法?
1. RequestDispatcher rd=request.getRequestDispatcher(URL); 或
RequestDispatcher rd=getServletContext().getRequestDispatcher(URL);
rd.forward(request,response);
2. response.sendRedirect(URL);
request.getSession(true/false)方法中參數true和false的區別?
參數為true時,若當前request包含的session為null,則創建一個新的session。
參數為false時,在上述情況下不會創建新的session。