JSP Servlet 기초(7) 쿠키를 이용한 로그인

이번엔 쿠키를 이용한 간단한 로그인을 구현 해보겠습니다.


먼저 이클립스에  login.html, loginGo.jsp, logout.jsp, home.jsp 

파일을 만들어줍니다.


처음 login.html 에서 body 부분을 보면


1
2
3
4
5
<form action="loginGo.jsp" method="post">
        아이디 : <input type="text" name="id" size="10"><br />
        비밀번호 : <input type="password" name="pw" size="10"><br />
        <input type="submit" value="로그인">
</form>
cs


위와 같이 간단하게 form 태그를 이용해 아이디 비밀번호 를 입력할수 있게 

만들어주고 action 위치는 loginGo.jsp 로 해준다.


다음 loginGo,jsp 에서의 body 부분은


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<body>
    <%!
        String id, pw;
    %>
    <%
        id = request.getParameter("id");
        pw = request.getParameter("pw");
        
        if(id.equals("abcde"&& pw.equals("12345")) {
            Cookie cookie = new Cookie("id", id);
            cookie.setMaxAge(60);
            response.addCookie(cookie);
            response.sendRedirect("home.jsp");
        } else {
            response.sendRedirect("login.html");
        }
    %>
 
</body>
cs


위와같이 입력한다


login.html 에서 입력한 아이디와 비밀번호를 request.getParameter 를이용해 

요청하고


if문으로 아이디와 비밀번호를 각각 abcde, 12345 로 입력했을때 

라는 조건을 걸어쿠키 생성을 해준다 이때 

쿠키의 name 은"id" value은 id 로해준다 -> .new Cookie("id", id);

이때 쿠키의 이름은 id 이지만 그안에 들어가진 value 값은 abcde 가들어간것이다

만들어진 쿠키를 response 에 탑재 시켜주고 sendRedirect 로 home.jsp 로 보내진다

이때 아이디와 비밀번호가 맞지 않으면 else 문을 타게 되어 다시 login.html로 이동된다


home.jsp 는


1
2
3
4
5
6
7
8
9
10
11
12
13
14
<body>
 
    <%
        Cookie[] cookies = request.getCookies();
    
        for(int i=0; i<cookies.length; i++) {
            String id = cookies[i].getValue();
            if(id.equals("abcde")) out.println(id + "님 안녕하세요." + "<br />");
        }
    %>
    
    <a href="logout.jsp">로그아웃</a>
    
</body>
cs

위와 같이 입력한다. 

loginGo.jsp 에서 response 에탑재 시킨 쿠키를 request.getCokkies 로 요청하고

for 문을 돌려 String id 에 getValue 로 가져온 value 값을 저장한다.

이렇게되면 String id 에서 id 에 저장된 값은 abcde 가된다.


마지막으로 if 문으로 String id 에서 id 에 저장된 값이 abcde 라면

out.println 를 이용하여 id값과 원하는 텍스트를 출력시켜준다.


logout.jsp 는


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<body>
    
    <%
        Cookie[] cookies = request.getCookies();
        
        if(cookies != null) {
            for(int i=0; i<cookies.length; i++) {
                if(cookies[i].getValue().equals("abcde")){
                    cookies[i].setMaxAge(0);
                    response.addCookie(cookies[i]);
                }
            }
        }
        
        response.sendRedirect("login.html");
        
    %>
    
</body>
cs


위와같이 쿠키의 유지시간을 0으로 설정후 다시 response 에 탑재시켜 login.html로

sendRedirect 한다. 조건문에 cookies != null 는 쿠키의 값이 null 값이

아니라면을 의미한다 즉 쿠키안에 데이터가 있으면 으로 해석된다.


login.html을 실행시켜 아이디와 비밀번호에 abcde, 12345를 각각 입력시키면

위와같은 화면을 볼수있다. 로그아웃을 누르면 쿠키는 삭제되고

처음 login.html화면으로 돌아가게된다.



'JSP' 카테고리의 다른 글

JSP Servlet 기초(9) 세션을 이용한 로그인  (2) 2018.01.29
JSP Servlet 기초(8) 세션  (1) 2018.01.29
JSP Servlet 기초(6) 쿠키생성  (2) 2018.01.29
JSP Servlet 기초(5) response  (0) 2018.01.29
JSP Servlet 기초(4) request + tag  (2) 2018.01.29

댓글

Designed by JB FACTORY