티스토리 뷰

웹/부스트코스

[WEB]JSP 문법

cll179 2018. 6. 4. 21:59

스크립트 요소의 이해

  • JSP 페이지에서는 선언문(Declaration), 스크립트릿(Scriptlet), 표현식(Expression) 이라는 3가지의 스크립트 요소를 제공

 

 

선언문(Declaration) - <%! %> : 전역변수 선언 및 메소드 선언에 사용

스크립트릿(Scriptlet) - <% %> : 프로그래밍 코드 길수에 사용

표현식(Expression) - <%=%> : 화면에 출력할 내용 기술에 사용

 

 

 

 선언문(Declaration)

  • 선언문 : <%! %>
  • 선언문은 JSP 페이지 내에서 필요한 멤버변수메소드가 필요할 때 선언해 사용하는 요소
  • 선언문의 문법
  • <%! 문장 %>

- Service() 메서드가 아닌 Class body 쪽에 해당코드가 바뀐다.

 

 

예제) exam1.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<%@ 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()%>
 
<%!
    String id = "u001";     //멤버변수 선언
    public String getId(){    //메서드 선언
        return id;
    }
%>
</body>
</html>
cs

 

exam1.jsp 파일이 servlet 파일로 바뀌었을 때 모습(exam1_jsp.java)

 

선언한 변수와 메서드는 클래스 바디부분에 있다.

_jspService 메서드에서 getId()라는 메서드를 호출하고 있다.

 

최종 정리:

<%! 변수 or 메서드%>

 

 

 

스크립트릿

  • 스크립트릿 : <% %>
  • 가장 일반적으로 많이 쓰이는 스크립트 요소
  • 주로 프로그래밍의 로직을 기술할 때 사용
  • 스크립트릿에서 선언된 변수지역변수
  • 스크립트릿의 문법
  • <% 문장%>

 

 

예제)exam2.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<%@ 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문 안에 출력을 하기 위해 스크립트릿을 분리해서 사용할 수 있다. -->
<%
    for(int i = 1; i <= 5; i++){
        
%>
<H<%=%>>아름다운 한글</H<%=%>>
<%
    }//스크립트릿을 나누어 for문 종료는 여기서 끝나게 할 수 있다.
%>
</body>
</html>
cs

 

- 스크립트릿에 기술된 것은 응답결과가 되지는 않는다.

- 그래서 스크립트릿을 분리하여 사용할 할 수 있다.

 

exam2_jsp.java 내에서 바뀐 모습

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
out.write("<body>\r\n");
 
    for(int i = 1; i <= 5; i++){
        
 
      out.write("\r\n");
      out.write("<H");
      out.print(i );
      out.write(">아름다운 한글</H");
      out.print(i );
      out.write('>');
      out.write('\r');
      out.write('\n');
 
    }
 
      out.write("\r\n");
      out.write("</body>\r\n");
cs

 

 

 

표현식(Expression)

  • 표현식 : <%=%>
  • JSP 페이지에서 웹 브라우저출력할 부분을 표현 (즉, 화면에 출력하기 위한 것)
  • 스크립트릿내에서 출력할 부분은 내장객체인 out 객체print() 또는 println() 메소드를 사용해서 출력,차후 설명
  • 표현식의 문법
  • <%=문장%>

 

 

주석(Comment)

  • JSP페이지에서 사용할 수 있는 주석
  • HTML주석, 자바주석, JSP주석

 

 

1. HTML 주석

  • HTML 주석은 <!--로 시작해서 -->로 끝나는 형태
  • HTML 주석은 HTML주석을 사용한 페이지를 웹에서 서비스할 때 화면에 주석이 내용이 표시되지는 않으나 , [소스보기]수행하면 HTML주석의 내용이 화면에 표시.
  • HTML주석의 예시
<!-- html 주석입니다. -->

2. JSP주석

  • JSP 페이지에서만 사용되며 <%--로 시작해서 --%>로 끝나는 형태
  • JSP 주석은 해당 페이지를, 웹 브라우저를 통해 출력 결과로서 표시하거나, 웹 브라우저 상에서 소스 보기를 해도 표시 되지 않음. 또한 JSP주석 내에 실행코드를 넣어도 그 코드는 실행되지 않음. 자바코드로 변환될때도 변하지 않는다.
  • JSP주석의 예시
<%-- JSP 주석입니다. --%>

3. 자바주석

  • 자바 주석은 //, /**/을 사용해서 작성.
  • //은 한 줄짜리 주석을 작성할 때 사용되고, /**/은 여러 줄의 주석을 작성할 때 사용
  • 스크립트릿이나 선언문에서 사용되는 주석으로, 자바와 주석 처리 방법이 같음
  • 자바주석의 예시
//주석

/*주석

여러 줄에 걸친 주석이다.

*/

 

주석 예제)exam4.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<%@ 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>
<%--jsp 주석입니다!!
    여러줄로 사용 가능 합니다!!
--%>
<!--html 주석입니다!!-->
<%
//자바 주석입니다.
/*
자바 주석입니다.
여러줄로 사용 가능합니다.
*/
    for(int i = 1; i <= 5; i++){
        
%>
<H<%=%>>아름다운 한글</H<%=%>>
<%
    }//스크립트릿을 나누어 for문 종료는 여기서 끝나게 할 수 있다.
%>
</body>
</html>
cs

 

- jsp 안에서 세가지 모든 종류의 주석을 사용 가능하긴 하다.

- 하지만 각각의 주석이 주석의 역할을 할 때의 경우는 다를 수 있다. 

 

참고 사이트 : http://www.edwith.org/



본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.

' > 부스트코스' 카테고리의 다른 글

[WEB]redirect, foward  (0) 2018.06.27
[WEB] JSP 내장 객체  (0) 2018.06.04
[WEB]Ajax통신의 이해  (0) 2018.06.03
[WEB]Browser Event, Event object, Event handler  (0) 2018.06.03
[WEB]DOM과 querySelector  (1) 2018.06.03
댓글