티스토리 뷰
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 페이지가 새로 고침되는 것처럼 보인다.
로그아웃 클릭 후
반응형
'WEB > Java BackEnd' 카테고리의 다른 글
[WEB-jsp/servlet] Forward와 Redirect의 비교 (0) | 2021.11.30 |
---|---|
[WEB-jsp/servlet] Forward 예제 / RequestDispatcher (0) | 2021.11.30 |
[WEB-jsp/servlet] jsp와 servlet에서 session 구현하기 (0) | 2021.11.30 |
[WEB] 회원가입 폼 만들기 / getParameterValues() , trim(), join(), contains() (0) | 2021.11.25 |
[WEB-jsp/servlet] jsp에 jsp 삽입하기 (0) | 2021.11.24 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 자바
- 문자열
- 큐
- baekjoon
- web
- CSS
- 브루트 포스
- 프로그래머스
- 장고
- R
- 고득점 키트
- javascript
- 자바스크립트
- Case When
- jQuery
- 단계별로풀어보기
- 백준
- Oracle
- 스프링
- append
- Django
- 파이썬
- 정렬
- 덱
- brute force
- bootstrap
- Java
- jsp
- python
- html
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함