JAVA/JSP
JSP | Script 3대 요소 & Comment 주석
pathas
2020. 2. 17. 22:18
JSP 3대 Script 요소
| 요소 | 형식 | 목적 |
|---|---|---|
| Scriptlet 스크립트릿 | < % % > | 프로그래밍 코드(Java code) 기술 |
| Expression 표현식 | < %= %> | 화면에 출력할 내용 기술 |
| Declaration 선언문 | < %! % > | 전역 변수 선언 및 메소드 선언 |
① ScriptLet
ScriptLet(스크립트릿): 웹 상에서 자바코드를 사용할 수 있도록 하는 영역
- < % Java Code % >: < & & > 내부에 자바 코드 작성, 주석도 작성 가능
- JavaScript 구문이 아니기 때문에 태그 및 표현식 작성 불가
- JSP 내부 어디든 선언해서 사용 가능
단, page Directive 위에 다른 스크립트릿을 사용해서는 안 됨 - 순차적으로 실행됨
head 태그 내부에는 스크립트릿으로 변수를 선언하고
body 태그 내부의 스크립트릿에서 변수 사용 가능
→ 순차적으로 실행되기 때문에 사용할 변수를 나중에 선언할 수는 없음 - 변수(지역 변수)를 선언하거나 간단한 제어문을 쓸 때 사용
|
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>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<%
// 변수 선언
int count = 3;
%>
</head>
<body>
<%
// 웹 페이지에 출력을 수행하는 반복문
for (int i = 0; i < count; i++) {
out.println("<h1>JSP 테스트" + i + "</h1><br/>");
}
out.print("count: " + count);
%>
<!--
JSP 테스트0
JSP 테스트1
JSP 테스트2
count: 3
-->
</body>
</html>
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
② Expression 표현식
출력문 대용으로 간단하게 사용
- < %=JavaCode% >
스크립트릿 내부에 = 기호가 추가됨 - 변수값 출력, 메서드 호출시 사용
< %=변수명% >, < %=객체명.일반메소드명() % >, < %=정적메소드명() % > - 표현식 내부에는 ;(세미콜론)을 작성하지 않음
- 스크립트릿 내부에는 표현식 작성 불가
- 출력문 대용이기 때문에 웹 페이지에 출력됨
|
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>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<%
// 변수 선언
int count = 3;
%>
</head>
<body>
<!-- 표현식 작성 -->
<%=count%>
<%=count%>
<%=count%>
<!-- 3 3 3 -->
</body>
</html>
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
③ Declaration 선언문
- < %!JavaCode% >, 스크립트릿에 !(느낌표)가 추가됨
- 전역 변수, 메소드 선언시 사용
- 선언된 위치에 상관없이 변수를 불러다 사용 가능
- 일반적으로 메소드는 다른 파일에 작성해서 분리함(JavaBean)
같이 작성할 경우 기능과 디자인이 섞여서 보기도 안 좋고 충돌 가능성이 있음
|
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
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%=sum(5, 3)%>
<!-- 8 -->
<%=count%>
<!-- 3 -->
<%!
// 변수 선언
int count = 3;
// 메소드 선언
public int sum(int a, int b) {
return a + b;
}%>
</body>
</html>
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
※ JavaBean
DTO(Data Transfer Object): Setter, Getter
DAO(Data Access Object): 웹 상에서 DB에 관련된 메소드만 선언된 클래스
comment 주석
- <%-- --%>: JSP 주석, 페이지 '소스 보기'에서 주석 확인 불가, 개발자만 확인 가능
- <!-- -->: HTML 주석, '소스 보기'에서 주석 확인 가능, 클라이언트도 확인 가능
- //, /* */: Java 주석, 스크립트릿, 표현식, 선언문 내부에 사용
- HTML 주석 내부에 표현식 사용 가능
스크립트릿은 사용 불가!!
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<!-- HTML 주석 -->
<%-- JSP 주석 --%>
<head>
<meta charset="UTF-8">
<title>JSP Comment</title>
</head>
<!-- 5+3 <%=5+3%> -->
<%/* 주석 내부에 표현식을 작성하는 경우
소스 보기에서 8이 출력된 것을 볼 수 있음*/%>
<body bgcolor="yellow">
<h1> JSP 주석 확인 예제</h1>
</body>
</html>
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
※ HTTP 상태 500 에러
문법이 잘 못된 경우 발생하는 에러
html 주석 내부에 스크립트릿을 작성했을 때도 발생
종합 예제_표 만들기
|
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
29
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<%!
// 문자열 배열 선언
String[] keyword = { "Scriptlet", "Expression", "Declaration" };
%>
</head>
<body>
<!-- table 태그는 하나만 있으면 되므로 for문 밖에 작성 -->
<table border="1px solid black" width="200">
<%
// tr, td를 for문을 통해서 생성
for (int i = 0; i < keyword.length; i++) {
out.println("<tr><td>" + i + "</td><td class='td2'>" + keyword[i] + "</td></tr>");
}
%>
</table>
<!--
0 Scriptlet
1 Expression
2 Declaration
-->
</body>
</html>
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
웹 애플리케이션 배포_WAR 내보내기
WAR: Web ARchive로 웹 애플리케이션을 구성하는 파일들을 포함하는 파일
웹 애플리케이션을 완성한 후 서비스하기 위해서는 반드시 WAR파일을 만들어야 함
WAR 파일 생성
- 서버 실행 종료
- 배포를 원하는 프로젝트 우클릭
- Export → WAR file
- Destination: 저장 경로 지정
- Export source files: 자바 파일을 같이 내보낼 것인지 선택
- Overwrite existing file: 이미 존재하는 WAR 파일이 있는 경우 덮어쓸 것인지 선택
- Finish
WAR 파일 불러오기
- Project Explorer 우클릭
- Import → WAR Import
- WAR file: WAR 파일 경로 지정
- Web project: 프로젝트명 지정, 프로젝트명이 중복되는 경우 충돌
- Taget runtime: 런타임 서버 선택
- Finish
JSP 기초 문법이라고 할 수 있는 Script 3대 요소와 주석에 대해 알아보았습니다.
Script 요소를 사용함으로써 JSP파일에서 HTML과 Java 코드를 함께 사용할 수 있습니다.
스크립트릿과 선언문의 가장 큰 차이는 선언문의 경우 전역 변수와 메소드를 작성하기 때문에
선언문의 변수는 어디서든 호출할 수 있다는 점입니다.
또한 표 만들기 예제에서 볼 수 있듯이
스크립트릿과 HTML 태그를 혼용하는 경우에는
스크립트릿이 순차적으로 실행되면서 HTML태그와 섞이지 않도록 주의해야 하겠습니다.
마지막으로 동적 웹 페이지의 배포를 위해서는 반드시 WAR 파일을 생성해야 한다는 점을 기억해야겠습니다.