티스토리 뷰
[네이버 부스트코스 웹 프로그래밍] Page/Request/Session/Application Scope, EL, JSTL
SUNO(수노) 2020. 2. 27. 01:18Scope
https://www.edwith.org/boostcourse-web/lecture/16708/
[LECTURE] 1) scope란? : edwith
들어가기 전에 Servlet과 JSP를 개발하다보면 변수를 많이 다루게 됩니다. 어떤 변수는 웹 어플리케이션에서 공유하고 싶은 변수가 있을 수도 있고, 어떤 변수는 사용자 별로 ... - 부스트코스
www.edwith.org
page scope
하나의 JSP 페이지 내에서만 객체를 공유 (JSP only)
예) JSP 파일 내에 <%code fragment%>에서 사용한 변수는 page scope
JSP: pageContext
request scope
요청을 받아서 응답하기까지 유효
forward시 변수 값을 유지할 때 사용
리다이렉트하면 사라짐
Servlet: HttpServletRequest 객체 request
JSP: request
session scope
하나의 브라우저(클라이언트) 당 1개의 session 객체 생성
같은 브라우저 내 페이지(탭)들은 같은 session 객체 공유
웹 브라우저별로 변수가 관리되는 경우(로그인 유지 등)에 사용
만료 시간 설정
Servlet: getSession()
JSP: session
application scope
하나의 웹 애플리케이션 당 1개의 application 객체 생성
같은 웹 애플리케이션 내에서 요청되는 페이지들은 같은 application 객체 공유
웹 애플리케이션이 시작되고 종료될때까지 변수가 유지되는 경우에 사용
Servlet:
ServletContext application = getServletContext(); //객체 얻기
application.setAttribute("value",value); //쓰기
int value = (int)application.getAttribute("value"); //읽기 (객체라서 형변환 필요)
//값이 없으면 null 반환
try{} catch(NullPointerException e) { out.print("value의 값이 설정되지 않았습니다."); }
//JSP:
//내장 객체 application사용, 방법은 같음.
EL: Expression Language
https://www.edwith.org/boostcourse-web/lecture/16714/
[LECTURE] 1) EL(Expression Language) : edwith
들어가기 전에 jsp에서 표현식을 이용해 값을 출력할 때 변수의 값이 null이면 화면에 null이 출력되었습니다. 이 경우 null인지를 check한 후 null이면 아무것도 없... - 부스트코스
www.edwith.org
값을 표현하는 데 사용하는 스크립트 언어. JSP의 기본 문법을 보완하는 역할을 함
표현식 <%=request.getAttribute("value")%>를 대체가능!
EL 비활성화: JSP 상단에 <%@ page isELIgnored = "true" %> 입력
문법: ${expr}
객체에 대한 접근
page : <%=pageContext.getAttribute("p1")%>
page : ${pageScope.p1} //위와 같은 결과 출력
request : ${requestScope.r1}
session : ${sessionScope.s1}
application : ${applicationScope.a1}
수치 연산, 비교 연산, 논리 연산
연산은 일반적인 프로그래밍 언어에서의 연산자 사용 방법과 같음
예약어를 피하기 위해 대체 연산자가 존재 (예: / = div, % = mod 등)
JSTL: JSP Standard Tag Library
JSP 페이지에서 조건문 처리, 반복문 처리 등을 html tag 형태로 작성할 수 있게 도와줌
최대한 JSP 파일에 java 코드를 적는 것을 지양해야 하는데 그걸 도와준다.
JSTL 사용하기
http://tomcat.apache.org/download-taglibs.cgi에서 3가지 jar 다운받아 WEB-INF/lib/ 폴더에 복사
(이때 이클립스가 인식하도록 반드시 이클립스 왼쪽 내비게이터에서 복사해야 함!)
JSP 파일 상단에 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 입력
태그 종류
변수 설정하기: set
<prefix:set var="variableName" scope="scope" value="value"/>
ex) <c:set var="value1" scope="request" value="3"/>
choose = switch 문과 같은 역할 (otherwise = default)
기타 문법은 페이지 참조.
https://www.edwith.org/boostcourse-web/lecture/16713/
[LECTURE] 2) JSTL(JSP Standard Tag Library) : edwith
들어가기 전에 프론트 개발자가 JSP를 수정하는데, JSP 안에 자바코드와 HTML코드가 섞여 있다면 수정할 때 굉장히 어려움을 느끼게 될 가능성이 큽니다. 이런 문제를 해결하기 ... - 부스트코스
www.edwith.org