JSP 구성요소
1. JSP 지시자, JSP Directive
JSP 문서의 수행을 위한 정보를 전달한다.
1) page 지시자
현재 JSP 문서에 대한 속성을 지정한다.
JSP 페이지의 항상 첫번째 라인에 위치한다.
1개 이상 작성이 가능하다.
JSP의 실행환경(JSP 컨테이너)인 톰캣에게 현재 페이지의 정보를 알려준다.
<@ page @>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Calendar"%>
a. language="java"
JSP 페이지에서 사용할 서버 프로그래밍 언어를 java로 지정
b. contentType="text/html; charset=UTF-8"
JSP 페이지 내용물에 대한 기술한다.
text/html를 MIME Type이라고 한다. 현재 파일의 내용물이 HTML 문서라는 정보를 브라우저에게 제공한다.
charset=UTF-8 : HTML 문서를 인코딩하여 브라우저에게 제공한다.
c. pageEncoding="UTF-8"
JSP 페이지 인코딩을 의미한다.
d. import="java.util.Calendar"
자바의 import 구문과 동일한 역할로 패키지와 클래스를 참조한다.
2) include 지시자
지정된 URL의 페이지(JSP, HTML, Text 등)를 현재 JSP 페이지의 일부로 사용하는 기능을 의미한다. 이런 페이지를 조각페이지라고 한다. 코드를 분리하여 재사용이 가능해진다.
<%@ include %>
<%@ include file="파일경로" %>
예제) Copyright 문구 조각페이지 만들기
jsp를 다루는 webapp 폴더 아래 include 약자로 inc 폴더를 생성한다.
inc 폴더 내에 재사용 할 코드를 jsp 파일로 만든다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<hr>
<div>
©Copyright 2023 test.com All rights reserved.
</div>
코드를 사용할 곳에서 inclue를 통해 참조를 한다.
<%@ include file="inc/copyright.jsp"%>
2. 스크립트 요소, Scripting Elements
스크립트 요소는 Java 코드를 JSP 페이지에 삽입하는데 사용된다.
1) 스크립틀릿, Scriptlet
<% %>
JSP 영역에서 Java를 사용 가능하게 영역을 제공한다.
보통 HTML 영역 밖에 작성한다.
<% String name = "홍길동"; %>
2) 익스프레션, Expression
<%= %>
자바의 값(데이터)을 HTML 문서에 출력하는 역할을 한다.
<div>이름: <%=name %></div>
스크립틀릿과 익스프레션 예제
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String name = "홍길동";
int age = 20;
String txt = "<input type='text'>";
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>스크립틀릿 + 표현식</h1>
<div>이름: <%=name %></div>
<div>나이: <%=age %></div>
<div><%= txt %></div>
</body>
</html>
변수 txt는 자바에서는 단순 문자열로 인식하지만 html영역에서 익스프레션과 같이 사용하면 html문으로 인식한다.
우리가 작성한 코드는 화면에 출력하는 코드가 아닌 소스페이지에 소스를 찍는 것이다. 따라서 위와 같은 방식도 가능한 것이다.
자바 변수는 어느 영역에서나 사용할 수 있다.
3) 선언부
- 멤버 변수와 멤버 메소드를 선언하는 영역
- 스크립틀릿 영역에서 선언하는 변수는 지역변수이다. 지역변수로 생성된다는 것은 이미 어느 메서드의 변수라는 것을 알 수 있다. 그래서 스크립틀릿 영역에서는 메서드를 작성할 수 없다.
- 메서드를 작성하려면 선언부 영역을 이용하여 작성한다.
- 하지만 선언부를 작성하는 것보다 일반 자바 클래스를 활용하는 일이 더 많다.
<%!
int b = 20;
public int sum(int a, int b) {
return a+b;
}
%>
<body>
<div><%=10 + 20 %></div>
<div><%=sum(10,20) %></div>
</body>
하지만 이 메소드의 호출영역이 해당 파일에서만 사용가능해서 이런식으로 잘 사용하지 않는다.
다른 코드에서 사용가능하도록 자바클래스를 통해 만들어준다.
자바클래스 작성
JSP 파일에서 MyMath 인스턴스 생성
<%
MyMath m = new MyMath();
%>
JSP 파일 HTML 영역에서 호출
<body>
<div><%=m.sum(10,20) %></div>
</body>
3. 액션 태그, Action Tags
<jsp:XXX>, <c:XXX>
기본 액션 태그
확장 액션 태그
사용자 정의 액션 태그
'SERVER(Servlet, JSP)' 카테고리의 다른 글
[JPS] request : 클라이언트에서 서버로 전송할 때의 여러가지 관련 정보 가져오기 (0) | 2023.10.18 |
---|---|
[JSP] JSP 내장 객체와 request (0) | 2023.10.17 |
[JSP] JSP 프로젝트 생성 (0) | 2023.10.17 |
[Servlet] 데이터 전송 및 수신 (0) | 2023.10.17 |
[servlet] 정적 페이지와 동적 페이지의 작동 원리 (0) | 2023.10.17 |