* EL(Expression Language)
- JSP에서 자바코드를 직접 쓰지 않고, 간단한 문법으로 데이터를 표현할 수 있도록 도와주는 언어
더보기
<%=request.getAtttribute("name")%>
↓ (EL로 변환)
${name} - 내장객체 값도 찍을 수 있음
** 내장 객체 우선순위
- pageScope : 현재 페이지에서만 사용할 수 있는 속성 (페이지 이동시 자동 삭제)
- requestScope
- sessionScope
- applicationScope
** EL의 주요기능
- ${user} → 변수
- ${user.userid} = ${user["userid"]} → 객체
- ${user[0]} → 배열
- ${user["key"]} → 맵
- 연산 가능 → ${price + 1000} // + - / * mod(나머지) < > etc...
- ${price > 10000 ? "비싸다" : "싸다"}
- ${empty name} // name이 null 또는 빈 문자열이면 true 반환
package com.koreait.model2;
public class memberDTO {
private int idx;
private String userid;
private String userpw;
private String name;
private String hp;
private String email;
private String gender;
private String ssn1;
private String ssn2;
private String zipcode;
private String address1;
private String address2;
private String address3;
private String regdate;
private int point;
public memberDTO() {}
public memberDTO(int idx, String userid, String userpw, String name, String hp, String email, String gender, String ssn1, String ssn2, String zipcode, String address1, String address2, String address3, String regdate, int point) {
this.idx = idx;
this.userid = userid;
this.userpw = userpw;
this.name = name;
this.hp = hp;
this.email = email;
this.gender = gender;
this.ssn1 = ssn1;
this.ssn2 = ssn2;
this.zipcode = zipcode;
this.address1 = address1;
this.address2 = address2;
this.address3 = address3;
this.regdate = regdate;
this.point = point;
}
public int getIdx() {
return idx;
}
public void setIdx(int idx) {
this.idx = idx;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getUserpw() {
return userpw;
}
public void setUserpw(String userpw) {
this.userpw = userpw;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getHp() {
return hp;
}
public void setHp(String hp) {
this.hp = hp;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getSsn1() {
return ssn1;
}
public void setSsn1(String ssn1) {
this.ssn1 = ssn1;
}
public String getSsn2() {
return ssn2;
}
public void setSsn2(String ssn2) {
this.ssn2 = ssn2;
}
public String getZipcode() {
return zipcode;
}
public void setZipcode(String zipcode) {
this.zipcode = zipcode;
}
public String getAddress1() {
return address1;
}
public void setAddress1(String address1) {
this.address1 = address1;
}
public String getAddress2() {
return address2;
}
public void setAddress2(String address2) {
this.address2 = address2;
}
public String getAddress3() {
return address3;
}
public void setAddress3(String address3) {
this.address3 = address3;
}
public String getRegdate() {
return regdate;
}
public void setRegdate(String regdate) {
this.regdate = regdate;
}
public int getPoint() {
return point;
}
public void setPoint(int point) {
this.point = point;
}
}
<%--
3_object.jsp
--%>
<%@ page import="com.koreait.model2.memberDTO" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
request.setAttribute("userid","apple");
session.setAttribute("name","김사과");
application.setAttribute("age",20);
memberDTO dto = new memberDTO(1,"apple", "1111", "김사과", "010-1111-1111", "apple@apple.com", "여자", "001011", "4068518", "06774", "서울 서초구 강남대로 27", "AT센터", "(양재동)","2025-06-10",1000);
request.setAttribute("dto",dto);
// 다른페이지로 보냄
request.getRequestDispatcher("3_object_ok.jsp").forward(request,response);
%>
<html>
<head>
<title>el</title>
</head>
<body>
</body>
</html>
<%--
3_object_ok.jsp
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>el</title>
</head>
<body>
<p>${userid}(request)</p>
<p>${name}(session)</p>
<p>${age}(application)</p>
<p>${requestScope.userid}</p>
<p>${sessionScope.name}</p>
<p>${applicationScope.age}</p>
<hr>
<p>${requestScope.dto}</p>
<p>${requestScope.dto.idx}</p>
<p>${requestScope.dto.userid}</p>
<p>${requestScope.dto.name}</p>
</body>
</html>
** JSTL (JavaServer Pages Standard Tag Library)
- JSP에서 자주 사용하는 기능들을 표준 태그로 제공하는 라이브러리
- 자바 코드 없이도 JSP에서 반복, 조건 , 변수 설정 , 출력, 날짜포멧 등을 HTML 태그처럼 사용할 수 있게 해줌
<% if(age > 19) {%>
<p>성인입니다.</p>
<% } %>
// 위에 코드와 동일 코드임
<c:if test="${age > 19}"<p>성인입니다.</p></c:if>
<% for(String item : list){ %>
<p>반복합니다.</p>
<% } %>
// var 앞에 있는 하나의 변수를 var라고 칭함
<c:forEach var-"item" items="${list}"><p>반복합니다.</p><c:forEach>
pom.xml에 아래 코드 넣기
<!-- JSTL -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<%--
core.jsp
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="java.util.Arrays" %>
<%@ page import="java.util.List" %>
<%
request.setAttribute("userid","apple");
request.setAttribute("age",20);
List<String> hobby = Arrays.asList("영화감상","음악감상","운동","게임");
request.setAttribute("hobby",hobby);
%>
<html>
<head>
<title>jstl</title>
</head>
<body>
<h2>안녕하세요! ${userid}님 !!</h2>
<%-- 조건문 --%>
<c:if test="${age > 19}">
<p>성인입니다.</p>
</c:if>
<c:if test="${age <= 19}">
<p>미성년자입니다.</p>
</c:if>
<%-- 반복문 --%>
<h2>취미</h2>
<ul>
<c:forEach var="h" items="${hobby}">
<li>${h}</li>
</c:forEach>
</ul>
<hr>
<%
// 스크립트릿 : 1~10까지 합
int sum = 0;
for(int i=1; i<=10 ; i++){
sum += i;
}
%>
<%
// 스크립트릿 : 1~10까지 합
int mul2 = 0;
for(int j=1; j<=10 ; j++){
mul2 += j;
}
%>
<c:set var="sum" value="0"/>
<c:forEach var="i" begin="1" end="10" step="1">
<c:set var="sum" value="${sum + i}"/>
</c:forEach>
<c:out value="${sum}"/>
<p>1~10까지의 합: <%=sum%></p>
<h2>2단부터 9단까지 구구단</h2>
<c:forEach var="i" begin="2" end="9" step="1">
<c:forEach var="j" begin="1" end="9" step="1">
${i} * ${j} = ${i * j}<br>
</c:forEach>
</c:forEach>
<hr>
<h2>배열</h2>
<c:set var="arr" value="<%=new int[]{10,20,30,40,50}%>"/>
<%-- varStatus : 한바퀴 돌때마다 배열의 정보를 알 수 있음 --%>
<c:forEach var="i" items="${arr}" varStatus="stat">
<p>${i}</p>
<p>i의 인덱스 : ${stat.index}</p>
<p>i의 카운트 : ${stat.count}</p>
</c:forEach>
<h2>choose</h2>
<c:choose>
<c:when test="${param.userid == 'apple'}">
<p>apple님 안녕하세요!</p>
</c:when>
<c:when test="${param.userid == 'banana'}">
<p>banana님 안녕하세요!</p>
</c:when>
<c:otherwise>
<p>게스트님 안녕하세요!</p>
</c:otherwise>
</c:choose>
</body>
</html>
<%--
1_form.jsp
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>jstl</title>
</head>
<body>
<form method="post" action="1_core.jsp">
<p>아이디: <input type="text" name="userid"></p>
<p>비밀번호: <input type="password" name="userpw"></p>
<button type="submit">확인</button>
</form>
</body>
</html>
'Backend > Servlet' 카테고리의 다른 글
MyBatis (0) | 2025.06.18 |
---|---|
MVC2 (0) | 2025.06.12 |
Servlet (0) | 2025.06.09 |
Session & Servlet api (0) | 2025.06.05 |
Maven 프로젝트 (0) | 2025.06.04 |