06_JSTL(1)

김정욱·2023년 3월 22일
0

Server 복습

목록 보기
9/13
post-thumbnail

JSTL(Jsp Standard Tag Library)

✔️ JSP에서 자주 사용되거나 공통적으로 사용되는 Java 코드를 표기법을 간단히 태그화 하여
   표준으로 제공하는 것
   (if, for, 배열/컬렉션 길이, 문자열 치환, 숫자 데이터 형식 변경, 데이터 파싱,
	scope 변수 선언 등)

📝 JSTL 라이브러리 등록 방법
1) https://tomcat.apache.org/download-taglibs.cgi 접속
2) Jar Files → Impl, Spec, EL 다운로드
3) webapp/WEB-INF/lib 폴더에 추가하기

✔️ JSTL 사용을 위한 선언 방법
 - JSP 파일 최상단에 추가하고자 하는 JSTL taglib를 추가
ex) <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

1) index.html

<ul>
  <li>
    <a href="jstl">3. JSTL</a>
    <!-- 상대 경로 주소 -->
  </li>
</ul>
<!--  
현재 페이지 주소 : /JSPProject2/index.html
목표 페이지 주소 : /JSPProject2/student/selectAll
-->

2) servlet

@WebServlet("/jstl")
public class JSTLServlet extends HttpServlet {

  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
  throws ServletException, IOException {
		
	RequestDispatcher dispatcher = 
    req.getRequestDispatcher("/WEB-INF/views/jstl.jsp");
		
	dispatcher.forward(req, resp);
	}
}

3) JSP

💡 상단에 작성 
<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!-- 
  prefix : 접두사
  uri(Uniform Resource Identivier) : 자원을 구분하는 식별자(주소 형태)
-->

----------------------------- 생략 -----------------------------
✔️ 1. 변수 선언 ( c:set 태그 )
 - 변수를 선언하고 값을 초기화하는 태그 (원하는 scope의 내장 객체에 값을 세팅)
 - c:set 속성
  1) var : 변수명(setAttribute의 key 값)
  2) value : 대입될 값
  3) scope : 내장 객체 범위 (기본값 : page)

<!-- scriptlet 작성법 -->
<% pageContext.setAttribute("num1", 10); %>

<!-- JSTL 작성법 -->
<c:set var="num2" value="20" />

${ num1 } / ${ num2 }

<!-- request scope에 num2 세팅 -->
<c:set var="num2" value="300" scope="request" />

<h4>${num2}</h4> <!-- 20, 우선순위 -->
<h4>${requestScope.num2}</h4> <!-- 300 -->

<c:set var"temp" value="임시 값" scope="session" />
<h4>temp : ${temp}</h4>  

✔️ 2. 변수 삭제 ( c:remove )
 - c:set / setAttribute()로 추가된 값 제거

 - c:remove 속성
  1) var : 삭제할 변수명(key)
  2) scope : 삭제할 내장 객체 범위(기본값 : 모든 범위)

<c:remove var="temp">
temp 삭제 확인 : ${temp} <br>

<c:set var="test" value="page" scope="page" />
<c:set var="test" value="request" scope="request" />
<c:set var="test" value="session" scope="session" />
<c:set var="test" value="application" scope="application" />

<!-- 모든 범위 삭제 -->
<%-- <c:remove var="tset" /> --%>

<c:remove var="test" scope="request" />  

${pageScope.test} / ${requestScope.test} / ${sessionScope.test} 
/ ${applicationScope.test} 

profile
절박한 마음을 갖고 하루를 보내자!!

0개의 댓글