<session★★★>
예전엔 쿠키를 사용했으나 보안이 약하다는 단점이 있었음
===> 세션
-id: 식별자. 처음 접근한 클라이언트에게 식별자 발급
-변수: 데이터 저장 in 서버의 메모리(언제 어디서나, 단, 나의 데이터만 접근 가능. 개별 변수)
-> id와 데이터(id, 비밀번호 등)를 통해 인증한다.
*default: 30분간 서버에 데이터 저장
<예제>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Session Example1</h1>
아이디: <input name = "id"><p/>
비밀번호: <input type = "password" name = "pwd">
<input type = "submit" value = "로그인">
</form>
</body>
</html>
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
id와 비밀번호를 입력하는 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
31
32
33
34
35
36
37
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
session = "true"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8");
String id = request.getParameter("id");
String pwd = request.getParameter("pwd");
session.setAttribute("idkey", id);
session.setMaxInactiveInterval(60 * 5);
%>
<h1>Session Example1</h1>
1. 가장 좋아하는 계절은?<br/>
<input type = "radio" name = "season" value = "봄">봄
<input type = "radio" name = "season" value = "여름">여름
<input type = "radio" name = "season" value = "가을">가을
<input type = "radio" name = "season" value = "겨울">겨울<p/>
2. 가장 좋아하는 과일은?<br/>
<input type = "radio" name = "fruit" value = "watermelon">수박
<input type = "radio" name = "fruit" value = "melon">멜론
<input type = "radio" name = "fruit" value = "apple">사과
<input type = "radio" name = "fruit" value = "orange">오렌지<p/>
<input type = "submit" value = "결과보기">
</form>
</body>
</html>
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
로그인 뒤 또다른 데이터를 전송하는 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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8");
String season = request.getParameter("season");
String fruit = request.getParameter("fruit");
String id = (String)session.getAttribute("idkey");
int intervalTime = session.getMaxInactiveInterval();
if(id != null) {
%>
<h1>Session Example1</h1>
<b><%= id %></b>님이 좋아하는 계절과 과일은<p/>
<b><%= season %></b>과 <b><%=fruit %></b> 입니다.<p/>
세션 ID: <%= sessionId %>
세션 유지 시간: <%= intervalTime %>초<p/>
<%
session.invalidate();
}
else {
out.println("세션의 시간이 경과했거나 다른 이유로 연결을 할 수가 없습니다.");
}
%>
</body>
</html>
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
입력된 데이터와 결과값을 보여주는 페이지
<application>
: application 객체는 서블릿 또는 어플리케이션 외부 환경 정보(Context)를 나타내는 내부 객체이다. 어플리케이션이 실행되는 서버의 정보와 서버 측 자원에 대한 정보를 얻어내거나, 이벤트 로그와 관련된 기능을 제공한다.
-메소드
String getServerInfo()
: 서블릿 컨테이너의 이름과 버전 반환
String getMimeType(fileName)
:지정한 파일의 mime 타입(코딩 타입) 반환
String getRealPath(url)
: URL을 로컬 파일 시스템으로 변경해 반환
void log(message)
: 로크 파일에 message를 기록
<예제>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String serverInfo = application.getServerInfo();
String realPath = application.getRealPath("/");
application.log("application 내부 객체 로그 테스트");
%>
<h1>Application Example1</h1>
서블릿 컨테이너.의 이름과 버전: <%= serverInfo %><p/>
로컬 파일 시스템 경로: <%= realPath %>
</body>
</html>
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
-실행
<pageContext>
: pageContext객체는 현재 jsp의 Context를 나타내며, pageContext 내부 객체를 통해 다른 내부 객체에 접근할 수 있다.
ex. out 내부 객체를 구하고자 할 경우
JspWriter pageOut = pageContext.getOut();
'20.03 ~ 20.08 국비교육 > JSP' 카테고리의 다른 글
자바빈즈(JavaBeans) (0) | 2020.04.27 |
---|---|
내부객체3. page, config, exception (0) | 2020.04.24 |
내부객체1. request, response, out (0) | 2020.04.23 |
내부 객체(Implicit Object) (0) | 2020.04.23 |
액션(Action) (0) | 2020.04.23 |