Servlet은 JAVA언어를 이용하여 문서를 작성하고 출력객체를 통하여 HTML 코드를 삽입했다면 JSP는 HTML코드에 JAVA언어를 삽입하여 동적 문서를 만들 수 있다.
클라이언트가 웹 브라우저로 요청을하면 JSP컨테이너가 JSP파일을 Servlet파일로 변환한다.
그리고 Servlet파일은 컴파일 된 후 클래스 파일로 변환되고, 요청한 클라이언트한테 HTML파일 형태로 응답한다.
자세한 과정
개발자가 객체를 생성하지 않고 바로 사용할 수 있는 객체로, JSP에서 제공되는 내부객체는 JSP컨테이너에 의해 Servlet으로 변화될 때 자동으로 객체가 생성된다.
내부 객체 종류
스크립트릿(Scriptlet) : <% 자바 코드 %>
※HTML 코드내부에 JAVA 코드를 기술하고 실행한 뒤, 실행화면에서 소스보기를 실행하면 자바 코드는 보이지 않는다.
예시 코드(body 부분만)
<body>
<%
int i = 0;
while(true){
i++;
out.println("2 * " + i + " = " + (2 * i) + "<br />");
%>
=========<br />
<%
if(i >= 9) break;
}
%>
</body>
선언(Declaration) : <%! 자바 코드 %> --> 변수 또는 메소드 선언할 때 사용(전역의 의미로 사용)
표현식(Expression) : <%= 자바 코드 %> --> JSP 페이지 내에서 사용되는 변수의 값 또는 메소드 호출의 결과값을 출력하기 위해 사용하고 결과값은 String 타입이며, 세미콜론 사용 불가
JSP페이지의 전체적인 속성을 지정할 때 사용, page, include, taglib이 있고 <%@ 속성 %> 형태로 사용한다.
<%@page import="java.util.Arrays"%>
<%@page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR" &>
<%@ include file="include01.jsp"&> //현재 페이지에 include01.jsp 내용을 삽입한다.