1. JSP 페이지에서 세션 사용하는 방법
JSP 페이지에서는 session 내장변수를 바로 사용하기만 하면됩니다.(서블릿에서는 getSession 메소드를 호출했음..)
session.setAtrribute("ID", "abc123"); //세션 저장하기
String str = (String)session.getAttribute("ID"); //세션 가져오기
session.removeAttribute("ID"); // 세션 삭제하기
session.invalidate(); //세션 끝내기
예제 구성
다음과 같이 4개의 파일로 구성됩니다.
PersonalInfo.html
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>회원 가입</title>
</head>
<body>
개인 정보를 입력하세요.
<FORM ACTION=Agreement.jsp METHOD=POST>
아이디: <INPUT TYPE=TEXT NAME=ID><BR>
패스워드: <INPUT TYPE=PASSWORD NAME=PASSWORD><BR>
이름: <INPUT TYPE=TEXT NAME=NAME><BR>
<INPUT TYPE=SUBMIT VALUE='확인'>
</FORM>
</body>
</html>
Agreement.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%
request.setCharacterEncoding("euc-kr");
//INPUT태그의 값을 가져옴
String id = request.getParameter("ID");
String password = request.getParameter("PASSWORD");
String name = request.getParameter("NAME");
session.setAttribute("ID", id);//세션 데이터를 저장합니다.
session.setAttribute("PASSWORD", password);
session.setAttribute("NAME", name);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<h3>약관</h3>
1. 블라블라~!
2. 블라블라블라~!
<FORM ACTION=Subscribe.jsp METHOD=POST>
위의 약관에 동의하십니까?
<INPUT TYPE=RADIO NAME=AGREE VALUE=YES>동의함
<INPUT TYPE=RADIO NAME=AGREE VALUE=NO>동의하지않음 <BR><BR>
<INPUT TYPE=SUBMIT VALUE='확인'>
</FORM>
</body>
</html>
Subscribe.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@page import="java.io.*" %>
<%
String agree = request.getParameter("AGREE");
String result = null;
//동의를 누르면 YES값이 됨
if(agree.equals("YES")){
//세션 데이터를 읽어옵니다.
String id = (String)session.getAttribute("ID");
String password = (String)session.getAttribute("PASSWORD");
String name = (String)session.getAttribute("NAME");
PrintWriter writer = null;
try{
//파일에 쓰기위한 것
String filePath = application.getRealPath("WEB-INF" + id + ".txt");
writer = new PrintWriter(filePath);
writer.println("아이디: " + id);
writer.println("패스워드: " + password);
writer.println("이름: " + name);
result = "SUCCESS";
}catch(IOException ioe){
result = "FAIL";
}
finally{
try{
writer.close();
}catch(Exception e){
}
}
}
else{
result = "FAIL";
}
session.invalidate();//세션을 끝냅니다.
response.sendRedirect("Result.jsp?RESULT=" + result);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
Result.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%
String result = request.getParameter("RESULT");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
회원 가입 결과
<%
if(result.equals("SUCCESS"))
out.println("가입되었습니다.");
else
out.println("가입되지 않았습니다.");
%>
</body>
</html>
출력화면
첫화면
두번째화면
마지막 화면 SUCCESS를 보자
그리고 윈도우즈 탐색기를 열어 다음의 경로로 가보면 (참고로 저의 이클립스 workspace는 exjava입니다.
이클립스 workspace경로 \.metadata\.plugins\org.eclipse.wst.server.core\tmp4(서버번호)\wtpwebapps\프로젝트명
위와 같이 파일이 정상 생성되었습니다.
열어보면 다음과 같이 세션에서 불러온 값인 아이디 패스워드 이름이 저장되었네요.
'프로그래밍 > JSP Servlet' 카테고리의 다른 글
JSP/Servlet - init 메소드와 destroy 메소드 사용하기 (0) | 2016.01.03 |
---|---|
JSP/Servlet - 익셉션(exception) 타입별로 에러페이지 등록하기 (0) | 2016.01.02 |
JSP/Servlet - 서블릿 클래스에서 에러페이지 호출하기 (0) | 2015.12.30 |
JSP/Servlet - jsp 페이지에서 에러 발생시 다른 페이지로 이동하기 (0) | 2015.12.30 |
JSP/Servlet - 서블릿 클래스에서 세션 기술 사용 방법 (0) | 2015.12.27 |
JSP/Servlet - 쿠키(Cookie) 사용 방법 (0) | 2015.12.27 |
JSP/Servlet - include 메소드 사용법 (0) | 2015.12.21 |
JSP/Servlet - forward 메소드 사용법 (0) | 2015.12.21 |