84일차 JSP

쿠우·2022년 7월 27일
0

-작성하다 날라가서 요약만 적는다-

<기본>

  1. JSP == Servlet
  2. HTML문서의 원하는 위치에,
    Model 데이터를 injection(주입)하기 위해서,
    태그(JSP Scripting Tags)를 배움
  3. JSP 내장객체
  4. JSP 액션태그

<고급>

  1. EL (Expression Language)
  2. JSTL(JSP standard tag libraries) --> 태그들!!!

JSP 동작 3단계

1) 변환 단계
2) 컴파일 단계
3) 실행 단계

C:\app\scoop\apps\tomcat9\current\work\Catalina\localhost\ROOT\org\apache\jsp

org\apache\jsp -> 이경로에 jsp가 서블릿의 형태로 변환되어 저장된다.

JSP 아키텍쳐

JSP컨테이너 (.JSP --변환--> .JAVA --컴파일--> .class) --실행--> Servlet 컨테이너

결국에 JSP는 Servlet 컨테이너로 Servlet으로서 실행된다.


JSP 기본요소

1) HTML 요소
2) JSP 스크립팅 요소
3) JSP 표준 액션태그 요소
4) EL 요소
5) 커스텀 태그 라이브러리 요소


JSP 스크립팅 요소

-JSP 스크립팅 요소는 JSP 페이지가 서블릿으로 변환시 JSP 엔진에 의해서 처리되며 <% %>형식을 갖는다.

1) 주석 태그 ( Comment tag ) = <%-- --%>

2) JSP 지시어 ( Directive tag ) = <%@ %>

->JSP 지시어는 용어 그대로 JSP 페이지를 실행할 JSP 엔진에게 해당 페이지를 어떻게 처리할 것인지에 대한 설정 정보를 지시하는 용도로 사용한다.

  • page 지시어 ==> JSP를 서블릿 소스코드 변환시, 내용을 변경
    <%@ page 속성명=“속성값” 속성명2=“속성값2” %>
  • include 지시어 ==> 지정된 JSP/HTML 소스코드 내용 그대로 삽입
    <%@ include file="포함할 페이지“ %>

    JSP에서 include는 2가지 종류가 있다
    (1) 정적인 삽입 (static inclusion/injection)
    -지정된 파일의 내용(소스코드)을 그대로 directive tag 위치에 넣어라
    (2) 동적인 삽입(dynamic inclusion/injection)
    -지정된 파일이 만일 JSP 라면 , 이 jsp 파일의 수행결과(html)를 포함 시켜라!

3) JSP 선언 태그(자주 쓰지는 않음 / 종종 사용) = <%! %>

->JSP 선언 태그는 JSP페이지에서 자바의 멤버변수(인스턴스 변수)와 메소드를 선언할 때 사용 가능하다
/서블릿으로 변환될 때 멤버변수와 메소드 형태로 변환시키기 때문에 JSP페이지의 어느 위치에서도 참조가 가능

4) 스크립트릿 태그 ( Scriptlet tag ) = <% %>

-> 자바실행문장(코드)를 넣고 싶을 때 사용 못넣을 코드가 없다.
단점: 스크립트릿 태그로 인해, HTML 정상적인 태그보다 , 자바코드가 더 많아지는 현상때문에, JSP 코드의 가독성을 상당히 해친다
뷰영역에 알맞게 사용해라!!

5)표현식(expression) 태그 = <%= %>

바로 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도 가상의 요소로 매핑해줘서 드록해줘야한다. ->보안을 위해서

profile
일단 흐자

0개의 댓글