在我的項目中,用戶通過提供他/她的emailid
和password
來登錄。如果兩者都匹配,則可以成功登錄。如果不是,他將被重定向到UserHome.jsp
頁面。這裏是我的代碼:不正確的數據將用戶重定向到Servlet的空白頁面登錄頁面
import getset.Getset;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;
import java.sql.SQLException;
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 accessdb.Dao;
public class LoginAuthentication extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Authentication and Logging in The Registered User
Getset g=new Getset();
Dao dao=new Dao();
String userid="";
String fname="";
// PrintWriter pw=response.getWriter();
String loginemail=request.getParameter("loginemail");
String loginpassword=request.getParameter("loginpassword");
if (loginemail.equals("") ||
loginemail.equals(" ") ||
loginpassword.equals("") ||
loginpassword.equals(" "))
response.sendRedirect("WelcomePage.jsp");
g.setloginemail(loginemail);
g.setloginpassword(loginpassword);
try {
ResultSet rs=dao.loginauthentication(g);
while(rs.next())
{
String regemail=rs.getString("regemail");
String regpassword=rs.getString("regpassword");
if(loginemail.equals(regemail) &&
(loginpassword.equals(regpassword))==true)
{
ResultSet rs1=dao.getnameid(g);
while(rs1.next())
{
userid=rs1.getString("USERID");
fname=rs1.getString("FNAME");
}
HttpSession session = request.getSession(true);
session.setAttribute("USERID", userid);
session.setAttribute("FNAME", fname);
response.sendRedirect("UserHome.jsp");
break;
}
else if(loginemail.equals(regemail) && (loginpassword.equals(regpassword))==false)
{
response.sendRedirect("WelcomePage.jsp");
return;
}
}
}
catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
我試圖涵蓋登錄過程中可能出現的所有情況。用戶不能訪問如果
- 這兩個字段保持空白。
email
已填充(正確或不正確的數據),但password
未填充。password
已填充(包含正確或不正確的數據),但未填寫emailid
。
我試圖覆蓋但未發生的區域是不允許用戶訪問任何字段是否填充了不正確的數據。對於這一部分,我已經寫在代碼:
if(loginemail.equals(regemail) && (loginpassword.equals(regpassword))==true)
//user accesses
else
if(loginemail.equals(regemail) && (loginpassword.equals(regpassword))==false)
//user cannot access
但我不知道爲什麼它沒有出現預期的行爲,並在兩個領域都充滿了不正確的數據,用戶重定向一個空白頁!
增加:我也試過
if(loginemail.equals(regemail) && (loginpassword.equals(regpassword)))
//User accesses
else if(!loginemail.equals(regemail) || (!loginpassword.equals(regpassword)))
//User cannot access
但它也不能幫助!
您提到:「如果兩個字段都填充了不正確的數據,請不要讓用戶訪問」。理想情況下,如果電子郵件或密碼不正確,你不應該允許登錄 – 2012-07-27 12:03:59
@Hardik Mishra你是對的。我將相應地更改代碼。 – Mistu4u 2012-07-27 12:07:47