일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- #JSP #Servlet #세션 #Session #제이에스피 #서블릿 #web.xml #세션알림 #알림팝업 #세션알림팝업 #session-timeout
- #JAVA #정보은닉 #접근제어자 #private
- #JSP #Servlet #contextroot #contentdirectory
- #JSP #Servlet #제이에스피 #서블릿 #필터 #filter #web.xml #필터예제 #filter예제
- #.war #Export
- Listener #jsp #servlet #ServletContextListener #리스너
- #JSP #Servlet #@WebServlet #urlPatterns
- #깃 #Git #Git cherry-pick #체리픽 #깃 체리픽
- #게터 #세터
- JAVA #JSP #Servlet #Exception #custom #익셉션 #에러처리 #에러
- #JSP #Servlet #Ajax #에이젝스 #HTML #success #.HTML() #HTML로붙이기
- #JSP #Servlet #서블릿 #쿠키 #cookie #Cookie #쿠키클래스 #쿠키유틸클래스 #cookieClass #cookieUtilClass #Cookie #제이에스피
- Git #Stash #깃 #스테시 #임시저장 #소스트리 #협업툴
- #JSP #Servlet #세션 #Session #제이에스피 #서블릿
- #JSP #Servlet #제이에스피 #서블릿 #필터 #Filter @WebFilter #어노테이션필터
- #JSP #Servlet #Exception #errorPage #web.xml #error-page #error-code #에러 #익셉션 #java
- #유틸클래스 #VO
- JSP #Servlet #Exception #errorPage #web.xml #error-page #error-code #에러 #익셉션 #java
- #Git #Git Merge #깃 병합
- #JSP #Servlet #제이에스피 #서블릿 #세션 #session #세션로그인 #세션예제
- JSP #Servlet #Exception #error #page #errorpage #exceptionPage #Customerror #톰캣 #404 #에러페이지 #java
- #Servlet #servletClass #servletURL #servlet구현 #JSP
- Today
- Total
David의 블로그
[JSP/Servlet]상태를 유지할 수 있는 Session, 세션(첫번째) 본문
[Session, 세션]
클라이언트가 웹 브라우저를 통해 서버에 접속한 후, 용무를 처리하고 웹 브라우저를 닫아
서버와의 접속을 종료하는 하나의 단위를 의미한다.
쉽게 말해, 세션은 클라이언트가 서버에 접속해 있는 동안 그 상태를 유지하는 것이 목적이다.
그리고 세션은 쿠키와 비교했을 때, 보안적으로 더 우수하다.
이유는 쿠키는 웹 브라우저에 저장이 되는 반면, 세션은 서버에서 생성되고 저장되기 때문이다.
또, 웹 브라우저를 닫으면(==서버와의 접속 끊음) 세션은 끊기고 다시 접속 시, 새로운 세션이 생성된다.
앞으로 포스팅 해 볼 세션연습은
1. 간단한 세션예제로 로그인 연습
2. 세션멤버변수를 유틸클래스(VO)로 이용해 화면에 뿌려주기
3. web.xml에 세션타임아웃을 등록하여 하나의 페이지에서 세션종료 알림 팝업 만들기
을 해 볼 것이다.
[간단한 세션예제로 로그인 연습]
[sessionLoginForm.jsp]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인폼</title>
</head>
<body>
<form action="<%=request.getContextPath() %>/member/sessionLogin.jsp" method="post">
아이디 : <input type="text" name="id" size="10"/>
비밀번호 : <input type="password" name="password" size="10"/>
<input type="submit" value="로그인"/>
</form>
</body>
</html>
|
cs |
세션 로그인 폼이다.
아이디와 비밀번호 태그를 만들었다.
로그인 버튼을 누르면 sessionLogin.jsp 액션을 취한다.
[sessionLogin.jsp]
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
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String id = request.getParameter("id");
String pw = request.getParameter("password");
if (id.equals(pw)) {
session.setAttribute("MEMBERID", id);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인 성공!</title>
</head>
<body>
로그인에 성공했습니다!!
</body>
</html>
<% } else { %>
<script>
alert('로그인에 실패했씁니다!');
history.go(-1);
</script>
<% } %>
|
cs |
간단한 예제인 만큼 DB연동 없이
아이디와 비밀번호를 동일하게 입력했다면, 세션을 MEMBERID로 만들어주었다.
세션 멤버변수를 만들어 줄 때는 'session.setAttribute()'메소드를 쓰면 된다.
만약
아이디와 비밀번호를 다르게 입력했다면,
알럿창이 뜨고, history.go(-1)로 인해 다시 로그인 폼 화면(sessionLoginForm.jsp)으로 돌아 갈 것이다.
[sessionLoginCheck.jsp]
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
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String memberId = (String)session.getAttribute("MEMBERID");
boolean login = memberId == null? false : true;
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인 여부 검사</title>
</head>
<body>
<%
if (login) {
%>
아이디 : "<%=memberId %>"로 로그인 한 상태
<%
} else {
%>
로그인하지 않은 상태
<%
}
%>
</body>
</html>
|
cs |
세션 멤버변수를 가져와서
로그인 정보가 존재하는지 안하는지 분기하는 화면이다.
로그인 정보가 있다면 로그인 정보를 뿌려준다.
세션 멤버변수를 가져올 때
'session.getAttribute()'메소드를 쓰면 된다.
[sessionLogout.jsp]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
session.invalidate();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그아웃</title>
</head>
<body>
<script type="text/javascript">
alert("로그아웃 됐습니다.");
location.href="./sessionLoginForm.jsp";
</script>
</body>
</html>
|
cs |
등록되어 있는 세션멤버변수를 삭제한다.
'session.invalidate()'메소드를 쓰면 된다.
이 메소드 외에도 'session.removeAttribute()'메소드가 있다.
첫번째, invalidate() 메소드는 모든 세션 속성값을 지우는 것이다.
두번째, removeAttribute() 메소드는 특정 속성값을 지울 때 사용된다.
[결과]
아이디 / 비밀번호 동일하게 aa로 넣어줬다.
아이디 / 비밀번호 다르게 넣어줬을 경우.
세션에 등록된 속성값 확인.
로그아웃 되는 동시에 세션이 삭제된다.
'프로그래밍 > Jsp_Servlet' 카테고리의 다른 글
[JSP/Servlet]상태를 유지할 수 있는 Session, 세션(세번째) (0) | 2024.01.20 |
---|---|
[JSP/Servlet]상태를 유지할 수 있는 Session, 세션(두번째) (0) | 2024.01.20 |
[JSP/Servlet]정보를 저장할 수 있는 객체 쿠키.Cookie (1) | 2024.01.06 |
[JSP/Servlet]Listener 리스너 (2) | 2023.12.19 |
[JSP/Servlet] Custom Error페이지 만들기3 (1) | 2023.12.02 |