본문 바로가기
JSP

221130 cookie실습

cookie_ex02

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	/*
	이 페이지 처음 진입하면 idCheck쿠키를 찾아서 값을 얻고 아이디 태그안에
	미리 값을 넣어주는 코드를 작성합니다.
	input태그에 value속성을 쓰면 됩니다.
	*/

	Cookie[] arr =request.getCookies();
	String idex = "";//쿠키가 없으면 공백값으로
	if(arr!=null){
		for(Cookie c : arr){
			if(c.getName().equals("idc")){
				idex=c.getValue();
			}
		}
	}

%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h2>쿠키 로그인 연습</h2>
	
	<form action="cookie_ex02_ok.jsp" method="post">
	
		아이디:<input type="text" name="id" size="10" value="<%=idex%>"><br>
		비밀번호:<input type="password" name="pw" size="10"><br>
	
		<input type="submit" value="로그인">
		<input type="checkbox" name="idCheck" value="y" >아이디기억하기
	
	</form>

</body>
</html>

아이디태그에 value="<%=idex%>"식의 구문을 적는 것이 가능함

아이디체크쿠키가 없으면 String idex=""이므로 입력칸에 아무것도 없고,

쿠키가 있으면 입력칸에 값이 출력되어있음 

 

cookie_ex02_ok

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	
	request.setCharacterEncoding("utf-8");

	String id=request.getParameter("id");
	String pw=request.getParameter("pw");
	
	String idCheck=request.getParameter("idCheck");
	

	//로그인 성공이라 가정
	if(id.equals("aaa123")&&pw.equals("1234")){
		
		//로그인 성공시 id쿠키생성 
		Cookie cookie = new Cookie("user_id",id);
		cookie.setMaxAge(1800);
		response.addCookie(cookie);
		
		//idCheck쿠키
		//사용자가 체크박스를 체크했다면 idcheck쿠키 생성. 시간은 30초
		if(idCheck!=null){//null은 string이 아니기 때문에 비교가 불가. nullpointexception이 발생한다.
			Cookie idcheck = new Cookie("idc",id);
			idcheck.setMaxAge(30);
			response.addCookie(idcheck);
		}else{
			//체크가 되어있지 않다면 쿠키를 지우기
			Cookie idcheck = new Cookie("idc",id);
			idcheck.setMaxAge(0);
			response.addCookie(idcheck);
		}
		response.sendRedirect("cookie_ex02_welcome.jsp");//성공페이지
		
		//로그인 실패시
	}else{
		if(idCheck!=null){
			Cookie idcheck = new Cookie("idc",id);
			idcheck.setMaxAge(30);
			response.addCookie(idcheck);
		}else{
			Cookie idcheck = new Cookie("idc",id);
			idcheck.setMaxAge(0);
			response.addCookie(idcheck);
		}
		response.sendRedirect("cookie_ex02.jsp");//다시 로그인 화면으로	
	}
%>

로그인 실패,체크안함

->쿠키생성되지 않고, 다시 로그인페이지로 돌아오며 입력칸 전부 빈칸

로그인실패,체크함

->쿠키생성됨, 다시 로그인페이지로 돌아옴, 입력칸에 이전에 적은 아이디 출력되어있음

로그인성공, 체크안함

->welcome페이지로 이동, 아이디체크쿠키생성x, 아이디쿠키생성됨, 다시 로그인페이지로 돌아가면 입력칸 전부 빈칸

로그인성공,체크함

->welcome페이지로 이동, 쿠키 둘 다 생성, 다시 로그인페이지로 돌아가면 이전에 적은 아이디 출력되어있음

 

 

cookie_ex02_welcome

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

	//user_id쿠키를 찾는 작업
	Cookie[] arr=request.getCookies();
	
	String id ="";

	if(arr!=null){
		for(Cookie c : arr){
			if(c.getName().equals("user_id")){
				id=c.getValue();
			}
		}
	}



%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	어서오세요. <%=id%>님<br>
	<a href="cookie_ex02.jsp">돌아가기</a>
	
</body>
</html>

'JSP' 카테고리의 다른 글

221130 session실습  (0) 2022.11.30
221130 session  (0) 2022.11.30
221130 Cookie  (0) 2022.11.30
221130 jsp out  (0) 2022.11.30
221130 jsp태그 class와 id, style맛보기  (0) 2022.11.30