일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- #git #commit #message #깃커밋 #메시지 #gitmessage #누락 #reset #mixed #마지막커밋정정하기
- #프로그래머스 #코딩 #자바 #문자열묶기
- #프로그래머스 #코딩 #자바 #왼쪽오른쪽
- #프로그래머스 #코딩 #x사이의개수
- #프로그래머스 #자바 #코딩 #배열만들기2
- #프로그래머스 #코딩 #문자열잘라서정렬하기
- #프로그래머스 #자바 #코딩 #무작위로k개의수뽑기
- #프로그래머스 #코딩 #자바 #빈배열에추가삭제하기
- #프로그래머스 #코딩 #자바 #리스트자르기
- #JSP #Servlet #제이에스피 #서블릿 #필터 #Filter @WebFilter #어노테이션필터
- #프로그래머스 #자바 #코딩 #특정문자열로끝나는가장긴부분문자열찾기
- #프로그래머스 #코딩 #자바 #문자열이몇번등장하는지세기
- #JSP #Servlet #제이에스피 #서블릿 #필터 #filter #web.xml #필터예제 #filter예제
- #프로그래머스 #코딩 #자바 #수열과구간쿼리3
- #프로그래머스 #코딩 #배열비교하기
- #프로그래머스 #코딩 #자바 #2의영역
- #프로그래머스 #코딩 #l로만들기
- 코딩 #자바 #조건에맞게수열변환하기2
- #프로그래머스 #코딩 #문자열뒤집기 #자바
- #프로그래머스 #코딩 #배열의길이에따라다른연산하기
- #프로그래머스 #자바 #코딩 #전국대회선발
- #프로그래머스 #코딩 #글자지우기 #자바
- #JSP #Servlet #Ajax #에이젝스 #HTML #success #.HTML() #HTML로붙이기
- #프로그래머스 #코딩 #배열원소 삭제하기
- #프로그래머스 #코딩 #자바 #수열과구간쿼리1
- #프로그래머스 #코딩 #자바 #수열과구간쿼리2
- #프로그래머스
- #프로그래머스 #코딩 #배열만들기3
- #프로그래머스 #코딩 #자바 #문자열여러번뒤집기
- #프로그래머스 #코딩 #순서바꾸기
- 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 |