-작성하다 날라가서 요약만 적는다-
1) 변환 단계
2) 컴파일 단계
3) 실행 단계
C:\app\scoop\apps\tomcat9\current\work\Catalina\localhost\ROOT\org\apache\jsp
org\apache\jsp -> 이경로에 jsp가 서블릿의 형태로 변환되어 저장된다.
JSP컨테이너 (.JSP --변환--> .JAVA --컴파일--> .class) --실행--> Servlet 컨테이너
결국에 JSP는 Servlet 컨테이너로 Servlet으로서 실행된다.
1) HTML 요소
2) JSP 스크립팅 요소
3) JSP 표준 액션태그 요소
4) EL 요소
5) 커스텀 태그 라이브러리 요소
-JSP 스크립팅 요소는 JSP 페이지가 서블릿으로 변환시 JSP 엔진에 의해서 처리되며 <% %>형식을 갖는다.
->JSP 지시어는 용어 그대로 JSP 페이지를 실행할 JSP 엔진에게 해당 페이지를 어떻게 처리할 것인지에 대한 설정 정보를 지시하는 용도로 사용한다.
JSP에서 include는 2가지 종류가 있다
(1) 정적인 삽입 (static inclusion/injection)
-지정된 파일의 내용(소스코드)을 그대로 directive tag 위치에 넣어라
(2) 동적인 삽입(dynamic inclusion/injection)
-지정된 파일이 만일 JSP 라면 , 이 jsp 파일의 수행결과(html)를 포함 시켜라!
->JSP 선언 태그는 JSP페이지에서 자바의 멤버변수(인스턴스 변수)와 메소드를 선언할 때 사용 가능하다
/서블릿으로 변환될 때 멤버변수와 메소드 형태로 변환시키기 때문에 JSP페이지의 어느 위치에서도 참조가 가능
-> 자바실행문장(코드)를 넣고 싶을 때 사용 못넣을 코드가 없다.
단점: 스크립트릿 태그로 인해, HTML 정상적인 태그보다 , 자바코드가 더 많아지는 현상때문에, JSP 코드의 가독성을 상당히 해친다
뷰영역에 알맞게 사용해라!!
바로 out.print로 포함되어 HTML로 포함된다.
JSP 파일이 자바 소스파일로 변환되면서 service 메소드내에 자동으로 선언 및 초기화 되는 변수들을 내장 객체라고 한다.
1. request : javax.servlet.ServletRequest(javax.servlet.http.httpRequest) >> client의 http 요청정보를 저장하고 있는 객체
2. response : javax.servlet.ServletResponse(javax.servlet.http.httpResponse) >> http 요청에 대한 응답정보를 저장하는 객체
3. session : javax.servlet.http.HttpSession >> client 가 서버에 접속했을 때 세션정보를 저장한 객체
4. pageContext : javax.servlet.jsp.PageContext >> 응답 페이지 실행에 필요한 Context정보를 저장한 객체
5. out : javax.servlet.jsp.JspWriter >> 응답 페이지 전송을 위한 출력 stream
6. application : javax.servlet.ServletContext >> 동일한 Application 의 Context 정보를 저장하고 있는 객체
7. config -- 설정에 관련 : javax.servlet.ServletConfig >> 특정 페이지의 서블릿 설정 정보를 저장하고 있는 객체
8. page : java.lang.Object >> 특정 페이지의 서블릿 객체(인스턴스화된 객체)
9. exception : java.lang.Throwable >> 예외 처리를 위한 객체
JSP도 가상의 요소로 매핑해줘서 드록해줘야한다. ->보안을 위해서