괴발개발
[연습] JSP 세션 생성(#로그인, #admin) 본문
1.페이지 에서 보낸 값을 받는다.
2. 쿠키의 값을 저장한다.
3. 다른 페이지로 보낸다.
[사전준비]
<form action="result.jsp" method="post">
<table>
<tr>
<th>ID</th>
<td><input type="text" name="userId" /></td>
</tr>
<tr>
<th>PW</th>
<td><input type="password" name="userPw" /></td>
</tr>
<tr >
<th colspan="2"><input type="submit" value="login"/></th>
</tr>
</table>
</form>
1) 일단 페이지에서 보낸 값을 받으려면 고객이 저장한 값이기 때문에 request를 쓰고 getparameter
를 써서 값을 가져옵니다.
그리고 login 페이지에서 적었던 유저 userid라는 name 을 넣어주고 스트링 타입의 Id 변수에 넣어줍니다.
그리고 비밀번호도 마찬가지의 과정으로 리퀘스트 파라미터 써주고 pw의 네임값 넣어주고 pw 변수에 넣어줍니다.
그리고 잘 가져왓는지 출력해봅니다.
String id = request.getParameter("userId");
String pw = request.getParameter("userPw");
System.out.println(id+"/"+pw);
3) 그런데 만약 어떤 사용자가 주소를 그대로 넣어서 result 페이지로 갈 가능성이 잇기 때문에 그걸 막기위해
새로 if 문을 작성합니다.
만약 페이지를 그대로 넣은 사용자라면 id가 null이거나 비밀번호가 null이 나올것입니다.
그리고 이러한 조건 말고도 null방지를 위해서 id가 null 또는 pw가 null이라는 '또는' 을 사용합니다.
하나라도 null이 나오면 login 페이지에 머물게 되도록 할 수 있습니다. 그리고 밑에 else문을 넣어서
아까 작성했던 순서대로 다시 동작하게 되며 일치하면 result 페이지로 넘어가도록 합니다.
if(id == null || pw == null){
response.sendRedirect("login.jsp");
}else{
2) 그런다음 로그인 하고자 하면 id가 내가 정하고자 하는 admin이란 값이랑 같아야 되기 때문에
내가 저장한 값의 변수인 ID를 equal로 admin이란 값이랑 비교하고
패스워드도 마찬가지로 변수pw가 pass랑 같냐를 하기 위해 equal라고 써줍니다.
그리고 if문을 사용하고 &&엔드를 써서 둘다 만족하는지 확인합니다.
그런다음. 만약 일치한다면 세션값에 저장하도록 setAtrrbute를 쓰고 loginid라는 이름으로 아까 저장한Id값을 넣습니다.
지금은 login 페이지에서 자동으로 넘어가게 되었었기 때문에
아무 것도 적지 않아도 넘어가게 됩니다. 그리고 else를 써서 일치하지 않는다면 그 login 페이지에 머물도록 합니다.
if(id.equals("admin")&& pw.equals("pass")){
session.setAttribute("loginId",id ); /
response.sendRedirect("result.jsp");
}else{
response.sendRedirect("login.jsp");//
}