동적인 HTML을 생성하기 위해서 사용
Servlet의 기능 개선.
개발자가 compile을 하지 않는다.(WAS가 요청이 발생하면 Compile해준다.)
디자이너가 개발자간의 업무구분이 어느 정도 가능해진다.
Servlet보다 속도가 느리다
DD(web.xml)설정없이 동작한다.
Java SE에서 제공하는 모든 기능을 사용할 수 있다.

<%@ page 속성="값",,,%> //선언부 - 지시자(dirctive)선언
<!DOCTYPE html>
<html> //2. 개발자가 JSP코드(JSP tag, 내장객체, 액션태그, EL, JSTL)정의
<head> //1. 디자이너(코더)가 HTML코드 작성
...
</html>
JSP에서 기능을 정의할 때 사용하는 태그들.
5가지의 태그가 제공.
JSP가 자바로 변경될 때 코드(Servlet)로 생성되고, 사용자에게는 태그의 내용이 보여지지 않는다.
형식
<% 코드,,, %>

scriptlet
JSP에서 method내의 Java Code를 정의해야 할 때 사용.
scriptlet안에 정의하는 코드는 JSP가 java source code로 변경될 때 _jspService() method내에 코드로 생성된다.
내장객체를 사용할 수 있다.
사용법)
<% 내용 %>
<%
int i;//지역변수
if(){
}
%>
==>
Public void _jspInit(HttpServletRequest request, HttpServletResponse response) throws SerbletException,IOException{
int i;
if(){
}
}
JSP에서 발생한 값을 web browser로 출력할 때 사용.
하나의 값만 출력할 수 있다.
JSPWriter출력 스트림 객체가 제공하는 print() method를 사용하여 web browser로 출력한다.
JSP가 Java Source code로 변경될 때 _jspService()안쪽으로 코드가 생성된다.
내장객체를 사용할 수 있다.
문법)
<%= 변수명 %>, <%= 반환형이 있는 method() %>