티스토리 뷰

코딩/JSP

JSP Default Object

꼬낄라 2021. 7. 20. 12:25

객체를 따로 생성하지 않고 스크립트렛  사이에서 사용 가능 한9개의 디폴트 객체

종류

  1. request ( type : HttpServletRequest ) : 클라이언트 요청정보를 가진 객체/공간
  2. response ( type : HttpServletResponse ) : 서버의 답변정보를 가진 객체
  3. out ( type : JspWriter) : 클라이언트 브라우져와 연결된 출력 객체
  4. session( type : HttpSession ) : 클라이언트 측 브라우져에 할당된 서버측 공간 (JSessionId라는 label 표식 가짐)
     -> 세션변수 ( 속성 == Attribute ) : session 객체안에 들어가는 객체(Object)의 주소를 참조하는 변수(type : String)
    session.setAttribute("id","scott");
    		//(String , Object)
  5. application  객체 ( type : ServletContext ) :  WebApplication 전체에 공유되는 공간[객체]
  6. page 객체 ( type : Object ) : JSP 페이지 자신을 의미하는 객체
  7. pageContext 객체 ( type : pageContext ) : 다른 디폴트 객체들을 접근할 수 있는 method와 field를 가지고 있음 
       - setAttribute(String name, Object value, int scope)
       - getAttribute(String name, int scope)
       - getAttributeNamesInScope(int scope)
       - findAttribute(java.lang.String name)
       -> page scope 영역을 핸들링
  8. config 객체 ( type : ServletConfig ) : DD(web.xml)에서 서블릿의 구성정보를 접근할 수 있는 객체
  9. exception ( type : Throwable ) : 예외 처리 객체 
       

세션과 쿠키

세  션


 HTTP 프로토콜은 무상태 프로토콜이기 때문에 상태를 유지할 수 없다. 세션이라는 기술은 그 상태 정보를 유지할 수 있도록 만들어진 "기술"이다. ex) 쇼핑몰의 장바구니,로그인 ...

원  리 
 클라이언트의 '첫번째 요청'에 의해서 서버측 메모리에는 JSessionId라는 ID로 해당 클라이언트를 위한 공간이 만들어지고, 첫번 째 답변으로 그 JSessionId 를 '쿠키' 형태로 클라이언트 측에 전달한다.
다음 요청부터는 클라이언트가 JSessionId 를 가지고 서버에게 요청함으로써 서버는 그 클라이언트를 식별 할 수 있고, 그 클라이언트의 방을 공유할 수 있게 한다. 따라서, 그 방에 있는 객체(세션변수값==세션속성값)들로 상태정보를 유지 할 수 있는 것이다.

주  의
    같은 서버에서는 하나의 클라이언트의 브라우져에 대해서 WebApplication(Context)마다 JSessionId가 따로 생성된다.
     ex) Tomcat 서버 

쿠  키

클라이언트측에 저장되는 서버측 정보부스러기 

  • 크기 제한 : 4KB이하 제한/개
  • 개수 제한 : 300개
  • 최대로 저장 가능한 쿠키의 용량 : 1.2MB
  • 종류 
    • 클라이언트의 하드디스크에 저장되는 쿠키
    • 클라이언트의 메모리에 존재하는 쿠키(브라우져가 열려있을 때 까지만 존재)
      1. JSessionId
      2. setMaxAge(0 || 음수) -> (MaxAge 기본값 -1)
  • 주  의 
    • 쿠키는 한글지원이 안된다.
    • MaxAge가 지났을 때, 하드의 파일에는 지워지지 않지만 MaxAge가 지난 Cookie는 검출되지 않는다.

EL(Expression Language)

  • 모양 : ${}
  • 기능 
    1. 객체의 속성값을 얻어온다.
    2. 배열의 값을 얻어온다.
    3. List의 값을 얻어온다.
    4. Map의 값을 얻어온다.
  • EL의 디폴트(내장)객체 (11개)
    1. param, paramValues
    2. header , headerValues
    3. pageContext : 'EL에서 JSP 디폴트 객체에 접근할 때 사용'
    4. requsetScope , pageScope, sessionScope , applicationScope
    5. cookie
    6. initparam : 'ServletContet에 대한 initparam 참조'
      정의) web.xml 
      <context-param>
         <param-name>siteName</param-name>
         <param-value>Soo Site</param-value>
       </context-param>

      사용) jsp ->  ${initParam.siteName}
  •  EL 연산자
    1. 산술 연산자 
      •  ex) +, -, * , / 와 div, %와 mod 
      • cf1) /와 div사용시 0으로 나눌 수 있다(infinity)
      • cf2) %와 mod사용시 0으로 나눌 수 없다.(오류)
    2. 논리 연산자
      •  &&와 and
      • ||와 or
      • !와 not
    3. 관계 연산자
      • == 과 eq
      • != 과 ne
      • < 과 lt 
      • > 과 gt 
      • <= 과 le
      • >= 과 ge 
    4. empty  -> 비어있거나 null 일 경우 true 리턴 
      •  jsp의 변수(멤버/지역)는 EL에서 인식하지 못함
      • 정의되지 않은 변수/값(null)일 경우 표현처리 
        1. 공백 처리 (ex: ${str} )
        2. 0 으로 처리 (ex: ${str + 10})
        3. false 로 처리 (ex: ${true and str})

    5. EL Function 

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함