프로그래밍/JSP Servlet

JSP/Servlet - JSP페이지에서 세션 사용하는 방법

가카리 2015. 12. 29. 22:32
반응형

 

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\프로젝트명

 

위와 같이 파일이 정상 생성되었습니다.

 

열어보면 다음과 같이 세션에서 불러온 값인 아이디 패스워드 이름이 저장되었네요.

 

반응형