티스토리 뷰
객체를 따로 생성하지 않고 스크립트렛 사이에서 사용 가능 한9개의 디폴트 객체
종류
- request ( type : HttpServletRequest ) : 클라이언트 요청정보를 가진 객체/공간
- response ( type : HttpServletResponse ) : 서버의 답변정보를 가진 객체
- out ( type : JspWriter) : 클라이언트 브라우져와 연결된 출력 객체
- session( type : HttpSession ) : 클라이언트 측 브라우져에 할당된 서버측 공간 (JSessionId라는 label 표식 가짐)
-> 세션변수 ( 속성 == Attribute ) : session 객체안에 들어가는 객체(Object)의 주소를 참조하는 변수(type : String)
session.setAttribute("id","scott"); //(String , Object)
- application 객체 ( type : ServletContext ) : WebApplication 전체에 공유되는 공간[객체]
- page 객체 ( type : Object ) : JSP 페이지 자신을 의미하는 객체
- 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 영역을 핸들링 - config 객체 ( type : ServletConfig ) : DD(web.xml)에서 서블릿의 구성정보를 접근할 수 있는 객체
- exception ( type : Throwable ) : 예외 처리 객체
세션과 쿠키
세 션
HTTP 프로토콜은 무상태 프로토콜이기 때문에 상태를 유지할 수 없다. 세션이라는 기술은 그 상태 정보를 유지할 수 있도록 만들어진 "기술"이다. ex) 쇼핑몰의 장바구니,로그인 ...
원 리
클라이언트의 '첫번째 요청'에 의해서 서버측 메모리에는 JSessionId라는 ID로 해당 클라이언트를 위한 공간이 만들어지고, 첫번 째 답변으로 그 JSessionId 를 '쿠키' 형태로 클라이언트 측에 전달한다.
다음 요청부터는 클라이언트가 JSessionId 를 가지고 서버에게 요청함으로써 서버는 그 클라이언트를 식별 할 수 있고, 그 클라이언트의 방을 공유할 수 있게 한다. 따라서, 그 방에 있는 객체(세션변수값==세션속성값)들로 상태정보를 유지 할 수 있는 것이다.
주 의
같은 서버에서는 하나의 클라이언트의 브라우져에 대해서 WebApplication(Context)마다 JSessionId가 따로 생성된다.
ex) Tomcat 서버
쿠 키
클라이언트측에 저장되는 서버측 정보부스러기
- 크기 제한 : 4KB이하 제한/개
- 개수 제한 : 300개
- 최대로 저장 가능한 쿠키의 용량 : 1.2MB
- 종류
- 클라이언트의 하드디스크에 저장되는 쿠키
- 클라이언트의 메모리에 존재하는 쿠키(브라우져가 열려있을 때 까지만 존재)
- JSessionId
- setMaxAge(0 || 음수) -> (MaxAge 기본값 -1)
- 주 의
- 쿠키는 한글지원이 안된다.
- MaxAge가 지났을 때, 하드의 파일에는 지워지지 않지만 MaxAge가 지난 Cookie는 검출되지 않는다.
EL(Expression Language)
- 모양 : ${}
- 기능
- 객체의 속성값을 얻어온다.
- 배열의 값을 얻어온다.
- List의 값을 얻어온다.
- Map의 값을 얻어온다.
- EL의 디폴트(내장)객체 (11개)
- param, paramValues
- header , headerValues
- pageContext : 'EL에서 JSP 디폴트 객체에 접근할 때 사용'
- requsetScope , pageScope, sessionScope , applicationScope
- cookie
- initparam : 'ServletContet에 대한 initparam 참조'
정의) web.xml
<context-param> <param-name>siteName</param-name> <param-value>Soo Site</param-value> </context-param>
사용) jsp -> ${initParam.siteName}
- EL 연산자
- 산술 연산자
- ex) +, -, * , / 와 div, %와 mod
- cf1) /와 div사용시 0으로 나눌 수 있다(infinity)
- cf2) %와 mod사용시 0으로 나눌 수 없다.(오류)
- 논리 연산자
- &&와 and
- ||와 or
- !와 not
- 관계 연산자
- == 과 eq
- != 과 ne
- < 과 lt
- > 과 gt
- <= 과 le
- >= 과 ge
- empty -> 비어있거나 null 일 경우 true 리턴
- jsp의 변수(멤버/지역)는 EL에서 인식하지 못함
- 정의되지 않은 변수/값(null)일 경우 표현처리
- 공백 처리 (ex: ${str} )
- 0 으로 처리 (ex: ${str + 10})
- false 로 처리 (ex: ${true and str})
- EL Function
- 산술 연산자
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Java Web
- typescript
- 인스턴스
- 제어문
- Java
- 1인개발
- 접근지시자
- 파이썬게임
- 큐플레이
- javaee
- error
- nohup
- Coding
- extends
- aws
- 메소드
- 반복문
- 메소드 디스패치
- JavaScript
- Modifying
- 생성자
- 자바
- HTTPS
- 코딩
- TSC
- JSP
- JVM
- 접근제한자
- 선택문
- Tkinter
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함