웹기반 애플리케이션

JSP 6일차 📃_JSP?, JSP소스구성요소, JSP컨테이너의 역할, Servlet컨테이너의 역할

비비펄 2023. 2. 24. 21:02

📌JSP ? 

서블릿 스펙 기반의/ 스크립트 형태로 동작하는/ 템플릿 엔진

📌jsp소스의 표준 구성 요소

1. 정적 텍스트 (Front-end) : 텍스트, HTML, JS, CSS
2. 동적 요소(Back-end)
     1) 스트립트 요소
            - scriptlet (지역코드화, _JSPService) : <% 
             //java code, 지역변수
%>
            - expression : <%= "출력값" %>, <%=currentYear%>, <%=txt1 %>
            - directive : <%@ page buffer="16kb"  %> 

                             : 실행에는 영향을 미치지 않고 현재 Jsp 페이지의 환경 설정, 속성으로 설정.
                    page(required)
                    include(option) : 정적 내포
                    taglib(option) : custom tag library 로딩
            - declaration(전역코드화) : 
            <%! 
            private static String txt1 = "텍스트1";
            private String txt2 = "텍스트2";
            public void test(){}
            %>
            - comment(주석) : <%-- jsp comment --%> 
                 client side comment : HTML, JS, CSS
                 <!-- HTML comment -->
                 <script type="text/javascript">
                 // JS comment
                 </script>
                 <style type="text/css">
                        /* CSS comment */
                 </style>
                 server side comment : java comment, jsp comment
                 <% // java comment %>
                 <%-- jsp comment --%>
     2) EL(expression language)
     3) jsp 액션 태그
     4) JSTL(jsp standard tag library)


📌JSP 컨테이너의 역할

       1. 현재 요청을 처리할 JSP 검색 (싱글턴 인스턴스 검색)
       2-1. 검색됐다면, callback 메소드를 호출해 응답 전송
       2-2. 검색에 실패한 경우,
          3. jsp 템플릿을 대상으로 서블릿 소스 생성(work아래에)
          4. 컴파일
          5. 싱글턴 인스턴스 생성
          6. callback 메소드 호출에 응답 전송


📌Servlet 컨테이너의 역할

     1. 현재 요청을 처리할 서블릿의 인스턴스 검색
      2-1. 검색됐다면, callback 메소드를 호출해 응답 전송
      2-2. 검색에 실패한 경우,
         3. 싱글턴 인스턴스 생성
         4. callback 메소드 호출에 응답 전송