MVC Model1에서는 JSP가 Controller와 View 역할을 모두 했었는데 MVC Model2에서는 그 역할을 분리시켰다.
JSP 파일을 가지고 서블릿 자바 코드를 생성할 때 기본으로 준비하는 객체
-jspService(HttpServletRequest request,
HttpServletResponse response) {
PageContent pageContent = ----;
HttpSession httpSession = ----;
ServletContext servletContext = ----;
ServletConfig config = ----;
JSPWriter out = ----;
Object page = this; (현재객체)
Throwable exception = ----;
OGNL 표기법을 사용하여 객체의 프로퍼티 값을 조회한다.
Object Graph Navigation Language
(객체 연결 점을 따라 이동하면서 값을 조회하는 문법)
class Board{
String tle; // field
[Property
void setTitle(String title){ // setter
this.tle = title;
}
String getTitle() { // getter
return this.tle;
}
]
${객체.프로퍼티.프로퍼티.프로퍼티. ...}
${board.title}
필드명: tle
프로터피명: setTitle(){} → title
application.getAttribute("board")
→ ${applicationScope.board}
session.getAttribute("board")
⇒ ${sessionScope.board}
request.getAttribute("board")
⇒ ${requestSope.board}
pageContext.getAttribute("board")
⇒ ${pageScope.board}
만약, Scope을 생략하면 pageContext → ServletRequest → HttpSession → ServletContext 순으로 보관소에서 해당 필드를 찾는다.
<%
Board board = (Board)request.getAttribute("board");
5>
<%=board.title%>
↓
${requestScope.board.title}