성장 일기/쌍용교육센터 / / 2023. 4. 4. 12:07

0404/forward, session

쌍용교육센터에서 공부한 내용을 정리하며 기록하는 글이고 주관적인 생각이 들어갈 수 있습니다.
잘못된 내용이나 피드백 및 생각 공유는 언제든 환영입니다.
댓글로 남겨주시면 확인 후 수정하겠습니다.
내용에 대한 소스 코드는 https://github.com/2jaehoon/sangyoungjsp에 올려두었습니다.

forward

  - 데이터 처리 페이지와 view 페이지를 분리하여 만들 때

    (Model2 방식의 개발에서 주로 사용)

  - 요청 시에 페이지 이동
  - 웹 브라우저는 페이지 이동을  모른다.

    (이전 페이지에 요청 parameter을 이동한 페이지에서 사용할 수 있다.

     URL이 변경되지 않는다.)
  - scope 객체에 값을 저장하여 이동한 페이지로 데이터를 처리한 결과 값을 보낼 수 있다.

// 1. 이동할 페이지를 설정하여 RequestDispatcher에 할당
RequestDispatcher rd=request.getRequestDispatcher("URI");

// 2. request scope 객체에 값 설정 – 이동할 페이지로 값을 넘겨줄 때
request.setAttribute("이름", 값 );

// 3. 이동
rd.forward( request, response );


request 내장 객체 (scope 객체)를 사용한 값 설정과 값 얻기

// 값 설정
request.setAttribute("이름",Object 값 );

// 값 얻기
입력된 클래스명 객체명 = (Castring)request.getAttribute("이름");

 

forward 동작

 

관계 유지

  - 웹은 비연결성( 요청이 발생하면 응답해주고 연결을 끊는다. )

  - 장점 : 접속자의 수가 많아도 연결을 유지하지 않기 때문에 저사양의 컴퓨터로도 
               웹 서버를 구성할 수 있다.
  - 단점 : 서버에서 발생한 데이터를 접속자에 실시간으로 보내줄 수 없다.
              (server push가 될 수 없다.)
               client pull로 해결할 수 있다.(접속자가 지정한 시간에 재 요청하여 데이터를 받는다.)

  - 서버는 접속자의 상태를 알 수 없다.

    (접속자가 현재 가진 값을 서버에서 알 수 없다.)
  - 서버가 접속자의 상태(값)를 알 수 있도록 저장하는 기술 개발
    세션, 쿠키

 

세션

  - 접속자의 정보를 서버 측 메모리에 저장하는 기술
  - 접속자가 어떤 브라우저를 사용하더라도 정보를 저장할 수 있다.
    (모든 접속자에 적용할 수 있다.)
  - 모든 종류의 데이터 저장 가능.(Object을 저장)
  - 자바에서는 session을 사용하기 위해 HttpSession 인터페이스를 제공한다.

 

쿠키

  - 접속자의 정보를 접속자 HDD에 file로 저장하는 기술
  - 문자열만 저장가능( 1MByte까지만 저장 )
  - 접속자의 웹 브라우저가 쿠키를 지원하지 않으면 정보를 저장할 수 없다.
    (접속자가 직접 제어 가능 – 중요 정보를 저장하지 않는다.)  

 

session

  - 내장 객체로 제공
  - <%@ page에  session="true" 인 상태에서 내장 객체를 사용할 수 있다.

* 세션이 필요한 이유

  - 웹은 접속자가 요청하면 커넥션이 연결되고, HTML이 응답되면 연결이 끊어진다.

    (이전 페이지에서 사용한 값이 다음 페이지에서 사용될 수 없다.)

 

세션

  - 사용자의 정보가 서버 측 메모리에 저장
  - 브라우저에 상관 없이 모든 접속자의 정보를 저장 가능
  - 쿠키보다 중요한 정보를 저장
  - 모든 종류의 데이터를 저장할 수 있다.

 

쿠키

  - 사용자의 정보가 접속자 HDD에 저장
  - 사용자의 설정에 따라 쿠키가 생성되지 않거나,
    생성된 쿠키도 삭제 될 수 있다.
  - 중요도 없는 정보를 저장
  - 문자열만 저장 가능하다.

 

세션 사용

 - 접속자의 웹 브라우저에 id를 부여하고 식별하여 정보를 저장한다.
 - 접속자의 웹 브라우저가 종료되면 사라진다.
 - apache tomcat에서는 세션 유지 시간을 30분으로 설정하고 있다.

    (web.xml 에 <session-timeout>을 설정한다.)

// 1. 세션얻기 WAS가 실행되면 세션이 생성된 상태 <%@ page에 지정

session="true" // 내장 객체로 바로 사용할 수 있다.
 
session="false"// 요청 객체로부터 세션을 얻는다.
HttpSession session=request.getSession();

// 2. 세션의 생존시간 설정 ( web.xml에서 할 수 있다.)
// - 한번 설정하면 모든 jsp에 동일 시간으로 설정된다.
session.setMaxInactiveInterval( 초 ) ;

// 3. 값 할당
// 값은 Object이기 때문에 모든 값을 할당 할 수 있다.
session.setAttribute("이름", 값);

// 4. 값 사용( 할당된 값은 모든 jsp에서 사용자를 식별하여 사용할 수 있다.)
데이터형 변수명=(Casting)session.getAttribute("이름");

// 5. 세션 값 삭제
session.removeAttribute("이름");

// 6. 브라우저에 할당된 session 무효화
// ( 다른 URL로 접속하면 세션이 다시 할당된다. )
session.invalidate();



'성장 일기 > 쌍용교육센터' 카테고리의 다른 글

0407/useBean, setProperty, getProperty  (0) 2023.04.07
0406/cookie, JSP 액션태그  (0) 2023.04.06
0403/JSP 페이지 이동  (0) 2023.04.04
0331/Web Parameter, get, post  (0) 2023.04.04
0330/지시자, 내장 객체  (0) 2023.03.30
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유