JSP Cookie 로그인 아이디 저장

MINJU KIM·2023년 12월 4일

JSP

목록 보기
10/30

package com.util;

import javax.servlet.jsp.JspWriter;
//jspWriter 클래스 임포트. 기본 내장 객체인 out이 JspWriter 타입.


public class JsFunction {

    public static void alertLocation(String msg, String url, JspWriter out) {
 //alertLocation()은 알림창으로 메시지를 보여준 후, 명시한 URL로 이동하는 메서드.
 //매개변수를 3개 받는데, 각각의 의미가 다르다.
//String msg : 알림창에 띄울 메세지, String url : 알림창을 닫은 후 이동할 페이지의 url, JspWriter out : 자바 스크립트 코드를 삽입할 출력 스트림(jsp의 out내장 객체 )
        try {
            String script = "" //삽입할 자바스크립트 코드
                    + "<stript>"
                    + " aleft('" + msg + "');"
                    + "location.href='" + url + "';"
                    + "</script>";
            out.println(script); //자바스크립트 코드를 out 내장 객체로 출력(삽입)
        } catch (Exception e) {
        }
    }
    //메시지 알림창을 띄운 후 이전 페이지로 돌아갑니다.
    public static void alertBack(String msg, JspWriter out){
            try {
                String script = ""
                        + "<script>"
                        + " alert ('" + msg + "');"
                        + " history.back()"
                        + "</script>";
                        out.println(script);
            }
            catch (Exception e){

            }

    }


}

alertLocation()

알림창으로 메시지를 보여준 후, 명시한 URL로 이동하는 메서드.
매개변수를 3개 받는데, 각각의 의미가 다르다.

  • String msg : 알림창에 띄울 메세지
  • String url : 알림창을 닫은 후 이동할 페이지의 url
  • JspWriter out : 자바 스크립트 코드를 삽입할 출력 스트림(jsp의 out내장 객체

편의 기능 구현하기 : 쿠키 관리자

사용하는 쿠키가 많아지면 조건문은 복잡해질 수 밖에 없다. 그래서 쿠키를 편리하게 사용할 수 있게 도와주는 클래스를 작성해보자.

package com.util;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CookieManager {
    //쿠키 관리하기 위함.
//명시한 이름, 값, 유지기간 조건으로 새로운 쿠키를 생성합니다.
    public static void makeCookie(HttpServletResponse response, String cName, String cValue, int cTime){
        Cookie cookie = new Cookie(cName, cValue); //쿠키 생성
        cookie.setPath("/"); //경로 설정
        cookie.setMaxAge(cTime); //유지기간 설정
        response.addCookie(cookie); //응답 객체에 추가

    }
//명시한 이름의 쿠키를 찾아 그 값을 반환합니다.
    public static String readCookie(HttpServletRequest request, String cName){
        String cookieValue = ""; //반환 값

        Cookie[] cookies = request.getCookies();
        if(cookies != null){
            for(Cookie c : cookies){
                String cookieName = c.getName();
                if(cookieName.equals(cName)){
                    cookieValue = c.getValue(); //반환 값 갱신
                }
            }
        }
        return cookieValue;
    }
//명시한 이름의 쿠키를 삭제합니다.
public static void deleteCookie(HttpServletResponse response, String cName){
    makeCookie(response, cName, "", 0);
}
}

0개의 댓글