지금까지는 자바 기초 문법과, 자료구조를 직접 구현해 보는 시간을 가졌다.
이제 본격적으로 JSP & Servlet에 대해서 포스팅을 해 나갈 것이다.
가장 먼저 JSP 기초 문법을 살펴보겠다.
1. JSP의 스크립트(Script)
: 스크립트 요소란 JSP 프로그래밍에서 사용되느 문법의 표현 형태를 말한다. JSP에서는 동적인 페이지를 생성하기 위해서 다양한 형태를 제공하여 각각 필요한 곳에 적절히 사용할 수 있도록 하고 있다. 그럼 JSP에서 사용되는 문법의 표현 형태에는 어떠한 것들이 있는지 하나씩 알아보겠다.
JSP의 스크립트 요소는 모두 4가지가 있다.
1) 선언문(Declaration)
2) 스크립트릿(Scriptlet)
3) 표현식(Expression)
4) 주석(Comment)
<%@ page contentType="text/html;charset=EUC-KR"%>
<html>
<head><title>JSP스크립트 Example</title></head>
<body>
<h1>Script Example1</h1>
<%!
String declaration = "Declaration";
%>
<%!
public String decMethod(){
return declaration;
}
%>
<%
String scriptlet = "Scriptlet";
String comment = "Comment";
out.println("내장객체를 이용한 출력 : " + declaration + "<p/>");
%>
선언문의 출력1 : <%=declaration%><p/>
선언문의 출력2 : <%=decMethod()%><p/>
스크립트릿의 출력 : <%=scriptlet%><p/>
<!--JSP주석부분-->
<!-- JSP 주석1 : <%=comment%> --><p/>
<%-- JSP 주석2 : <%=comment%> --%>
<% /* 주석
(여러줄 주석)
*/
%>
<%// 주석(한줄 주석)%>
</body>
</html>
[출력값]
1) 선언문
위의 소스코드에서 <%! %> 구문을 볼 수 있는데, 이 부분을 선언문이라고 한다. 선언문은 JSP에서 사용될 변수나 메소드를 선언할 수 있는 영역의 요소를 의미한다. 선언문에서 선언된 변수를 "멤버 변수(member variable)" 라고 부른다. 그리고 이 변수는 jsp 페이지가 서블릿 코드로 변환이 되면 서블릿 클래스의 멤버변수가 된다. 중요한 점으로, 멤버변수는 전역 변수로서 선언된 위치에 관계없이 모든 메소드에 참조 가능하다.
2) 스크립트릿
코드 중간을 보면 <% %> 구문이 나오는데, 이것을 스크립트릿이라고 한다. 스크립트릿 요소는 가장 일반적으로 많이 사용되는 스크립트 요소로 jsp 페이지가 서블릿으로 변환되고 요청될 때 _jspService(Tomcat 기준으로 설명) 메소드 안에 선언이 되는 요소이다. 그리고 스크립트릿은 선언문과 달리 선언된 변수는 지역 변수로 선언이 되고 메소드 선언은 할 수가 없다.
참고로 선언문이랑 스크립트릿의 표현식을 헷갈리면 안 된다. 느낌표(!)를 붙이는지의 여부에 따라 달리지므로 주의해야 한다.
3) 표현식
표현식의 문법은 <%=변수 혹은 메소드%> 이다. 표현식은 말 그대로 동적인 jsp 페이지를 브라우저로 표현하기 위한 요소이다. 그리고 표현식에서는 스크립트릿과 달리 변수나 메소드를 출력하고자 할 때는 세미콜론(;)은 표기하지 않는다는 점을 꼭 기억해야 한다.
4) 주석
주석은 프로긂에 직접적인 영향을 미치지는 않지만 개발자들이 소스 분석 내용 및 파일 설명 처리를 위해서 없어서는 안 될 꼭 필요한 요소이다.
[HTML 형식의 주석]
<!-- Fighting <%=name%> -->
HTML을 작성할 떄와 같은 주석의 형태이다. jsp 페이지 내에 이러한 주석이 있을 경우 jsp 페이지가 Servlet으로 컴파일 되고 사용자의 브라우저에 출력할 때는 소스 보기를 통해서 주석 코드가 나타나게 된다. 만일 주석 태그 안에 표현식을 사용하면 개발자가 원하는 주석을 동적으로 생성시킬 수도 있지만 주석에 들어가는 표현식의 값이 틀리면 주석이라 할지라도 컴파일 에러가 발생하게 된다.
위에서 name의 값이 'Korea'이였다면 브라우저에서 소스 보기할 때에는 <!-- Fighting Korea -->과 같은 HTML 주석 코드가 보이게 될 것이다.
[JSP 형식의 주석]
<%-- Fighting <%=name%> --%>
위의 주석은 오직 JSP 소스 파일에만 사용되며 출력결과르 브라우저에서 소스 보기를 하여도 이 태그를 사용한 주석 처리는 나타나지 않는다. 당연히 서블릿으로 코드 전환될 때에도 이 주석을 생성하지 않게 된다.
'JSP&Servlet' 카테고리의 다른 글
JDBC로 데이터베이스 연동 (0) | 2022.03.18 |
---|---|
자바빈즈(JavaBeans) (0) | 2022.03.14 |
서블릿 기초 문법 (0) | 2022.03.11 |
JSP의 내장 객체 (0) | 2022.03.10 |
JSP의 지시자와 태그 (0) | 2022.03.08 |