emailid
私のプロジェクトでは、ユーザーは自分とを入力してログインしpassword
ます。両方が一致する場合、1つは正常にログインできます。そうでない場合、彼はページにリダイレクトされUserHome.jsp
ます。これが私のコードです:
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
しかし、それも仕方がありませんでした!