Core of JSP

Language/JSP 2012. 11. 2. 11:00

01. JSP에서 사용하는 스크립팅 요소들

- 스크립트형태의 프로그램을 지원하기 위해서 사용하는 태그는 아래와 같다.

스크립트릿 : <% %>  -------> 역할 : _jspService에 프로그램 추가

표현식 : <%= %>       ------>  역할 : _jspService에 프로그램 추가 (out.print의 간략화)

선언문 : <%! %>       ------->  역할 : .java파일에 멤버필드와 멤버메서드 추가

지시문 : <%@ %>     ------->  역할 : .java파일에 여러가지 속성 정하기(지시문의 형태에 따라 .java파일의 적당한 장소에 추가)

 

02. _jspService내의 지역변수와 내정객체들

- _jspService의 구성

* 매개변수 2개

  1. HttpServletRequest request

  2. HttpServletResponse response

* 필요한 지역변수

  1. PageContext pageContext = null

  2. HttpSession session = null;

  3. ServletContext application = null;

  4. ServletConfig config = null;

  5. JspWriter out = null;

  6. Object page = this;

  7. JspFactory _jspxFactory = null;

  8. String _value = null;

* 지역변수 초기화

  1. _jspxFactory = JspFactory.getDefaultFactory();

  2. pageContext = _jspxFactory.getPageContext(this, request, response, "", true, 8192, true);

  3. application = pageContext.getServletContext();

  4. config = pageContext.getServletConfig();

  5. session = pageContext.getSession();

  6. out = pageContext.getOut();

 

- 단순히 _jspService메서드내의 지역변수들이지만 이 지역변수들은 아주 조직적으로 만들어지고 초기화

기본적으로 _jspService의 매개변수로 request와 response가 넘어오게 된다. 이것은 서블릿에서와 같은 원리로 넘어온다.

<<서블릿 : request와 response는 service메서드의 매개변수로 넘어오게 되며, 이것은 다시 클라이언트의 요청 방식에 따라서

doGet과 doPost의 매개변수로 넘어가게된다.

JSP : 위의 서블릿과 마찬가지로 _jspService의 매개변수로 서블릿 컨테이너에서 request와 response을 넘겨주게 된다.>>

그리고, 제일 먼저 초기화 되는 변수는 _jspxFactory라는 지역변수..

 

_jspxFactory객체는 JspFactory클래스의 static 메서드인 getDefaultFactory를 이용하여 생성하며, 이렇게 생성된

_jspxFactory 객체를 사용하여 다른 내장객체를 생성하는 pageContext를 생성한다. 이 pageContext를 사용하여 다른 내장객체

들을 생성하고, 사용하는 것임.

 

<< 결과적으로 _jspxFactory객체가 다른 내장객체들을 생성하는 것임. 하지만 JspFactory의 객체인 _jspxFactory는 JSP작성자

가 직접 사용하지는 않고 내부적으로 사용되며, JSP가 Servlet으로 변환 될 때 자동으로 실행되는 객체이다. >>

 

참고---> _jspService내에서 사용되는 내장객체의 구성에 대한 설명은 소설같은 JSP를 참조..

 

03. Servlet 과 JSP의 HttpServletRequest 와 HttpServletResponse의 비교

- 서블릿의 service() 메서드의 매개변수와 JSP의 _jspService() 메서드의 매개변수는 동일한 방식으로 JSP와 서블릿으로

전달된다. Servlet과 JSP의 서비스되는 메서드들의 원형 비교.

* Servlet

 - service(ServletRequest request, ServletResponse response)

 - doGet(HttpServletRequest request, HttpServletResponse response)

 - doPost(HttpServletRequest request, HttpServletResponse response)

 

* JSP

 - _jspService(HttpServletRequest request, HttpServletResponse response)

 

결론적으로 Servlet과 JSP 에서 HttpServletRequest request , HttpServletResponse response 의 역할은 모두가 같다고 말할수 있다.


출처 - http://cafe.naver.com/jspstudy1103/156

'Language > JSP' 카테고리의 다른 글

springmvc+mybatis  (0) 2012.11.07
SiteMesh와 Freemarker  (0) 2012.11.02
Basic of JSP  (0) 2012.11.02
ServletContext와 RequestDispatcher  (0) 2012.11.02
스프링 MVC - 뷰 영역 구현  (0) 2012.10.31
: