[JSP] redirect, cookie, session

*response

-javax.servlet.http.HttpServletResponse가 데이터 형인 객체.

-redirect방식의 페이지이동, 무조건 다운로드

 

*redirect

 -response내장객체에서 제공하는 기능.

 -sendRedirect() 사용하여 페이지를 이동.

 -정상적인 요청이 있을 때 응답되는 페이지에서, 비정상적인 요청이 발생 했을 때

   사용하는 페이지 이동기술.

사용법)

  response.sendRedirect(“이동할페이지의 URL”);

 

*<meta> 태그로 지정한 시간에 페이지를 이동

  -최초접속페이지(index.html)에서 최초 서비스하는 페이지로 이동할 때사용.

<meta http-equiv=“refresh” content=“;URL”>

 

*out 내장객체

 - scriptlet안에서 웹 브라우저로 출력할 때 사용.

 - JSPWriter가 원본객체

 

사용법)

  <%

   out.print( ); // 소스보기 시에 줄 변경되지 않게 출력

   out.println( ); //소스보기 시에 줄 변경되어 출력

 %>

 

 

*관계유지

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

    장점 : 접속자 수가 많아도 연결을 유지하지 않기 때문에, 저 사양의 컴퓨터로도 웹 서버를

             구성할 수 있다.

    단점 : 서버는 접속자의 상태를 알 수 없다. ( server push가 될 수 없다.)

             서버의 데이터를 클라이언트가 요청하여 받아오는 client pull로 해결할 수 있다.

           

   - 접속자의 상태를 알 수 가 없다.

   - 서버에서 접속자의 상태()를 알 수 있도록 저장하는 기술 지원.


 

*cookie

 - 접속자의 정보를 접속자의 HDD  file로 저장하는 기술.

 - 문자열만 저장가능. ( 1Mbyte까지만 저장 가능)

 - 접속자가 차단하거나, 웹 브라우저에서 쿠키를 지원하지 않으면 사용할 수 없다.

 - 접속자가 쿠키를 확인하고, 변조 할 수 있다. – 중요한 정보를 저장하지 않는다.

 

 - 비 연결성인 웹에서 관계를 유지하기 위해서 사용되는 클래스.

 - 내장객체가 아님. ( 개발자가 객체화를 직접 하여 사용한다.)

 - 접속자의 HDDfile  생성되고, 문자열로만 정보가 저장된다.

 - 최장 1년까지 유지

 - 웹 브라우저에서 확인 가능, 수정, 삭제도 가능.

사용법)

1.객체화

   Cookie cookie=new Cookie(“이름”,””);

2.생존시간설정

   cookie.setMaxAge( ); // * * * * *: 최장 1년까지 살아남는다.

                                 *쿠키는 생존시간을 설정하지 않으면 브라우저가 종료 될때

                                     같이 삭제 된다.

3.쿠키 심기

  response.addCookie( 쿠키객체 );

4.쿠키들 읽기

Cookie[] cookies=request.getCookies();

Cookie temp=null;

for( int i= 0 ; i < cookies.length ; i++ ){

  temp=cookies[i];

   //쿠키의 이름 얻기 : temp.getName()

   //쿠키의 값 얻기 : temp.getValue()

 }


*session

 - 접속자의 정보를 서버 측 메모리에 저장하는 기술.

 - 접속자가 어떤 웹 브라우저를 사용하더라도, 접속자의 정보를 저장할 수 있다.

 - 모든 값이 가능.( Object )

 - Servlet/JSP에서는 session을 사용하기위해 HttpSession 인터페이스를 제공.

 

 - 내장객체로 제공.

 - 페이지 지시자에서 session=“true” 인 설정으로 사용할 수 있다.

*세션(컴퓨터끼리의 연결)이 필요한 이유.

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

    => session,cookie

 

*HttpSession

 - WAS에 존재하는 session을 사용할 수 있는 객체 HttpSession

 - page directivesession=“true” 속성 사용했을 때 사용할 수 있다.

1.세션 얻기( session=“false” 인 상태에서만 수행 )

  HttpSession session=request.getSession();

2.세션에 값 설정

 session.setAttribute(“이름”, );

3.세션에서 값 얻기

 데이터형   변수명=(Castring)session.getAttribute(“이름”)

4.세션의 생존시간 설정 (tomcat은 기본 설정 30) -  이 페이지가 요청되면 모든 JSP에 적용

  session.setMaxInactiveInterval( );// * * * * *

5.세션 값 삭제

  session.removeAttribute(“이름”)

6.브라우저에 할당된 세션을 무효화

  session.invalidate();