티스토리 뷰

JSP 특징

1.html 페이지에 , java 코드를 사용한다. 

2. 서블릿 컨테이너에 의해 관리되는 내장객체가 생명주기를 이용하여 페이지간의 속성관리를 한다. 

3. 커스텀 태그 기술을 사용하여, 코드를 태그화한다(action, jstl)

4. EL을 통해 데이터를 표현한다. ${}

 

 

JSP 파일의 구성요소 

 

지시어, 액션, 템플릿 데이터, 스크립트 요소, 커스텀 태그, EL

지시어: JSP 파일의 속성을 기술하는 요소이다.

JSP 컨테이너에 해당페이지를 어떻게 처리해야하는지 전달하는 내용을 담고있다. 

템플릿 데이터:JSP의 화면구성요소 

스크립트 요소:JSP 에서 나타나는 자바 코드 

커스텀 태크: 사용자 정의 태그 

EL: 표현언어로 , 자바 빈객체를 사용, 접근할 수 있으며 out.print할때 쓰인다. 

 

 

 

JSP 파일의 컴파일 순서 

 

jsp 파일은 html 문서의 형식이다. 

이 jsp파일이 서블릿이 되기까지 과정은 

 

jsp-> java->class->servlet 과정이 있다. 

이때문에 디자이너와 개발자의 역할분담 제약이 있고, 

작은 디자인확인에도 서블릿 컨테이너가 실행이 필요하다. 

 

위에 말한 단점이 ssr 방식의 백엔드 웹개발의 단점이다. 

컴파일된 jsp는 단순한 파일이 아닌, 컨테이너에서 서브릿객체로 관리된다. 

 

 

 

지시어, page, include, taglib

 

지시어는 jsp파일의 속성을 기술하는 요소이다. 

page.include, taglib 이 있으며 각각의 속성은 다르다. 

 

page: 현재 jsp 페이지를 컨테이너에서 처리(즉 서블릿으로 변환)할떄 필요한 속성을 기술

<% page language = "java" contentType ="text/html; charset ="UTF-8" pageEncoding = "UTF-8" 
   import = "java.util.*" errorPage = "error.jsp"%>

 

include:다른파일을 포함시키기위한 지시어, 파일내용을 모두 포함해 하나의 서블릿코드로 생성하여 컴파일한다. 

(여기서, include액션과 다르다, 액션은 여러 파일을 각자 컴파일한다)

 

<%@ include file = " " %>​

 

taglib: 커스텀 태그 사용위한 지시어

tagdir, url속성을 이용해 태그의 위치를 설정한다. 

prefix: 접두사를 이용해 커스텀 태그를 쉽게 사용한다. 

<%@ taglib tagdir = "경로,,," prefix = "m" %>

 

 

 

스크립트 요소 -jsp에서 쓰이는 자바 코드 

선언태그, 표현태그, 스크립트릿 태그 3가지가 있다. 

 

선언태그  <%! %>
표현태그  <%= %>
스크립트릿태그  <%  %>

 

 

액션태그, 자바 빈

 

액션 태그 : JSP에서 객체생성, 공유 , 페이지이동, 전달 등등의 필요한 기능을 제공하는 커스텀태그 

 

jsp에서 필요한 기능을 제공하는 커스텀 태그 =액션태그 

 

forward,include, useBean, setProperty, getProperty, param이라는 액션이 있다.

 

자바 빈: 재활용 가능한 컴포넌트 모델, 다시 사용할수 있는 class를 만드는것 

POJO라는 구조를 갖는다.

 

POJO: 특정기술, 프레임워크에 종속하지 않고 기본생성자로 구성되어있다.

멤버변수는 getter,setter메서드를 제공하여 멤버변수에 접근할 수 있게 한다. 

직렬화할 수 있는 자바 class를 의미한다.

 

 

useBean, include, forwoard액션

 

 

useBean: html form 에서 입력한 값을 자바객체로 연동할때 useBean을 사용한다. 

<jsp:useBean id ="calc" class = "부르고 싶은 class쓰기" />

 

include: 다른 jsp파일을 현재페이지에 포함하고 싶을때 쓰는 액션 

forwoard: 다른jsp파일을 전달하고 싶을때 쓰는 액션 

 

 

<jsp:param>액션을 사용해 피라미터 값을 수정하거나 추가도 가능하다. 

<jsp:param name ="key값" value = "넣고 싶은 data">

 

<!-- main.jsp에서 header.jsp부르기 -->
<jsp:include page ="header.jsp" >
<jsp:param name ="title" value ="my home"/>

피라미터 값을 추가도 하였다. 

<!-- 페이지이동, 리디렉션또는 forward액션 사용-->
<jsp:forward page ="result.jsp">
	<jsp:param name = "title" value="my home"/>

forward 액션을 사용해 페이지 이동을 함

 

 

커스텀 태그 

 

jsp에서 스크립트릿 사용을 줄이고 태그 라이브러리를 활용하고자하여 개발된 규격

 

이 커스텀 태그로 만들어진게 JSTL

 

 

 

표현언어 EL

 

페이지의 자바객체 application, session , request와 같은 scopeobject에 저장된 자바 빈객체를

손쉽게 사용, 접근할 수 있게 해준다. (출력을 할때 쓰인다. )

 

1. 간단한 구문으로 손쉽게 변수, 객체를 참조 print할 수 있다. 

2. 데이터가 없거나, null 객체 참조시에 error가 발생하지 않는다. 

 

<!-- EL 을 사용해 접근 -->
${저장이름.변수명}
<!--표현식을 이용해 접근-->
<%= 저장이름. 변수명 %>
<!--액션을 이용해 접근 -->
<jsp.getProperty name ="저장이름" Property = "변수명"/>

 

EL은 간단한 사칙연산, 비교, 논리, 3항 연산도 가능하다. 

배열,map 객체도 추출이 가능하다. 

${10+20}
${10*20}
${true&&false}
${true>=false}
${user.name =='홍길동' ?"교수":"학생"}

${myList[0]}
${myMap["name"]}

 

 

JSTL - 표준 커스텀 태그 라이브러리

 

표준 커스텀 태그 라이브러리로, 백엔드 개발에 필수요소로 자리잡았다. 

 

 

1. <c:if>

<c:if test ="조건" var = "결과변수result">
	test result :${result} <!--true이면 나타남, 조건이 맞으면 result에 true-->
   </c:if>

 

2.<c:set><c:out>

set: 값을 저장하는 기능, 기본 문자열을 저장하며, $을 사용해 배열을 저장가능하다 

out: 출력을 위한 태그 

 

<c:set var ="product1" value ="<h1>애플</h1>"/>
<c:set var = "product2" value = "${[1,2,3]}" />

<c:out value = "${product1}" default = "출력하고자 하는 객체가 없을때 대신출력",escapeXml="true"/>

escapeXml -> true 이면 태그를 문자열로 처리하여 태그 모두 출력된다. 

 

3. <c:forEach>

varstatus속성을 이용해 index를 같이 출력한다. 

<c:forEach var = "m" items ="${members}" varstatus ="i">
	<li>${i.index}:${m} </li>
 </c:forEach>

 

4. <c:forEach, choose,otherwise>

if-else, switch기능 

<c:choose>
	<c:when test = "${checkout==number}">
    </c:when>
    <c:otherwise>
    </c:otherwise>
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
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 30 31
글 보관함