<%@ 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>
<%
int total=0;
for(int i=1;i<=10;i++){
total = total+i;
}
%>
1부터 10까지의 합은? <%=total %>
</body>
</html>
<%@ page ...>
: page 지시자, language에 java언어를 사용함을 명시, content type, encoding 정보 등을 저장
<%! public void ...{} %>
: 선언문, 메서드나 필드 선언 시 Service 메서드 외부(클래스 바디)에 코드 작성 가능
<% 자바 코드 %>
: Scriptlet, 자바 코드를 입력할 수 있음, jsp-> java 변환 시 Service함수 내부에 작성됨
<%= 결과값%>
: 표현식, Scriptlet의 결과를 response하기 위함, 기존 Servlet 실습에서 out.print();과 같은 역할
주석 Comment
총 세가지 주석 사용 가능
<!-- Comment -->
<%-- Comment --%>
//comment
, /*comment*/
for문을 돌리는 방법
<%@ 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 %>> MYMELODY!</H<%=i %>>
<%
}
%>
</body>
</html>
간단하게 표현하면
1. jsp 파일을 생성해 서버에서 실행하면
2. workspace/.metadata에 속하는 폴더에 jsp 파일의 내용을 java 파일로 변환, jsp에서 작성한 내용은 _jspService() 함수에 저장된다
3. java 파일이 서블릿 소스로 자동 컴파일되며 실행된 결과가 브라우저에 출력
이렇게 세 단계로 나뉠 수 있다.
<%@ 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>
hello
<%
System.out.println("jspService()");
%>
<%!
public void jspInit(){
System.out.println("jspInit()");
}
public void jspDestroy(){
System.out.println("jspDestroy()!");
}
%>
</body>
</html>
JSP를 실행하면 서블릿 소스가 생성되고 실행됨
JSP에 입력한 대부분의 코드는 생성되는 서블릿 소스의 _jspService() 메소드 안에 삽입되는 코드로 생성
_jspService() 함수에 삽입된 코드의 윗부분에 미리 선언된 객체들이 있는데, 해당 객체들은 jsp에서도 사용 가능
response, request, application, session, out과 같은 변수가 해당됨
다음과 같이 Scriptlet에서만 접근 가능 (_jspService()에 선언되어 있으므로)
<%@ 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>
<%
StringBuffer url = request.getRequestURL();
out.println("url: "+ url.toString());
%>
</body>
</html>