JSP (Javer ServerPage)
jsp는 톰캣 내부에서 서블릿으로 바뀌어서 실행된다.
JSP의 실행순서
- 브라우저가 웹서버에 JSP에 대한 요청 정보를 전달한다.
- 브라우저가 요청한 JSP가 최초로 요청했을 경우만
- JSP로 작성된 코드가 서블릿으로 코드로 변환한다. (java 파일 생성)
- 서블릿 코드를 컴파일해서 실행가능한 bytecode로 변환한다. (class 파일 생성)
- 서블릿 클래스를 로딩하고 인스턴스를 생성한다.
- 서블릿이 실행되어 요청을 처리하고 응답 정보를 생성한다.
JSP의 문법
스크립스 요소의 이해
- JSP페이지에서는 선언문(Declaration), 스크립트릿(Scriptlet), 표현식(Expression)이라는 3가지의 스크립트 요소를 제공.
1. 선언문(Declaration) - <%! %> : 전역변수 선언 및 메소드 선언에 사용
2. 스크립트릿(Scriptlet) - <% %> : 프로그래밍 코드 기술에 사용
3. 표현식(Expression) - <%=%> : 화면에 출력할 내용 기술에 사용
선언문(Declaration)
- 선언문: <%! %>
- 선언문은 JSP 페이지 내에서 필요한 멤버변수나 메소드가 필요할 때 선언해 사용하는 요소
- 선언문의 문법
- <%! 문장 %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
id : <%=getId() %>
</body>
</html>
<%!
String id = "u001"; //멤버변수 선언
public String getId( ) { //메소드 선언
return id;
}
%>
스크립트릿(Scriptlet)
- 스크립트릿 : <% %>
- 가장 일반적으로 많이 쓰이는 스크립트 요소
- 주로 프로그래밍의 로직을 기술할 때 사용
- 스크립트릿에서 선언된 변수는 지역변수
- 스크립트릿의 문법
. <% 문장 %>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
for(int i = 1; i <= 5; i++){
%>
<H<%=i %>> 아름다운 한글 </H<%=i %>>
<%
}
%>
</body>
</html>
표현식 (Expression)
- 표현식: <%=%>
- JSP 페이지에서 웹 브라우저에 출력할 부분을 표현
즉, 화면에 출려갛기 위한 것
- 스크립트릿내에서 출력할 부분은 내장객체인 out객체의 print()또는 println()메소드를 사용해서 출력
- 표현식의 문법
- <%=문장%>
주석
HTML 주석
JSP 내장 객체
- JSP를 실행하면 서블릿 소스가 생성되고 실행된다.
- JSP에 입력한 대부분의 코드는 생성되는 서블릿 소스의 _jspService() 메소드 안에 삽입되는 코드로 생성된다.
- _jspService()에 삽입된 코드의 윗 부분에 미리 선언된 객체들이 있는데, 해당 객체들은 jsp에서도 사용가능하다.
- response, request, application, session, out과 같은 변수를 내장객체라고 한다.