JSP

7.JSP (session을 이용한 로그인)

5_jinseok12 2017. 10. 6. 20:30
728x90

 

 


로그인 페이지 만들기



1) login.jsp : 로그인을 할때 보여지는 폼 화면

2) loginOK.jsp : 실질적으로 값을 전달받아 처리하는 페이지

3) index.jsp : 저장된 값과 비교하여 로그인 기능을 처리하는 페이지

4) logout.jsp : 로그아웃 페이지


 

*login.jsp

 

로그인 페이지를 만들기 위해선, 우선 폼 화면을 만들어야 한다.

login.jsp의 이름으로 로그인할때 보여지는 화면의 폼태그를 만들어준다. 

action="loginOk.jsp는 사용자가 폼 화면에 입력한 아이디와 패스워드를 loginOk.jsp로 전송한다.

즉 실제 기능은 loginOK.jsp 를 통해 일어나는 것이다 

method="post"는 POST 방식을 이용하여 URL 경로를 숨기는 기능을 한다.

 

 

 

login.jsp를 실행시키면 위와 같은 폼 화면이 뜬다.

사용자가 아이디와 암호를 입력할 수 있도록 만들어주며, 입력받은 값을 loginOK.jsp에 전송해준다.

 

*loginOk.jsp

 

request.setCharacterEncoding("UTF-8");  을 작성하지 않으면 텍스트 글자가 깨져서 출력되므로 알아둬야 한다.

 

requset.getParameter를 통해 아이디와 비밀번호를 로그인페이지의 폼 화면인 "login.jsp" 에서 받아올 수 있다.

 

if(userid != null && userid.equals(password) 는 ID값이 빈값이 아니며, 임의의 ID와 PW가 같을때 로그인이 가능하다고 설정한 것이다.


session.setAttribute("userid",userid); 는 로그인에 성공하면 사용자 아이디를 세션 변수에 저장한다.

 

response.sendRedirect("index.jsp"); 를 통해 로그인이 되던 안되던 상관없이 일단 "index.jsp"로 보낸다.

 

 

*index.jsp

if(session.getAttribute("userid")==null) 은 세션변수에 저장된 userid 값이 비어있으면 로그인이 안되어있으므로 <a href='login.jsp'>로그인</a>"); 을 통해 login.jsp 파일로 링크를 걸어준다.

 

else는 로그인 되어있는 상태를 나타내므로 session.getAttribute("userid")를 이용해 세션변수에 저장된 userid를 String형으로 변환하여 출력하고 위에 입력된out.println(userid+"님 반갑습니다<br>"); 으로 인해 아이디 뒤에 + 님 반갑습니다가 출력된다.

로그인이 되어있는 상태에서 로그아웃 하기 위해 <"a href=logout.jsp'>로그아웃</a>");으로 logout.jsp 파일로 링크를 걸어준다.

 

 

*logout.jsp

logout할 때 sessio.removeAttribute("userid"); 로 인해 userid값이 지워진다

response.sendRedirect("login.jsp")를 통해 login.jsp로 전송된다

 

 

 


 

 1. login.jsp를 실행시켰을때 나타나는 실행 화면



 

 2. 아이디와 암호를 동일하게 입력했을 때 로그인이 되도록 설정했으므로 똑같이 입력한다



 

3. 로그인 성공됐을때 나타나는 실행 화면


 

 4. 로그아웃을 눌렀을 때 나타나는 실행 화면. 아이디값이 지워진 것을 알 수 있다.

좀 더 응용하기 위해 login2.jsp를 만든다.

 

 

*login2.jsp

 

<%=sessio.getAttribute("userid")%>를 통해 session에 userid 가 비어있으면 form태그가 적용되어  loginOk2.jsp 파일이 전송되고 그렇지 않을경우 else 로 userid가 저장되어 있는 경우 table로 session에 저장된 userid 값을 getAttibute로 불러온다.

 

<input type="button" value="로그아웃" onclick="location.href='logout2.jsp'"> 를 통해 로그아웃이 설정된 버튼을 누르면 logout2.jsp 파일의 링크로 돌아간다는 것을 알 수 있다.

 

 

 

 

*loginOk2.jsp

 

String url = request.getHeader("referer"); 을 통해 어디에서 호출했는지 URL에 저장하고 다시 그곳으로 보낸다.

 

 

*logout2.jsp

로그인이 성공되어있을 때 sessio.removeAttibute("userid"); 를 통해 저장되어 있는 값을 지우고 loginOk2.jsp 와 같이 어디서 호출했는지 url에 저장하고 다시 보낸다

 

 

정상적인 값을 입력하여 로그인 시도.


 

login2.jsp를 실행시켰을 때 나타나는 실행 화면

 

 

main1.jsp 페이지


main2.jsp 페이지


main3.jsp 페이지

 

main 페이지를 1,2,3 따로 만들어서 저장하여 세개의 페이지를 만들어 준다.


 

URL 주소에서 main 뒤에 숫자를 1,2,3 등으로 변경하여 전송하면 아래의 페이지를 클릭하여 이동하는 것과 같은 역할을 한다.


<%@include file="login2.jsp"%>를 사용하였으므로 세션에 저장된 userid가 다른 메인페이지에 들어가도 똑같이 저장된다.

 


실행 결과

 

반응형

'JSP' 카테고리의 다른 글

8.JSP (useBean 액션 태그)  (0) 2017.10.06
6.JSP 에러처리  (0) 2017.10.04
5. JSP <Json>  (0) 2017.10.04
4. JSP (Jsoup)  (0) 2017.10.04
3. JSP ( Javascrpit 표현 방법)  (0) 2017.09.23