Core of JSP
Language/JSP 2012. 11. 2. 11:0001. 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 의 역할은 모두가 같다고 말할수 있다.
'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 |