- 선언문(Declaration) <%! %>
- 스크립트릿(Scriptlet) <% %>
- 표현식(Expression) <%= %>
- 주석(Comment)
선언문
- JSP 페이지 내에서 필요한 전역변수나 메소드가 필요할 때 선언해 사용한다.
- 클래스 body에 선언이 된다.
- <%! 문장 %>
exam01.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>
<h1> My name is <%=printName()%> </h1>
</body>
</html>
<%!
String userName = "nana";
public String printName(){
return userName;
}
%>
서블릿 소스 코드
String userName = "nana";
public String printName(){
return userName;
}
....
service() 메소드 내부{
out.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\r\n");
out.write("<html>\r\n");
out.write("<head>\r\n");
out.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\r\n");
out.write("<title>Insert title here</title>\r\n");
out.write("</head>\r\n");
out.write("<body>\r\n");
out.write("\r\n");
out.write("<h1> My name is ");
out.print(printName());
out.write(" </h1>\r\n");
out.write("\r\n");
out.write("</body>\r\n");
out.write("</html>\r\n");
out.write("\r\n");
}
스크립트릿
- 주로 프로그래밍의 로직을 기술할 때 사용한다.
- 스크립트릿에 선언된 변수는 지역변수이다.
- <% %>
exam01.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>
<% for(int i=1; i<=5; i++){ %>
<h<%=i%>> 글씨가 점점 작아져요 <h<%=i%>>
<% } %>
</body>
</html>
서블릿파일
out.write("<body>\r\n");
out.write("\r\n");
for(int i=1; i<=5; i++){
out.write("\r\n");
out.write("\r\n");
out.write("<h");
out.print(i);
out.write("> 글씨가 점점 작아져요 <h");
out.print(i);
out.write(">\r\n");
out.write("\r\n");
}
out.write("\r\n");
out.write("\r\n");
out.write("</body>\r\n");
화면

표현식
- jsp 페이지에서 웹브라우저에 출력할 부분을 표현한다.(화면에 출력될 부분)
- 스크립트릿내에서 출력할 부분은 내장객체인 out객체의 print() 또는 println() 메소드를 사용해서 출력한다.
- <%= %>
exam01.jsp
<body>
<%
for(int i=1; i<=5; i++){
out.println("i의 값은 "+ i + "<br>");
}
String name = "nana";
%>
그녀의 이름은 <%= name %>
</body>
서블릿 파일
out.write("<body>\r\n");
out.write("\r\n");
for(int i=1; i<=5; i++){
out.println("i의 값은 "+ i + "<br>");
}
String name = "nana";
out.write("\r\n");
out.write("\r\n");
out.write("그녀의 이름은 ");
out.print( name );
out.write("\r\n");
out.write("\r\n");
out.write("\r\n");
out.write("</body>\r\n");
화면

주석
JSP는 HTML주석, java주석, JSP주석 3가지를 사용할 수 있다. 그러나 JSP가 서블릿으로 변환되고 컴파일되는 과정에서 각 주석들이 읽혀지고 무시되는 단계가 다르다.
1. HTML 주석
- <!-- 주석내용 -->
- HTML 주석은 서블릿으로 변환되고 컴파일 될 떄까지도 읽혀지다가 웹에서 서비스할 때 주석이 적용되어 화면에 주석 내용이 표시되지 않는다. 그러나 소스보기를 하면 주석의 내용을 볼 수 있다.
2. JSP 주석
- <%-- 주석내용 --%>
- JSP주석은 JSP상태 일때 주석이 적용되어 서블릿으러 변환될때 부터 보이지 않는다. 결국 화면에도 표시되지 않고 소스보기를 해도 주석 내용은 보이지 않는다.
3. java 주석
- // , /* 주석내용 */
- 스크립트릿이나 선언문에서 사용되는 주석으로, 자바와 주석처리 방법이 같다.
exam01.jsp
<body>
<%
// 자바 주석 입니다.
%>
<!-- html 주석 입니다. -->
<%-- jsp 주석 입니다. --%>
</body>
화면에는 아무것도 보여지는게 없으나 소스보기를 하면 html주석만 보인다.

서블릿 파일(.java)을 보면 html주석과 자바 주석만 표시된것을 볼 수 있다.

'Web' 카테고리의 다른 글
| 폼 데이터 입력 후 한글 깨짐 현상 (0) | 2021.12.15 |
|---|---|
| 폼 데이터 입력 후 한글 깨짐 현상 (0) | 2021.12.09 |
| redirect와 forward (0) | 2021.11.15 |
| JSP 라이프싸이클 (0) | 2021.11.13 |
| Servlet (0) | 2021.11.10 |