쌍용교육센터에서 공부한 내용을 정리하며 기록하는 글이고 주관적인 생각이 들어갈 수 있습니다.
잘못된 내용이나 피드백 및 생각 공유는 언제든 환영입니다.
댓글로 남겨주시면 확인 후 수정하겠습니다.
내용에 대한 소스 코드는 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 |