mvc
2024. 1. 11. 22:25ㆍDaily 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 |