* 쿠키/세션 비교
|
쿠키 |
세션 |
저장위치 |
클라이언트 |
서버 |
보안 |
변질 우려로 인해 보안 취약 |
비교적 보안성이 좋음 |
라이프 사이클 |
만료 기간 지정, 브라우저 종료 시에도 유지 |
브라우저 종료시 삭제 (기간 지정이 가능하긴 함) |
속도 |
빠름 |
느림 (서버에 정보가 있으므로) |
출처: https://ryusae.tistory.com/7 [초보자 전용 마을]
쿠키란?
- 보안에 취약
- 서버와 클라이언트가 연결을 시도한 흔적을 남겼다가 나중에 흔적을 가지고 사용할 수 있도록 함
- HTTP 프로토콜은 특징이있다.
쿠키구현
* 출처:
for each문
기본 사용법
for (변수 : 반복 가능한 객체) {
// 실행문
}
for each문은 배열과 같이 여러 가지 값들이 들어 있는 객체에 대해 순차적으로 반복문을 실행할 수 있는 문법입니다.
결과
public static void main(String[] args) {
int[] array = {1, 2, 3, 4};
for (int e : array) {
System.out.println(e); // 1, 2, 3, 4
}
}
':'를 기준으로 왼쪽에는 하나의 변수를 선언하고, 오른쪽에는 배열이나 리스트 같은 연속된 값들을 넣어줍니다. 만약 array부분에 배열이 들어간다면 배열의 첫 번째 값을 e에 넣고 수행문을 실행합니다. 실행이 끝나고 다시 e에 두 번째 값을 넣어 실행하는 식으로 모든 요소를 순차적으로 한 번씩 e에 대입하여 실행합니다. 따라서 요소의 개수만큼 반복을 진행하게 됩니다.
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login Page</title>
</head>
<body>
<%
Cookie[] cookies = request.getCookies();
System.out.println("cookies:" + cookies);
if(cookies != null) {
for(Cookie c : cookies) {
if(c.getName().equals("memberID")) {
response.sendRedirect("loginOk.jsp");
}
}
}
%>
<form action="loginCon" method = "post">
ID : <input type = "text" name ="mID"><br>
PW : <input type = "password" name ="mPW"><br>
<input type ="submit" value ="login">
</form>
</body>
</html>
loginCon.java
package com.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.Cookie;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class loginCon
*/
@WebServlet("/loginCon")
public class loginCon extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//login.jsp에서 사용자가 입력한 데이터 정보를 가져
PrintWriter out = response.getWriter();
String mId = request.getParameter("mID");
String mPw = request.getParameter("mPW");
out.print("mid : " + mId);
out.print("mid : " + mPw);
//쿠키에 저장
Cookie[] cookies = request.getCookies();
Cookie cookie = null;
for(Cookie c : cookies) {
System.out.println("c.getName() : " + c.getName() + ", c.getValue() : " + c.getValue());
if(c.getName().equals("memberId")) {
cookie = c;
}
}
if(cookie == null) {
System.out.println("cookie is null");
cookie = new Cookie("memberId", mId);
}
response.addCookie(cookie);
cookie.setMaxAge(60*60); //쿠키의 유효기
response.sendRedirect("loginOK.jsp");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
loginOk.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>loginOk.jsp</title>
</head>
<body>
<%
Cookie[] cookies = request.getCookies();
for(Cookie c : cookies) {
out.print("name:" + c.getName()+"<br>");
out.print("value:" + c.getValue()+"<br>");
out.print("------------------------");
}
%>
</body>
</html>
'[WEB]' 카테고리의 다른 글
[jsp / servlet] PrintWriter out = response.getWriter(); (0) | 2020.07.11 |
---|---|
[HTML5] <form> 태그_GET과 POST (0) | 2020.07.05 |
[JSP] Servlet 데이터 공유 (0) | 2020.07.05 |
[JSP] JSP 내장객체 : config / application / out / exception 객체 (0) | 2020.07.04 |
[JSP] JSP Request, Response (0) | 2020.06.22 |