본문 바로가기

JSP

응답 래퍼 클래스

CookieLowerCaseResponseWrapper.java 
(쿠키 데이터에 포함된 모든 대문자를 소문자로 바꾸는 응답래퍼 클래스)

package filter;


import javax.servlet.ServletResponse;

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

public class CookieLowerCaseResponseWrapper extends HttpServletResponseWrapper {

     private HttpServletResponse response;

     public CookieLowerCaseResponseWrapper(HttpServletResponse response) {
         super (response);
         // TODO Auto-generated constructor stub
         this .response = response;
        
    }
    
     public void addCookie(Cookie cookie){
        String value = cookie.getValue();
        String newValue = value.toLowerCase();
        cookie.setValue(newValue);
         response.addCookie(cookie);
    }

}


CookieLowerCaseFilter.java

(응답 래퍼 클래스를 사용하는 필터 클래스)


package filter;

import java.io.IOException;


import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet Filter implementation class CookieLowerCaseFilter
 */
@WebFilter ("*.jsp" )
public class CookieLowerCaseFilter implements Filter {
     public void init(FilterConfig config) throws ServletException{
        
    }
    /**
     * Default constructor.
     */
    public CookieLowerCaseFilter() {
        // TODO Auto-generated constructor stub
    }

     /**
     * @see Filter#destroy()
     */
     public void destroy() {
         // TODO Auto-generated method stub
    }

     /**
    
     * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
     */
     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
         // TODO Auto-generated method stub
         // place your code here
        CookieLowerCaseResponseWrapper responseWrapper =
                 new CookieLowerCaseResponseWrapper((HttpServletResponse) response);
         // pass the request along the filter chain
        chain.doFilter(request, responseWrapper);
    }

}


CookieSaver.jsp

<%@ page language= "java" contentType ="text/html; charset=UTF-8"
    pageEncoding= "UTF-8" %>

<%
    Cookie cookie = new Cookie("CART" , "Lemon, Apple, Chocolate");
    response.addCookie(cookie);
%>

<! DOCTYPE html>
< html>
< head>
< meta charset= "UTF-8" >
< title> Insert title here </title >
</ head>
< body>
    쿠키가 저장되었습니다.
</ body>
</ html>


CookieRetriever.jsp


<%@ page language= "java" contentType ="text/html; charset=UTF-8"
    pageEncoding= "UTF-8" %>

<! DOCTYPE html>
< html>
< head>
< meta charset= "UTF-8" >
< title> Insert title here </title >
</ head>
< body>
    CART = ${cookie.CART.value}
</ body>

</ html>