スルタナTasneem:
私は、ユーザーのログインを処理するために、このコードを実装しようとしていますが、動作しません。
それは何かがユーザー検証または選択で間違っていることを意味し、コードでif文をスキップします。それはちょうど送信ボタンを押した後にエラーページに移動します。
ここで私は以下の使用していたコードです
CustomerController:
HttpSession session = request.getSession();
String userName = request.getParameter("userName");
String password = request.getParameter("password");
String firstname = request.getParameter("firstname");
User.getTransaction().begin();
Query query = User.createQuery("select p from Customer where p.userName=:uName");
query.setParameter("uName", userName);
@SuppressWarnings("unchecked")
List<Customer> Result = query.getResultList();
User.close();
if(Result.size()>0)
if(Result.get(0).getPassword().equals(password))
{
Customer pass=Result.get(0);
session.setAttribute("Id", pass.getId());
String message="Welcome " + firstname;
return new ModelAndView("userpage","pass",pass);
}
return new ModelAndView("error","message","Wrong credentials");
}
ログインJSPファイル:
<form action="signin" method="post">
<table align="center">
<tr>
<td>
<label>User Name</label>
</td>
<td>
<input type="text" name="UserName" />
</td>
</tr>
<tr>
<td>
<label >Password</label>
</td>
<td>
<input type="text" name="password" />
</td>
</tr>
<tr>
<td></td>
<td>
<button id="login" type="submit" name="login" style="width:100%;border-
radius:10px;text-shadow:2px 2px 3px
rgba(150,150,150,0.75);font-family:time">Login</button>
</td>
</tr>
<tr>
<td><a href="register">Don't have an account? Sign Up?</a>
</td>
</tr>
</table>
</form>
バシル:
- まず、内ケース尊重
request.getParameter("UserName");
入力タグの名前と同じ<input type="text" name="UserName" />
String firstname = request.getParameter("firstname");
この行は、パラメータを抽出しようとしfirstname
ますからPOST
、他の言葉で、それが唯一のログイン名とパスワードのための2つのフィールドを含むログインフォームからそれを抽出し、要求します。そうあなただけのコード行を削除する必要があります。- これを使用する必要はありません
User.getTransaction().begin();
データベースからデータを取得して - あなたのクエリが間違っています
このコードを試してみてください。
HttpSession session = request.getSession();
/*get username and password from the login form*/
String userName = request.getParameter("UserName");
String password = request.getParameter("password");
/*query to search customer having the username and password inserted in the login form*/
Query query = User.createQuery("select p from Customer p where p.userName = :uName and p.password = :uPassword");
query.setParameter("uName", userName);
query.setParameter("uPassword", password);
/*getting the result*/
Customer pass = (Customer) query.getSingleResult();
User.close();
/*if not null, means we have found the user (correct username and password), else login failed)*/
if(pass!=null){
session.setAttribute("Id", pass.getId());
String message="Welcome " + pass.getFirstname();
}
else{
String message="Authentication Error";
}
return new ModelAndView("userpage","pass",pass);