티스토리 뷰

728x90
반응형

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>/index.jsp</title>
</head>
<body>
	<h1>인덱스 페이지 입니다.</h1>
	<form action="test/tweet.jsp" method="post">
		<input type="text" name="msg" placeholder="서버에 할 말 입력..." />
		<button type="submit">전송</button>
	</form>
	
	
	<%
	//로그인된 아이디가 있는지 읽어와보기
	String id =(String)session.getAttribute("id");
	%>
	
	<%if(id==null){%>
		<h2>가상의 로그인 폼</h2>
		<form action="test/login.jsp" method = "post">
		<input type="text" name="id" placeholder="아이디..."/>
		<input type="password" name="pwd" placehloder="비밀번호..."/>
		<button type="submit">로그인</button>
		</form>
	<%}else{ %>	
		<p>
			<strong><%=id %></strong>님 로그인 중...
			<a href="test/logout.jsp">로그아웃</a>
		</p>
		
	<%} %>
	<ul>
		<li><a href="test/loginform.jsp">로그인 하러가기</a></li>
		<li><a href="private/play.jsp">놀러가기(로그인 필요)</a></li>
		<li><a href="private/study.jsp">공부하러 가기(로그인 필요)</a></li>
	</ul>
	<a href="test/busan.jsp">부산가기</a>
	<a href="test/incheon.jsp">인천가기</a>
	
</body>
</html>

아이디: gura, 비밀번호: 1234가 DB에 저장된 유효한 정보라고 가정해보자.


login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    //1. 폼 전송되는 아이디와 비밀번호 읽어오기
    String id = request.getParameter("id");
    String pwd = request.getParameter("pwd");
    //2. DB에 해당 회원의 정보가 있는지와 있다면 비밀번호 일치 여부 확인하기
    //아이디: gura, 비밀번호:1234가 DB에 저장된 유효한 정보라고 가정해보자.
    boolean isValid =false;
    if(id.equals("gura")&&pwd.equals("1234")){
    	isValid = true;
    	//로그인 했다는 의미에서 session scope 에 "id"라는 키값으로 로그인된 아이디를 담는다.
    	session.setAttribute("id",id);
    }
    //3. 회원 정보가 맞으면 로그인 처리 후 응답, 틀리면 로그인 실패라고 응답
    
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>/test/login.jsp</title>
</head>
<body>
<%if(isValid){ %>
	<p>
		<strong><%=id %></strong>회원님 로그인 되었습니다.
		<a href="${pageContext.request.contextPath}/index.jsp">확인</a>
	</p>
<%}else{ %>
	<p>
		아이디 혹은 비밀번호가 틀렸습니다.
		<a href="${pageContext.request.contextPath}/index.jsp">다시 시도</a>
	</p>
<%} %>



</body>
</html>

아이디와 비밀번호가 일치할 때 

 

1. isValid를 true로 바꾸기

2. 로그인 했다는 의미로 session scope에 "id"라는 키값으로 로그인된 아이디 담기

3. isValid가 참이면 "OOO 회원님 로그인 되었습니다." 를 출력하고 "확인" 링크를 누르면 index.jsp로 이동

 

 

"확인" 클릭 시


아이디 혹은 비밀번호 중 하나라도 일치하지 않을 때

 

1. isValid는 false이므로 "다시 시도" 링크 클릭 시, index.jsp로 이동

 


logout.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
  //1.session scope에 "id"라는 키값으로 저장된 값을 삭제한다.
	session.removeAttribute("id");
    //2. 응답(특정페이지로 요청을 다시 하라는 리다이렉트로 응답)
    String cPath = request.getContextPath();
    response.sendRedirect(cPath+"/index.jsp");
%>

removeAttribute로 저장된 값 삭제하고 sendRedirect로 리다이렉트 응답

리다이렉트 응답을 했으므로, "로그아웃" 클릭 시, 다른 페이지로 이동하지 않고 index 페이지가 새로 고침되는 것처럼 보인다.

 

 

로그아웃 클릭 후

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함