[TIL] 2020.07.17_TIL-200717

To-Do

  • [복습] JSP

JSP

1. 개념

  • Java 언어를 기반으로 하는 Server Side 스크립트 언어
  • HTML 코드에 Java 코드를 넣어 동적인 웹 페이지를 생성하는 웹 어플리케이션 도구
  • JSP를 통해 정적인 HTML과 동적으로 생성된 contents(HTTP 요청 파라미터)를 혼합하여 사용할 수 있다.
  • 즉, 사용자가 입력한 contents에 맞게 동적인 웹 페이지를 생성한다.
  • 서블릿 기술을 확장한 것이 JSP이다.
    • 서블릿을 보완한 스크립트 방식 표준
    • 서블릿의 모든 기능 + 추가적인 기능 제공
    • All features of Servlet + Implicit object, predefined tags, expression language, custom tags

2. 구성요소

  • Java 웹 어플리케이션의 사용자 인터페이스 역할을 수행하도록 설계된 Java 서블릿 유형이다.
  • 개발자는 JSP를 HTML 또는 XHTML 코드, XML 요소 및 포함된 JSP 작업 및 명령을 결합한 텍스트 파일로 작성

3. 왜 JSP를 사용할까?

  • JSP는 CGI(Common Gateway Interface)를 사용하여 구현된 프로그램과 동일한 목적으로 사용된다.
  • CGI와 비교하여 JSP의 장점
  • JSP를 사용하면 별도의 CGI 파일 대신 HTML 페이지 자체에 동적 요소를 포함할 수 있으므로 성능이 훨씬 향상
  • JSP는 페이지가 요청 될 때마다 서버가 인터프리터와 대상 스크립트를 로드해야하는 CGI / Perl과 달리 서버에서 처리하기 전에 항상 컴파일된다.
  • JSP는 Java 서블릿 API 위에 구축되므로 서블릿과 마찬가지로 JSP는 JDBC, JNDI, EJB, JAXP 등을 포함한 모든 강력한 Enterprise Java API에 엑세스 할 수 있다.
  • JSP 페이지는 Java 서블릿 템플릿 엔진에서 지원하는 모델 인 비즈니스 로직을 처리하는 서블릿과 함께 사용할 수 있다.

4. JSP의 특징

  • 스크립트 언어이기 때문에 자바 기능을 그대로 사용할 수 있다.
  • 톰캣이 이미 만들어 놓은 객체(predefined values)를 사용한다. - ex) request, response, session 등
  • 사용자 정의 태그(custom tags)를 사용하여, 보다 효율적으로 웹사이트를 구성할 수 있다.
  • HTML 코드 안에 Java 코드가 있기 때문에 HTML 코드를 작성하기 쉽다.
  • 서블릿과 다르게 JSP는 수정된 경우 재배포할 필요 없이 톰캣이 알아서 처리해준다.
  • Predefined Values(또는 Implicit Object)
    • 미리 정의된 객체로, WAS가 제공하는 객체를 의미
    • request : the HttpServletRequest Object
    • response : the HttpSerlvetResponse Object
    • session : the HttpSession Object
    • out : the PrintWriter Object
    • application : the ServletContext Object

5. JSP의 장점 (타 기술에 비해 JSP를 사용하는 장점)

  • 액티브 서버 페이지(ASP)와 비교
    • 동적 부분은 Visual Basic 또는 기타 MS 특정 언어가 아닌 Java로 작성되어 강력하고 사용이 쉬움
    • 다른 운영체제 및 타사 웹 서버에 이식이 가능
  • 서블릿(Setvlet)으로만 작성된 코드와 비교
    • HTML을 생성하는 많은 println문을 갖는 것보다 일반HTML을 작성하고 수정하는 것이 더 편리하다. -자바스크립트(Java Script)와 비교
    • JS는 클라이언트에서 HTML을 동적으로 생성 할 수 있지만 웹 서버와 거의 상호작용하여 DB 엑세스 및 이미지 처리 등과 같은 복잡한 작업을 수행할 수 없다.
  • 정적 HTML과 비교
    • 일반 HTML문은 동적인 정보를 포함하지 못한다.

태그:

카테고리:

업데이트:

댓글남기기