session을 사용하여 로그인 페이지를 만들어보자
세션(session)
- 서버에 사용자 정보를 저장
- 서버상에 존재하는 객체로 브라우저 단위당 1개씩 존재함
- 쿠키에 비하여 보안이 좋음
- 웹 브라우져를 닫기 전까지 클라이언트와 연결됨
세션 변수 만들기
session.setAttribute("변수명","값")
세션 값 읽어오기
session.getAttribute("변수명")
세션 값 삭제하기
session.invalidate();
세션과 쿠키가 다른점은 세션은 브라우저에 들어가자마자 생성되는 것으로 따로 생성할 필요 없이,
attribute로 값을 전달하게 된다.
// 6_login.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String userid=null; if(session.getAttribute("userid")!= null){ // 4. 세션 attribute중 userid 값이 존재하면, 그 값을 userid 변수에 저장한다. userid=(String)session.getAttribute("userid"); } %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>로그인</title> </head> <body> <p>로그인</p> <% if(userid== null){ // userid값이 null값이라면 로그인 페이지를 띄우고 %> <form method="post" action="6_login_ok.jsp"> // 1. 아이디와 비밀번호 값을 전달한다. <p>아이디: <input type="text" name="userid"></p> <p>비밀번호: <input type="password" name="userpw"></p> <p><input type="submit" value="로그인"></p> </form> <% }else{ // userid값이 존재할 경우 로그아웃 페이지를 활성화 %> <h3><%=userid %>님, 방문을 환영합니다.</h3> <p><input type="button" value="로그아웃" onclick="location.href='6_logout.jsp'"></p> <% } %> </body> </html> |
// 6_login_ok.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String userid=request.getParameter("userid"); // 2. 아이디와 패스워드 값을 가져온다. String userpw=request.getParameter("userpw"); // admin, 1234 if(userid.equals("admin") && userpw.equals("1234")){ session.setAttribute("userid","apple"); // 3. 아이디와 비밀번호가 맞을 경우 attribute를 생성한다. %> <script> alert('로그인되었습니다.') location.href="3_login.jsp" </script> <% }else{ %> <script> alert('아이디와 비밀번호를 확인해주세요') history.back(); </script> <% } %> |
// 6_logout.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% session.invalidate(); // 5. 세션값 초기화 %> <script> alert('로그아웃되었습니다.') location.href='6_login.jsp' </script> |
'개발자공부 (2021.11~현재) > JSP' 카테고리의 다른 글
JSP 게시판에서 파일 업로드하기 (0) | 2022.04.11 |
---|---|
Mybatis를 이용하여 게시판 CRUD 기능 구현하기 (0) | 2022.04.11 |
JSP로 만드는 로그인 페이지(쿠키사용) (0) | 2022.01.13 |
[JSP] JSP란? JSP 태그 사용법 (0) | 2022.01.13 |