-
JSP | Script 3대 요소 & Comment 주석JAVA/JSP 2020. 2. 17. 22:18
JSP 3대 Script 요소
요소 형식 목적 Scriptlet 스크립트릿 < % % > 프로그래밍 코드(Java code) 기술 Expression 표현식 < %= %> 화면에 출력할 내용 기술 Declaration 선언문 < %! % > 전역 변수 선언 및 메소드 선언
① ScriptLet
ScriptLet(스크립트릿): 웹 상에서 자바코드를 사용할 수 있도록 하는 영역
- < % Java Code % >: < & & > 내부에 자바 코드 작성, 주석도 작성 가능
- JavaScript 구문이 아니기 때문에 태그 및 표현식 작성 불가
- JSP 내부 어디든 선언해서 사용 가능
단, page Directive 위에 다른 스크립트릿을 사용해서는 안 됨 - 순차적으로 실행됨
head 태그 내부에는 스크립트릿으로 변수를 선언하고
body 태그 내부의 스크립트릿에서 변수 사용 가능
→ 순차적으로 실행되기 때문에 사용할 변수를 나중에 선언할 수는 없음 - 변수(지역 변수)를 선언하거나 간단한 제어문을 쓸 때 사용
12345678910111213141516171819202122232425262728<%@ 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 테스트0JSP 테스트1JSP 테스트2count: 3--></body></html>http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
② Expression 표현식
출력문 대용으로 간단하게 사용
- < %=JavaCode% >
스크립트릿 내부에 = 기호가 추가됨 - 변수값 출력, 메서드 호출시 사용
< %=변수명% >, < %=객체명.일반메소드명() % >, < %=정적메소드명() % > - 표현식 내부에는 ;(세미콜론)을 작성하지 않음
- 스크립트릿 내부에는 표현식 작성 불가
- 출력문 대용이기 때문에 웹 페이지에 출력됨
123456789101112131415161718192021<%@ 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)
같이 작성할 경우 기능과 디자인이 섞여서 보기도 안 좋고 충돌 가능성이 있음
12345678910111213141516171819202122232425<%@ 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 주석 내부에 표현식 사용 가능
스크립트릿은 사용 불가!!
1234567891011121314151617<%@ 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 주석 내부에 스크립트릿을 작성했을 때도 발생
종합 예제_표 만들기
1234567891011121314151617181920212223242526272829<%@ 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 Scriptlet1 Expression2 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 파일을 생성해야 한다는 점을 기억해야겠습니다.
'JAVA > JSP' 카테고리의 다른 글
JSP | Servlet (0) 2020.02.18 JSP | Page Diretives_<%@ page %> (0) 2020.02.18 JSP | JSP 환경 설정 (0) 2020.02.14 JSP | JSP 개요 및 특징 (0) 2020.02.14 JSP | Servlet 서블릿 개요 (0) 2020.02.14