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