<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%--
JSP 주석
JSP가 Servlet으로 변환될 때, 무시하고 진행
1. EL(표현언어) : HTML 코드 내에서만 연산이 가능하다.
서버상에 저장된 데이터를 출력시킬 때
Java 변수는 출력할 수 없다.
pageContext, request, session, application
모두 확인하고, 이름에 맞는 데이터를 꺼내온다.
(중복된 이름이 있는 경우 더 작은 scope걸 가져온다.)
우리가 특정 scope에서 데이터를 꺼내고 싶으면 앞에
~~scope.name 형식으로 scope를 명시
pageContext에서 데이터를 꺼낼 때는 pageScope.name
전송받은 파라미터가 있는 경우 param 영역에서 이름으로 꺼내오면된다.
param.name
${name}
--%>
<%
pageContext.setAttribute("b", 50);
session.setAttribute("b", 100);
request.setAttribute("b", 60);
%>
<h1>${sessionScope.b + 100}</h1>
<h1>${empty sessionScope.b}</h1>
<h1>${param.data + 50}</h1>
<%
int a = (int)pageContext.getAttribute("b");
String data = request.getParameter("data");
%>
<h1><%=a %></h1>
<h1><%=data + 50%></h1>
<hr>
<%--
2. JSTL : java에서 자주 사용하는 메소드/문법을 태그화 시켜놓은
커스텀 태그 라이브러리
<% for %> => <forEach>
주의! 라이브러리 종류가 여러가지
core => java 문법
fmt => 문자열 포맷팅
fuctions => 자바에서 많이 쓰는 메소드
...
이 중에서 사용하고싶은 라이브러리를 taglib 지시자를 통해 선언해야함.
--%>
<%--c:set => scope.setAttribute("name", "이베리코 목살"); --%>
<c:set var="name" value="항정살" scope="request"></c:set>
<h4>${requestScope.name}</h4>
<%-- if문
만약에 이름이 "이베리코 목살"이라면 '안녕하세요' 출력
test : 조건식
<%if(name.equals("이베리코 목살")){ %>
<h4>안녕하세요.</h4>
<%} %>
--%>
<c:if test="${name eq '이베리코 목살'}">
<h4>맛있엉</h4>
</c:if>
<c:if test="${! (name eq '이베리코 목살')}">
<h4>별루야</h4>
</c:if>
<%-- for문
1) for문 : 10번 박본
for(int i=0; i<10; i++){
pageContext.setAttribute("i", i);
}
2) forEach문 : 배열의 길이만큼 반복
String[] list = (list)pageContext.getAttribute("name");
for(String name : list){
}
--%>
<%
String[] list = {"양승광", "이범준", "안현진"};
pageContext.setAttribute("list", list);
%>
<c:forEach items="${list}" var="name">
<h4>${name}</h4>
</c:forEach>
<table>
<tr>
<c:forEach var="i" begin="0" end="9" step="1">
<td>${i}</td>
</c:forEach>
</tr>
</table>
</body>
</html>
댓글