상세 컨텐츠

본문 제목

JSP - EL(Expression Language)을 사용한 데이터전달

JSP

by 기련이 2020. 6. 11. 13:21

본문

EL(Expression Language)
표현식을 중심으로 코드를 기술하는 언어
데이터를 출력하는 코드를 함축적이고 간결하게 구사
-> 코드의 가독성과 유지보수 용이성 향상

연산자와 피연산자의 조합을 '${'와 '}'로 둘러싸서 표현

예)
<%=sum%> -> ${sum}

표현식에서 sum은 변수
EL에서 sum은 attribute 이름

 

1. 페이지 내 데이터 전달

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
int sum = 0;
for(int i = 0; i <= 100; i++){
	sum += i;
}
//pageContext 기본 객체를 사용하여 페이지 내 데이터 전달 방식.
pageContext.setAttribute("sum", sum);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>데이터 전달</title>
</head>
<body>
<h3>EL을 사용한 페이지 내 데이터 전달</h3>
1부터 100까지의 합은 ${sum}
</body>
</html>

- 페이지 내의 데이터 전달방식

${sum}의 속성은 pageContext.setAttribute("sum", sum);의 문자열 "sum"으로 데이터 전달이 된다

El_basic01

2. 페이지 이동 데이터 전달

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	int sum = 0;
	for(int i = 0; i <= 100; i++){
		sum += i;
	} 
//sum에 저장된 데이터를 target.jsp로 보내기
request.setAttribute("result", sum);
session.setAttribute("result", sum);
pageContext.forward("target.jsp");
%>

1부터 100까지의 합을 request와 session형태로

pageContext.forward를 활용하여 target.jsp에 데이터 전송

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>결과 페이지</title>
</head>
<body>
request : 1부터 100까지의 합은 ${requestScope.result}<br>
session : 1부터 100까지의 합은 ${sessionScope.result}
<%
response.sendRedirect("target2.jsp");
%>
</body>

target.jsp▲

결과페이지

1부터 100까지의 합을

request와 session의형태로 출력한 값을

response.sendRedirect 로 target2.jsp 에 또한번 데이터 전송

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>target2.jsp입니다</h3>
request : 1부터 100까지의 합은 ${requestScope.result}<br>
session : 1부터 100까지의 합은 ${sessionScope.result}
</body>
</html>

target2.jsp에서 받아온 데이터를 request와 session형태로 출력

El_basic02

request형태는 출력되지않고 sesssion형태만 출력된 모습▲

 

request:attribut를 사용할 수 있는 기본 객체
// 1. pageContext - 가장 작은 범위. 페이지 내에서만.
// 2. request - 1~2 페이지 범위.
// 3. session - 한 접속자에게 제공되는 모든 페이지.
// 4. applocation - 모든 접속자에게 제공되는 모든 페이지.

관련글 더보기