<%= request.getParameter("email") %>
23. 09. 21
# 주석
html 형식의 주석
JSP는 HTML과 함께 구성되므로 HTML 형식의 주석 사용 가능 (단, JSP 문법이 사용된 부분에는 사용 불가)
<!-- 주석 -->
JSP 주석
HTML과 JSP 문법 모든 부분에 사용할 수 있으며 웹 브라우저에서 소스 보기(ctrl + u)를 하면 주석이 보이지 않음
<%-- 주석 --%>
자바 주석
JSP 스크립트릿 영역 내에서 사용
/* */, //, /** */
# 지시어
지시어의 종류
page 지시어 : JSP 페이지에 대한 정보를 설정한다.
taglib 지시어 : 표현 언어에서 사용할 자바 클래스나 JSTL을 선언한다.
include 지시어 : 외부 파일을 현재 JSP 페이지에 포함시킨다.
# page 지시어
page 지시어
현재 JSP 페이지를 컨테이너에서 처리하기 위한 각종 속성 지정
<%@ page 속성1="속성값1" 속성2="속성값2" ... %>
사용 예
<%@page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<%@page import="java.util.Calendar"%>
지시어 목록
속성 | 내용 | 기본값 |
language | 스크립트 언어 지정 | java |
import | jsp 파일 내에서 사용할 외부 자바 패키지나 클래스 지정 | - |
session | 세션 생성 여부 지정 | true |
buffer | 버퍼 크기 지정 | 8kb |
autoFlush | 버퍼 내용 자동 비움 지정 | true |
isThreadSafe | 단일 쓰레드 모델을 사용하여 동시성 제어 여부 지정 | true |
info | jsp 페이지 설명 | - |
errorPage | 에러 발생 시 호출 페이지 지정 | - |
isErrorPage | 에러만 처리하는 페이지 지정 | false |
contentType | MIME 형식과 캐릭터셋 설정 | text/html; charset=ISO-8859-1 |
pageEncoding | charset과 같이 인코딩을 지정 | ISO-8859-1 |
trimDirectiveWhitespaces |
지시어 선언으로 인한 공백을 제거할지 여부를 지정 | false |
taglib 지시어
현재 JSP 페이지에 사용할 커스텀 태그 라이브러리를 지정
- 포준화된 커스텀태그: JSTL(JSP Standard Tag Library)
- JSP 페이지 내에 불필요한 자바 코드를 줄일 수 있음.
- 라이브러리를 JSP에서 사용할 때 접두사를 지정하기 위해 사용
- uri 속성과 prefix 두 가지 속성으로 구성
uri 속성: 태그 라이브러리에서 지정한 태그와 속성 정보를 저장한 Tag 파일이 존재하는 위치 지정
prefix 속성: 사용할 커스텀 태그의 namespace를 지정
<%@taglib uri="사용할 URL 주소" prefix="접두사" %>
사용 예
<%@ taglib uri="/META-INF/mytag. tld" prerfix="mytag" %>
# 액션
액션 태그(Action Tag)란?
자바 코드 형태로 작성할 수 있는 것을 태그 형태로 정의한 것
- 코드 양을 대폭 줄일 수 있고 가독성 높은 소스코드를 작성할 수 있음
- 태그의 이름 앞에 jsp 라는 접두어를 사용
- jsp와 jsp 사이를 제어하거나 다른 페이지의 실행 결과를 현재 페이지에 포함시킬 수 있음
액션 태그 목록
종류 | 액션 | 기능 |
페이지 이동, 포함 | jsp:include | 다른 페이지를 현재 페이지에 포함 |
페이지 이동, 포함 | jsp:forward | 현재 페이지의 제어를 다른 페이지로 전달 |
Data 객체 사용 | jsp:useBean | 자바 빈즈를 생성하고 사용하기 위한 환경을 정의 |
Data 객체 사용 | jsp:getProperty | 자바빈즈의 property를 얻음 |
Data 객체 사용 | jsp:setProperty | 자바빈즈의 property를 설정 |
페이지 변수 전달 | jsp:plugin | 애플릿과 같은 다른 구성 요소를 포함 |
페이지 변수 전달 | jsp:param | 매개 변수 값을 설정, 대부분 include, forward에서 사용 |
페이지 변수 전달 | jsp:fallback | 플러그인이 작동하는 경우 메시지를 인쇄하는 데 사용 (jsp:plugin에서 사용) |
include
현재 jsp 페이지의 특정 영역에 외부 파일의 내용을 포함한다. (include 지시어와 유사하므로 헷갈리지 않도록 하자.)
include 지시어와의 차이점
- 실행 시점에 해당 파일을 호출하고 결과를 포함시킴
- 파라미터를 전달할 수 있음
<jsp:inclde page="포함할 외부 파일명" flush="false" />
* page: 현재 jsp 페이지 내에 포함할 내용을 가진 외부 파일명
* flush: 설정한 외부 파일로 제어가 이동할 때 현재 jsp 페이지가 지금까지 출력 버퍼에 저장한 결과를 처리
사용 예
include_test1.jsp
<jsp:include page="include_test2.jsp">
<jsp:param name="email" value="test@test.com" />
<jsp:param name="tel" value="010-0000-0000" />
</jsp:include>
include_test2.jsp
<%= request.getParameter("email") %>
forward
현재 jsp 페이지에서 다른 페이지로 이동하는 태그
- include 액션과 유사하지만 현재 페이지의 제어권을 완전히 다른 페이지로 전달
- 브라우조 url에는 최종 전달된 파일명이 보이는 것이 아니라 최초 호출한 파일명이 보임
- -jsp 컨테이너가 forward 액션 태그를 만나면, 그전까지 출력 버퍼에 저장되어있던 내용을 모두 삭제하고, forward 액션 태그에 설정된 페이지로 프로그램의 제어가 이동함
기본형식
<jsp:forward page="이동할 외부 파일명" />
사용 예
forward_test1.jsp
<jsp:forward page="forward_test2.jsp">
<jsp:param: name="email" value="test@test.com" />
<jsp:parem name="tel" value="010-0000-0000" />
</jsp:forward>
forward_test2.jsp
<%= request.getParameter("email") %>
plugin
웹 브라우저에서 자바 애플릿을 실행시킬 때 사용
- 애플릿이 웹에서의 서비스가 느린 것 때문에 잘 사용하지 않는다.
- 애플릿은 JNLP(Java Network Lunching Protocol)로 대체되는 추세이다.
useBean
자바빈즈를 사용하기 위해 실제 자바 클래스를 선언하고 초기화하는 태그
id: 생성될 자바빈즈 객체(인스턴스)의 이름을 쓰는 곳 (필수 속성)
class: 객체가 생성될 자바빈 클래스명을 기술하는 곳으로 패키지명을 포함한 자바 클래스의 풀네임을 기술한다. (필수 속성) 예) class="패키지이름.클래스이름"
scope: 자바빈 객체의 유효 범위로 자바빈 객체가 공유되는 범위를 지정한다. scope 속성값으로 page, request, application을 가지며 scope 송석 생략 시 기본값은 page이다.
setProperty
자바빈즈의 setter() 메서드에 접근하여 자바빈즈의 멤버변수인 프로퍼티의 값을 저장하는 태그
name: 사용할 빈의 이름을 지정 (필수 속성)
property: 값을 저장할 프로퍼티명을 지정 (필수 속성)
value: 프로퍼티에 저장할 값을 지정
기본 형식
<jsp:property name="식별자" property="프로퍼티 이름" value="값" />
getProperty
자바빈즈 객체에서 저장된 프로퍼티 값을 사용하기 위해 사용
name: 사용할 빈의 이름을 지정
property: 값을 가져올 빈의 변수를 지정
기본 형식
<jsp:getProperty name="식별자" property="프로퍼티 이름"/>
param
현재 jsp 페이지에서 다른 페이지에 정보를 전달하는 태그
단독으로 사용할 수 없으며, <jsp:include>나 <jsp:forward> 태그의 내부에서 사용해야 함
기본 형식
<jsp:include page="외부파일명" name="식별자" value="값" />
선언
jsp 파일에서 메서드나 멤버 변수를 쓸 때 사용
jsp 내에 프로그램 코드를 많이 두는 것은 바람직하지 않음
기본형식
<%! 멤버 변수 선언, 메서드 선언 %>
사용 예
<%!
// 멤버 변수 선언이나 메서드 선언이 올 수 있다.
String str = "test";
public boolean check() {
return false;
}
%>
표현식
jsp 파일에서 간단한 출력을 위해 사용한다.
out.println()의 인자로 적합한 형태여야 한다.
기본형식
<% 메서드 호출 및 변수 %>
사용 예
메서드 호출: <%= calculator() %>
변수 출력: <%= result %>
사칙연산과 문자열 결합: <%= "i + 2" + i + 2 + 입니다" %>
스크립트릿
jsp 파일 중간에 자바 코드를 기술하는 방식
- 태그 라이브러리 등을 권장하며 스크립트 남용 => 페이지 가독성을 떨어뜨리고 유지보수를 어렵게 한다.
- 스크립트릿에서 화면 출력을 위해 out.println()을 사용한다.
- 스크립트릿을 닫고 html 출력 후 다시 스크립트릿을 작성하는 것도 가능
기본 형식
<% 자바 코드 %>
사용 예
<%
// 로컬 변수 선언이나 프로그램 로직이 올 수 있다.
String str = "test";
for( int i=0; i<10; i++) {
out.println(i);
}
%>
'2023-02 몰입형 SW 정규 교육' 카테고리의 다른 글
HTTP 상태 코드 100 ~ 500 (0) | 2023.09.21 |
---|---|
Get, Post 차이점 및 한글 처리 방식 (0) | 2023.09.21 |
[JSP/Servlet] 회원가입 (0) | 2023.09.20 |
웹 프로그래밍 개념 (Web Programming) (0) | 2023.09.19 |
[JavaScript] 회원가입 예제 (정규표현식 미사용) (0) | 2023.09.19 |