ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Camel][JSP] CookieBox 클래스 & 로그인 페이지
    JSP 2020. 3. 13. 15:30

    CookieBox 클래스를 사용한 Cookie 생성

     쿠키를 생성하는 방법의 한 가지로 CookieBox 클래스를 사용하는 방법이 있습니다. 이때는 Cookie 클래스의 생성자를 사용 예제 코드는 아래와 같습니다. 

    <%@ page contentType="text/html; charset=utf-8" %>
    <%@ page import="util.CookieBox" %>
    <%
    	response.addCookie(CookieBox.createCookie("name","낙타"));
        	response.addCookie(CookieBox.createCookie("id","Camel","/ch2",-1));    
    %>
    <html>
    <head> Cookie Create</head>
    <body>
    Cookie Create
    </body>
    </html>

      위와 같이 CookieBox 클래스를 사용하면 기존의 Cookie 클래스를 사용해 쿠키를 생성하는 것보다 코드가 간결해지는 것을 확인할 수 있습니다. Cookie 클래스를 사용한 쿠키생성에 대한 내용은 이전 포스팅을 참고하시길 바랍니다. 

    2020/03/12 - [JSP] - [Camel][JSP] 쿠키 (Cookie) in JSP

     

    [Camel][JSP] 쿠키 (Cookie) in JSP

    1. 쿠키(Cookie)란? 쿠키는 웹브라우저가 보관하고 있는 데이터입니다. 웹브라우저는 웹 서버에 요청을 보낼 때 쿠키를 함께 전송합니다. 웹 서버는 전달 받은 쿠키를 통해 필요한 데이터를 읽어오는 것입니다. 이..

    cameldev.tistory.com

     

    CookieBox 클래스를 사용해 Cookie 읽어오기

     CookieBox 클래스를 사용해서 웹 브라우저가 전송한 쿠키를 읽어올 때는 CookieBox 클래스의 객체를 생선한 뒤 getCookie, getValue, exists 등의 메소드를 사용할 수 있습니다. 쿠키를 읽어올 때에도 쿠키를 생성할 때와 마찬가지로 CookieBox 클래스를 이용하면 코드가 간결하게 작성될 수 있습니다. 쿠키 값을 읽어오는 예제 코드는 아래와 같습니다. 

    아래의 예제를 실행하기 전에 미리 앞에서 설명했었던 쿠키 생성 예제를 실행하시길 바랍니다.

    <%@ page contentType="text/html; charset=utf-8" %>
    <%@ page import="util.CookieBox" %>
    <%
    	CookieBox cb = new CookieBox(request);    
    %>
    <html>
    <head> Cookie Create</head>
    <body>
    Cookie Name = <%= cb.getValue("name") %> <br>
    <%
    	if(cb.exists("id")) %>
    Cookie ID = <%= cb.getValue("id") %> <br>
    <%	}%>
    </body>
    </html>

     

     

    CookieBox를 활용한 로그인 페이지 만들기

     우리가 일상에서 접하는 대부분의 웹 사이트에는 로그인 기능이 있습니다. 이 로그인 기능은 쿠키를 사용하면 쉽게 구현할 수 있습니다. 로그인을 하게되면 쿠키를 생성하고, 쿠키가 존재하는 동안 로그인 상태라고 판단하는 것입니다. 그리고 로그아웃을 할 때 쿠키를 삭제해줍니다. 로그인 처리를 위한 JSP 페이지는 아래와 같습니다. 

     

    loginPage.jsp

    <%@ page contentType="text/html; charset=utf-8" %>
    <html>
    <head> Login Page </head>
    <body>
    
    <form action="<%= request.getContextPath()%>/login.jsp" method="post">
    ID <input type="text" name="id" size=10 >
    Password <input type="password" name="password" size=10 >
    <input type="submit" value="Log in" >
    </form>
    
    </body>
    </html>

    로그인 페이지

     

    login.jsp

    <%@ page contentType="text/html; charset=utf-8" %>
    <%@ page import="util.CookieBox" %>
    <%
    	String id = request.getParameter("id");
    	Srting password = request.getParameter("password");
    	
        	// id와 password가 같으면 로그인 성공
    	if(id.equals(password)) {
    		response.addCookie( CookieBox.createCookie("Login", "Success", "/", -1))
    		response.addCookie( CookieBox.createCookie("ID", id, "/", -1));
    %>
    <html>
    <head> Login Success </head>
    <body>
    Login Success
    </body>
    </html>
    <%
    	} else {
    %>
    <script>
    		alert("Login Fail");
    		history.go(-1);
    </script>
    <%
    	}
    %>

     

    로그인 성공

     

     

    로그인 실패

     

    CookieBox 클래스를 사용하기 위해서는 CookieBox.java 파일을 컴파일해서 CookieBox.class 파일을 생성해줘야 합니다. CookieBox.java 파일의 컴파일 방법은 명령 프롬프트(cmd)창에 아래와 같이 명령어를 실행해 주면 되겠습니다. 

     

    CookieBox.java 파일의 컴파일 방법 (명령 프롬프트 창에서 진행)

    C:\>set PATH=jdk경로\bin;%PATH%

    C:\>set CLASSPATH=apache-tomcat경로\lib\servlet-api.jar

    C:\>cd apache-tomcat경로\webapps\ch2\WEB-INF

    C:\...\apache-tomcat경로\webapps\ch2\WEB-INF>mkdir classes

    C:\...\apache-tomcat경로\webapps\ch2\WEB-INF>javac src\util\CookieBox.java

     


     이렇게 로그인 페이지를 완성했습니다. 로그인 페이지를 통해 로그인을 하고 로그인 여부를 확인하는 방법은 쿠키의 존재여부를 확인하면 됩니다.

     

     그렇다면 자연스럽게 로그아웃 처리는 쿠키를 삭제해주는 방식으로 기능을 구현할 수 있습니다. 

    쿠키를 삭제하는 방법은 아래와 같습니다. 

    response.addCookie( CookieBox.createCookie("LOGIN", "", "/", 0));
    response.addCookie( CookieBox.createCookie("ID", "", "/", 0));

     

    댓글

Camel`s Tistory.