mvc

2024. 1. 11. 22:25Daily Codig Reminder

cookie 클래스를 이용한 세션처리

 

쿠키는 사용자의 상태정보를 클라이언트에서 관리하는 매커니즘을 의미한다.

package com.controller;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class GetCookie
 */
@WebServlet("/GetCookie")
public class GetCookie extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		//1.요청에서 쿠키 열기
		Cookie[] cookies = request.getCookies();
		
		response.setContentType("text/html; charset=utf-8");
		
//2. 쿠키 사용하기		
		for (Cookie c : cookies) {
			if("username".equals(c.getName())) {
				String name = c.getName();
				String value = c.getValue();
				System.out.println(name+"\t"+value);
			}
		}
	}

}

 

 

package com.controller;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class SetCookie
 */
@WebServlet("/SetCookie")
public class SetCookie extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public SetCookie() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//1. 쿠키 생성
		Cookie c = new Cookie ("username", "홍길동");
		Cookie c1 = new Cookie ("age", "10");
		//2. 작업 후 응답에 쿠키 시간 설정 후 추가
		c.setMaxAge(60*69*24); //시간성정 필수
		response.addCookie(c);
		response.addCookie(c1);
		System.out.println("쿠키 담기 성공");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 

 

package com.controller;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class LoginServlet
 */
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		String userid=(String)request.getParameter("userid");
		String passwd=(String)request.getParameter("passwd");
		
		if(userid.equals("abcd")&&passwd.equals("1234")) {//회원 인증시 
			
//			HttpSession session = request.getSession();
//			session.setAttribute("userid", userid);
//			session.setAttribute("passwd", passswd);
			//쿠키 생성 userid,abcd,   passwd. 1234 클라이언트에 저장
			//
			Cookie c1 = new Cookie("userid",userid);
            Cookie c2 = new Cookie("passwd",passwd);//쿠키 생성

            c1.setMaxAge(60*60*24);
            c2.setMaxAge(60*60*24); //쿠키 시간
            response.addCookie(c1);
            response.addCookie(c2);//쿠키 pc에 담기 성공
			response.sendRedirect("loginInfo.jsp");	
			
		}else {
			response.sendRedirect("loginForm.jsp");	
		}

		
	
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 

 

package com.controller;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * Servlet implementation class LoginInfoServlet
 */
@WebServlet("/LoginInfoServlet")
public class LoginInfoServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		HttpSession session= request.getSession();
		String key=null;
		String value=null;
		Cookie[] cookies= request.getCookies();  //쿠키들의 배열 
		
		
		//2. 쿠키 사용하기
			for (Cookie c : cookies) {
				if("userid".equals(c.getName())) {
					 key= c.getName();  //key
					 value= c.getValue(); //value
					 System.out.println(key+"\t"+value);
					
				}
			}
		if(key!=null) {//회원인지 검사 
			response.sendRedirect("mypage.jsp");
		}else {
			response.sendRedirect("error.jsp");
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

'Daily Codig Reminder' 카테고리의 다른 글

el, jstl  (1) 2024.01.11
jquery  (0) 2024.01.11
jsp2  (0) 2024.01.04
5장- jsp  (0) 2024.01.04
servlet 2 + my batis  (1) 2024.01.02