웹개발/jsp

[JSP]#2 디렉티브 및 스크립트(기본적인 JSP문법)

RBWSN 2015. 3. 22. 07:36
728x90
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<%@ 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>Hello World</title>
</head>
<body>
<h2>Hello Wrold2</h2>
<%= "Hello World3"%>
 
</body>
</html>
cs
저번 시간에 본 JSP코드를 보도록하자 여기서 중요한거는 이페이지는 한가지 코드로 이루어 진것이아니다
<% 부분들은 전부 JSP코드이고 다른부분은 HTML 코드이다.

HTML코드는 정적이므로 로직관련 처리는 하지못한다 그냥 나타내기만 할뿐이고 로직관련코드는
<%부분인 JSP에 기술해야한다.


JSP는 보안이 뛰어난데 이클립스내에서 소스보기를 클릭하면
이런식으로 HTML코드는 나오지만 JSP코드는 글자만 출력된것을 알수있다.


로직이나 프로그래밍관련코드는 JSP코드에 기술하면된다.

JSP 는 브라우저에서 JSP페이지를 ㅇ서버로 요청하게되면 서버는 요청을 컨테이너로 넘긴다. 이러한 요청을 받은 컨테이너는 해당 JSP페이지를 찾아 서블릿(.java)로 변환하는 과정을 거친후 컴파일(class)파일로 컴파일한다.

이러한과정은 jsp페이지가 최초로 요청되었을때 한번만 실행된다. 이후는 서블릿 파일로 바로바로 처리를한다.


이제한번 JSP의 언어를 보도록하자.
먼저 JSP의 구성요중인 Page 디렉티브를 보자.

일단 page 디렉티브는 속성값을 이렇게 사용이가능하다.


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding= "UTF-8"%>

이런식으로 제일위에 나와있는 1,2째줄이 page 타입이다.


이중에서 중요한 타입 몇개만 실험해보도록하자

먼저 import 속성을 보도록하자 자바를 배웠다면 자바의 import 속성과같다 page 중에서 여러번 사용이가능하다.
현재 시각을 알아오는 클래스와 그 데이터를 포맷하는 클래스를 추가했다.

그전에 먼저 우리가 매번 똑같은곳에 코드를 수정하며 할수 없으므로 폴더를 생성하여 그곳에 따로 저장하도록한다.




코드는 01-1에 이렇게 정의하였다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<%@page import="java.text.SimpleDateFormat"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="java.sql.Timestamp"%>
<!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>Import 속성 테스트</title>
</head>
<body>
<h2>Import 속성 테스트2</h2>
<%
    Timestamp Time = new Timestamp(System.currentTimeMillis()); // 현재시각을 얻어옴
    SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd HH:MM:ss"); // 포맷형태를 정함
    String dateset = date.format(Time); // 데이터포맷
%>
 
현재 시각 <%=Time%> <%--데이터출력 JSP 주석문 --%>
 
</body>
</html>
cs


이런식으로 실행이 되는것을 확인할수있다
<%   %>
안에서는 그냥 자바클래스를 사용하게되면 자동으로 추가가되니 그냥 자바코드를 바로 넣으면된다.

중간에 pageEncoding 속성이 보이는데 생략시 기본값으로 우리가 아까 설정해놓은 ISO-8859-1을사용한다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding= "UTF-8"%>


그냥 쓰면된다.

이번에는 두번째인 include 디렉티브에 대해서 알아볼껀데 이기술은 JSP페이지에서 여러JSP중 공통적인부분을 추출해와서 표시하고 싶을때 삽입하는 속성이다.

사용방법은 <%@ include file=url%>이다.

01-1을 01-2에 포함시켜보자.

먼저 결과화면은 이렇다 
01-1에서 사용한 데이터변수를 그대로 가져와서 01-2에 사용하였다.
01-1과 01-2의 코드를 보자

01-1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<%@page import="java.text.SimpleDateFormat"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@page import="java.sql.Timestamp"%>
<!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>Import 속성 테스트</title>
</head>
<body>
<h2>Import 속성 테스트2</h2>
<%
    Timestamp Time = new Timestamp(System.currentTimeMillis()); // 현재시각을 얻어옴
    SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd HH:MM:ss"); // 포맷형태를 정함
    String dateset = date.format(Time); // 데이터포맷
%>
 
현재 시각 <%=dateset%> <%--데이터출력 JSP 주석문 --%><p>
01-1의 내용입니다.
 
</body>
</html>
cs

01-2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%@ 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>추가 속성 테스트</title>
</head>
<body>
<h2>Include Test</h2>
<%= "현재 페이지는 01-2입니다."%>
 
<hr>
<%@include file="01-1.jsp"%><p<%-- 01-1을 포함시킴 --%>
<hr>
 
<%=dateset%> <%-- 01-1의 시간 저장된 변수를 가져와서 사용 --%>
 
 
</body>
</html>
cs
이렇게 include를 이용가능하다

이제는 스크립트를 알아보도록하자
JSP페이지에는 3가지요소가 있는데

전역변수및 메소드 선언에 사용가능한 <%! %>  선언문
프로그래밍 코드를 기술하는 <% %> 스크립트릿
화면에 출력할 내용인 <%= %> 표현식

세가지를 사용해보자.

일단 전역변수와 지역변수이다. 
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
<%@ 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>02-1스크립트 </title>
</head>
<body>
<h3>Script Test</h3>
<%! String str = "전역변수 선언";
    public String getStr(){ // str리턴
    return str;
    }
   %>
 
 
    
<% String str2 = "지역변수 선언";%>
 
 
전역변수 메소드 str = <%=str%><br>
지역변수 str2 = <%=str2%>
 
 
</body>
</html>
cs



전역변수란
전역 변수는 어떤 변수 영역 내에서도 접근할 수 있는 변수를 의미


지역변수는 그 지역내에서만 접근 가능한 변수이다.


이런식으로 str2를 다른 선언문에서 쓰려고한다면 오류가 날것이다
하지만 %!로 설정된 전역변수를 다른 선언문에서 사용하려고하면 잘 될것이다.


이번에는 표현식에 대해 알아보도록 하겠다.
표현식은 변수도 넣기가 가능하다.


이런식으로 랜덤으로 값을 대입받아 표현하는것도 가능하다.


다음 시간에는 제어문및 한글처리 연산자에대해 알아보겠다.


728x90