El session 값 가져오기 - el session gabs gajyeoogi

  • sessionScope는 requestScope와 사용 방법은 다르지않다.
  • 다만 session 이 살아있는 동안에만 사용이 가능하다.

1.  scope_result.jsp로 넘기는 jsp파일을 생성하여 ArrayList에 값을 추가한다.


    session.setAttribute("names", "lastName");

    ArrayList arr = new ArrayList<>();

    session.setAttribute("list", arr);

 

2. scope_result.jsp 에서 sessionScope.list[n] 으로 값을 가져올수있다.

이름: ${sessionScope.name }

자료0: ${sessionScope.list[0] }

자료1: ${sessionScope.list[1] }

자료2: ${sessionScope.list[2] }

자료3: ${sessionScope.list[3] }

자료4: ${sessionScope.list[4] }

자료5: ${sessionScope.list[5] }

자료6: ${sessionScope.list[6] }

3.

4.

EL과 JSTL을 사용하는 이유? 

1. design tool에서는 jsp 코드<% %>가 깨질 수 있다.

 


[ EL ]

EL 이란?

  • Expression Language의 약자
  • JSP 2.0에서 새롭게 추가된 스크립트 언어
  • 기존의 Script tag의 표현식(<%= 정보 %>) tag에서 업그레이드된 버전 ( ${ 정보 } )
  • [ 주요 특징 ]
    1) JSP 속성영역 (request,  response, session, application) 저장된 속성 객체의 property를 출력한다 
    2) 리터럴 데이터, 다양한 연산결과 출력이 가능하다 
    3) JSTL과 연동이 가능하다

[기존 방식 예 : scriptlet 스클립틀릿]

<!--  mvo instance의 name 변수 출력 -->
<% MemberVO vo = (MemberVO) request.getAttribute("mvo"); %>
<%= vo.getName()%>

 

[EL 방식 예]

<!--  mvo instance의 name 변수 출력 -->
${requestScope.mvo.name} 

<!-- requestScope는 생략 가능 -->
${mvo.name}

requestScope는 생략이 가능하지만,

실행속도가 느려지고, 구분이 헷갈릴 수 있기때문에 기재해 주는 것이 권장된다.

 

JSP 내장객체 종류

- pageContext : 다른 내장 객체를 생성하는 역할

- pageScope : JSP가 Servlet으로 변환되었을 때, Serlvet 객체 자신을 의미 (=this)

- requestScope :  request 객체에 접근하기 위한 역할

- sessionScope :  session객체에 접근하기 위한 역할

- applicationScope : application 객체 (ServletContext 객체)에 접근하기 위한 역할

 

[ 유효범위 ]

request < session < application(ServletContext)

- request의 유효범위 : response 할 때까지

- session의 유효범위 :

   1) 로그아웃(서버에서 session.invalidate() ) 시 소멸

   2) 클라이언트(브라우저) 종료 시 소멸

   3) 지정한 session timeout까지 재접속이 없을 경우 소면

- application(ServletConext) : 웹 어플리케이션 서비스가 종료될 때까지 유효 

 

EL 에서의 파라미터 제어 객체

- param = request.getParameter();

- paramValues = request.getParameterValues();


[ 사용 예제 ] 

 

1. session에서 Attribute 받아오기

 

/step1.jsp

CarVO instance에서 1) 변수 출력 2)리스트로 변수 출력 3)HashMap으로 변수 출력

<%@page import="java.util.HashMap"%>
<%@page import="java.util.ArrayList"%>
<%@page import="model.CarVO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL 연습</title>
</head>
<body>

<%
	//컨트롤러에서 공유했다고 가정하고 view에서 바로 setAttribute해줌
	CarVO car1 = new CarVO("1234", "소나타", 2000);
 	request.setAttribute("cvo", car1);
%>
<h3>EL(Expression Language) 기본</h3>

<!-- 변수 출력 -->
<strong>1. CarVO instance에서 변수 model 출력</strong><br>
<!-- 방법 1 -->
${requestScope.cvo.model}<br>
<!--  방법 2 -->
${cvo.model}
<hr>

<!-- 리스트로 변수 출력 -->
<%
	ArrayList<CarVO> list = new ArrayList<CarVO>();
	list.add(new CarVO("234", "테슬라", 4500));
	//컨트롤러에서 공유했다고 가정하고 view에서 바로 setAttribute해줌
	session.setAttribute("carList", list);
%>
<strong>2. CarVO instance에서 List로 변수 출력</strong><br>
${sessionScope.carList[0].model}
<hr>

<!-- 해쉬맵으로 변수 출력 -->
<%
	HashMap<String, CarVO> map = new HashMap<String, CarVO>();
	map.put("car1", new CarVO("333", "모닝", 1000));
	//컨트롤러에서 할당했다고 가정
	session.setAttribute("carMap", map);
%>
<strong>3. 세션영역의 HashMap 요소에 접근</strong><br>
${sessionScope.carMap.car1.model}

</body>
</html>

[ 브라우저 출력 결과 ]

El session 값 가져오기 - el session gabs gajyeoogi

2. 쿼리스트링 방식으로 parameter 접근

 

/step2-1.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL param 연습 1</title>
</head>
<body>
	<!-- 쿼리스트링 방식으로 전송 -->
	<a href="step2-2.jsp?name=파프리카&address=제주">step2-2 이동</a>
</body>
</html>

 

/step2-2.jsp

EL방식일 경우 NULL이 param값으로 오게되면 브라우저에 아예 아무 값도 출력하지 않는다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL param 연습 2</title>
</head>
<body>
	<a href="step2-1.jsp">step2-1 이동</a>
<hr>
	1. 스클립틀릿 방식으로 파라미터 전달받음<br>
	<%=request.getParameter("name") %><br>
	<%=request.getParameter("address") %>
	<br><br>
	2. EL 방식으로 파라미터 전달받음<br>
	${param.name}<br>
	${param.address}
</body>
</html>

 

/step2-3.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" session="false"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL param 연습 3</title>
</head>
<body>
	<!-- 기존 방식(스클립틀릿)에서는 넘어오는 parameter값이
		 문자열로 인식이 되므로, 
		'59'+'1'이 되어 나이(문자열) 뒤에 1이 추가됨 -->
	1. 스클립틀릿 방식으로 파라미터 처리<br>
	<%=request.getParameter("nick") %><br>
	<%=request.getParameter("age")+1 %>세<br>
	
	<hr>
	
	<!-- EL 방식은 내부적으로 형변환하여 (Integer.parseInt())
		 연산되므로,
		 59+1이 되어 나이(숫자)에 1이 더해짐 -->
	2. EL 방식으로 파라미터 처리<br>
	${param.nick}<br>
	${param.age+1}세<br>

	<hr>
	<form action="step2-4.jsp">
		<input type="checkbox" name="food" value="삼겹살">삼겹살<br>
		<input type="checkbox" name="food" value="참이슬">참이슬<br>
		<input type="submit" value="전송">
	</form>
	
</body>
</html>

 

/step2-4.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" session="false"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL param 연습 4</title>
</head>
<body>
	<!-- EL 방식이므로, null일 경우 출력하지 않는다 -->
	메뉴 1 : ${paramValues.food[0]} <br>
	메뉴 2 : ${paramValues.food[1]}	
</body>
</html>

 

[ 브라우저 출력 결과 ]

/step2-1.jsp

El session 값 가져오기 - el session gabs gajyeoogi

/step2-2.jsp

El session 값 가져오기 - el session gabs gajyeoogi

 

/step2-3.jsp

* 기존 방식(스클립틀릿)에서는 넘어오는 parameter값이 문자열로 인식이 되므로, 

'59'+'1'이 되어 나이(문자열) 뒤에 1이 추가됨

* EL 방식은 내부적으로 형변환하여 (Integer.parseInt()) 연산되므로,

59+1이 되어 나이(숫자)에 1이 더해짐

El session 값 가져오기 - el session gabs gajyeoogi

/step2-4.jsp

체크된 메뉴만 넘어온다

EL 방식이므로, null일 경우 출력하지 않는다

El session 값 가져오기 - el session gabs gajyeoogi

3. Model에 접근

* EL에서 Model에 접근 가능한 메서드는  get계열과 is계열 메서드만 가능

(is 계열 메서드는 리턴 타입이 boolean일때 사용)

 

/TestVO.java

package model;

public class TestVO {
	public String getName() {
		System.out.println("TestVO의 getName()이 실행");
		return "파프리카";
	}
	
	public String findNick() {
		return "펭수";
	}
	
	public String getMessage() {
		return "봄이 벚나무와 하는 것과 같은 걸 너와 함께 하기를";
	}
	
	public boolean isExist() {
		return false;
	}
	
	public int getMoney() {
		return 150;
	}
}

 

/step3-EL-Model.jsp

<%@page import="model.TestVO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" session="false"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL에서 Model에 접근</title>
</head>
<body>
<%
	TestVO vo = new TestVO();
	request.setAttribute("tvo", vo);
%>
<!-- 
	 EL에서 Model에 접근 가능한 메서드는 
	 get계열과 is계열 메서드만 가능
	 (is 계열 메서드는 리턴 타입이 boolean일때 사용)
 -->
 
 <!-- get 계열 -->
1. TestVO의 name을 출력 : ${requestScope.tvo.name}<br>
<%-- ${requestScope.tvo.nick} //error--%>
2. TestVO의 message를 출력 : ${requestScope.tvo.message}<br>

 <!-- is 계열 -->
3. TestVO의 exist를 출력 : ${requestScope.tvo.exist} // 
${requestScope.tvo.exist == false} <!-- 연산도 가능하다 --><br>

<!-- 연산 테스트 -->
4. TestVO의 money 연산 :<br>
 - money값:
 ${requestScope.tvo.money}<br>
 - money * 4:
 ${requestScope.tvo.money*4} <!-- 곱하기 --> <br>
 - money가 100보다 큰지 :
 ${requestScope.tvo.money>100} <!-- 비교1 --> <br>
 - money가 100 초과 200 미만 인지 :	
 ${requestScope.tvo.money>100 && requestScope.tvo.money<200}<br>
 
<hr>
<!-- 비교 테스트 -->
null인지 아닌지 true or false 반환
${sessionScope.mvo == null} // ${sessionScope.mvo != null}
</body>
</html>

 

[ 브라우저 결과 ] 

El session 값 가져오기 - el session gabs gajyeoogi

4. ServletContext InitParameter 접근

SerlvetContext의 초기파라미터(=application:context parameter)에 접근하여 출력

(web.xml에 있는 내용)

 

/step4.java

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" session="false"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ServletContext InitParameter Test</title>
</head>
<body>
	<!-- application : context parameter
		
	 -->
	<%=application.getInitParameter("adminEmail") %>
	<br>
	${initP	aram.adminEmail}
</body>
</html>
El session 값 가져오기 - el session gabs gajyeoogi

 


5. Web Context (or Web Project 이름) 출력

프로젝트 작업 시, 프로젝트 명을 변경할 경우 매우 유용하게 사용된다.

path를 아래와 같이 쓰면, 현재 프로젝트의 웹 컨텍스트로 넘어가게 된다.

 

/step5-path.java

<!--  mvo instance의 name 변수 출력 -->
${requestScope.mvo.name} 

<!-- requestScope는 생략 가능 -->
${mvo.name}
0

 

El session 값 가져오기 - el session gabs gajyeoogi

[ JSTL ] 

JSTL 이란?

  • JSP Standard Tag Library의 약자로 JSP 표준 라이브러리이다.
    : JSP에서 자주 사용하는 기능(반복문과 조건문, 데이터 표현 등)을 미리 구현해 놓은 커스텀 태그 라이브러리 모음이다.
    : JSTL은 EL을 사용하여 표현한다.
  • Apache 재단에서 진행하는 custom tag library 프로젝트
    – 스크립트 릿으로 작성해야할 로직을 태그로 대신 처리 가능
    – apache에서 다운받아 lib에 추가.
  • 환경설정
    1) https://mvnrepository.com/artifact/javax.servlet/jstl/1.2
    에서 jstl lib(jstl-1.2.jar)를 다운받아
    웹어플리케이션의 WEB-INF/lib 에 추가 (jstl-1.2.jar)
    2) custom tag는 지시자 태그 taglib를 통해 prefix 설정 필요
    : <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  • 참고 사이트 
    – http://java.sun.com/products/jsp/jstl 
    – http://jakarta.apache.org/taglibs

 

Core

  • 변수 지원
    – set :JSP에서 사용 될 변수설정
    – remove :설정한 변수 제거
  • 흐름제어
    – if :조건문 처리
    – choose: 다중 조건 처리 (else if)
    – forEach: collection 또는 map의 각 항목을 처리 할때 사용 –loop 반복문
    – forTokens: 구분자로 분리된 각각의 토큰을 처리시 사용

[ 사용 예제 ] 

[ 목차 ]

1. JSTL if : 조건문 2. JSTL if 다중조건 (choose, when, otherwise)3. JSTL Choose form 연동4. JSTL for Each (for loop - 반복문)5. JSTL for Each - Form 연동6. JSTL forEach - 반복 횟수 정하기7. JSTL forEach  + Choose (when, otherwise) 연습문제8. JSTL forEach  에 HashMap 적용해보기9. JSTL SET 이용해보기10. JSTL import ( include )

 

1. JSTL if : 조건문 

 

/step1-if.jsp

<!--  mvo instance의 name 변수 출력 -->
${requestScope.mvo.name} 

<!-- requestScope는 생략 가능 -->
${mvo.name}
1
El session 값 가져오기 - el session gabs gajyeoogi
El session 값 가져오기 - el session gabs gajyeoogi

 


2. JSTL if 다중조건 (choose, when, otherwise)

 

/step2-choose.jsp

when : else if 역할 

otherwise : else 역할

<!--  mvo instance의 name 변수 출력 -->
${requestScope.mvo.name} 

<!-- requestScope는 생략 가능 -->
${mvo.name}
2

 

/PersonVO.java

<!--  mvo instance의 name 변수 출력 -->
${requestScope.mvo.name} 

<!-- requestScope는 생략 가능 -->
${mvo.name}
3

 

 


3. JSTL Choose form 연동

 

step3-choose-action.jsp

19세 이상이면

아이유님 28세 성인입니다.

13세 이상이면

아이유님 15세 청소년입니다.

1 ~ 13세 미만이면

아이유님 7세 어린이입니다.

0세 이하이면

아이유님 아직 태어나지 않았습니다.

 

/step3-choose-form.java

<!--  mvo instance의 name 변수 출력 -->
${requestScope.mvo.name} 

<!-- requestScope는 생략 가능 -->
${mvo.name}
4

 

/step3-choose-action.jsp

<!--  mvo instance의 name 변수 출력 -->
${requestScope.mvo.name} 

<!-- requestScope는 생략 가능 -->
${mvo.name}
5

 


4. JSTL for Each (for loop - 반복문)

 

<!--  mvo instance의 name 변수 출력 -->
${requestScope.mvo.name} 

<!-- requestScope는 생략 가능 -->
${mvo.name}
6

JSTL forEach : JSTL for loop (반복문)

items : 대상 배열 또는 컬렉션

var : 요소를 저장할 변수

varStatus : index와 count 속성이 있다.  (index는 0부터, count는 1부터 시작)

 

/step4-forEach.java

<!--  mvo instance의 name 변수 출력 -->
${requestScope.mvo.name} 

<!-- requestScope는 생략 가능 -->
${mvo.name}
7
El session 값 가져오기 - el session gabs gajyeoogi

 


5. JSTL for Each - Form 연동

 

/step5-forEach-form.java

<!--  mvo instance의 name 변수 출력 -->
${requestScope.mvo.name} 

<!-- requestScope는 생략 가능 -->
${mvo.name}
8

 

/step5-forEach-action.java

<!--  mvo instance의 name 변수 출력 -->
${requestScope.mvo.name} 

<!-- requestScope는 생략 가능 -->
${mvo.name}
9

 

El session 값 가져오기 - el session gabs gajyeoogi
El session 값 가져오기 - el session gabs gajyeoogi

6. JSTL forEach - 반복 횟수 정하기

 

/step6-forEach.java

<%@page import="java.util.HashMap"%>
<%@page import="java.util.ArrayList"%>
<%@page import="model.CarVO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL 연습</title>
</head>
<body>

<%
	//컨트롤러에서 공유했다고 가정하고 view에서 바로 setAttribute해줌
	CarVO car1 = new CarVO("1234", "소나타", 2000);
 	request.setAttribute("cvo", car1);
%>
<h3>EL(Expression Language) 기본</h3>

<!-- 변수 출력 -->
<strong>1. CarVO instance에서 변수 model 출력</strong><br>
<!-- 방법 1 -->
${requestScope.cvo.model}<br>
<!--  방법 2 -->
${cvo.model}
<hr>

<!-- 리스트로 변수 출력 -->
<%
	ArrayList<CarVO> list = new ArrayList<CarVO>();
	list.add(new CarVO("234", "테슬라", 4500));
	//컨트롤러에서 공유했다고 가정하고 view에서 바로 setAttribute해줌
	session.setAttribute("carList", list);
%>
<strong>2. CarVO instance에서 List로 변수 출력</strong><br>
${sessionScope.carList[0].model}
<hr>

<!-- 해쉬맵으로 변수 출력 -->
<%
	HashMap<String, CarVO> map = new HashMap<String, CarVO>();
	map.put("car1", new CarVO("333", "모닝", 1000));
	//컨트롤러에서 할당했다고 가정
	session.setAttribute("carMap", map);
%>
<strong>3. 세션영역의 HashMap 요소에 접근</strong><br>
${sessionScope.carMap.car1.model}

</body>
</html>
0
El session 값 가져오기 - el session gabs gajyeoogi

7. JSTL forEach  + Choose (when, otherwise) 연습문제

 

19세 이상이면

성인 파프리카 27세

아니면

미성년 밀크 10세

 

/step7-forEach-ex.java

<%@page import="java.util.HashMap"%>
<%@page import="java.util.ArrayList"%>
<%@page import="model.CarVO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL 연습</title>
</head>
<body>

<%
	//컨트롤러에서 공유했다고 가정하고 view에서 바로 setAttribute해줌
	CarVO car1 = new CarVO("1234", "소나타", 2000);
 	request.setAttribute("cvo", car1);
%>
<h3>EL(Expression Language) 기본</h3>

<!-- 변수 출력 -->
<strong>1. CarVO instance에서 변수 model 출력</strong><br>
<!-- 방법 1 -->
${requestScope.cvo.model}<br>
<!--  방법 2 -->
${cvo.model}
<hr>

<!-- 리스트로 변수 출력 -->
<%
	ArrayList<CarVO> list = new ArrayList<CarVO>();
	list.add(new CarVO("234", "테슬라", 4500));
	//컨트롤러에서 공유했다고 가정하고 view에서 바로 setAttribute해줌
	session.setAttribute("carList", list);
%>
<strong>2. CarVO instance에서 List로 변수 출력</strong><br>
${sessionScope.carList[0].model}
<hr>

<!-- 해쉬맵으로 변수 출력 -->
<%
	HashMap<String, CarVO> map = new HashMap<String, CarVO>();
	map.put("car1", new CarVO("333", "모닝", 1000));
	//컨트롤러에서 할당했다고 가정
	session.setAttribute("carMap", map);
%>
<strong>3. 세션영역의 HashMap 요소에 접근</strong><br>
${sessionScope.carMap.car1.model}

</body>
</html>
1
El session 값 가져오기 - el session gabs gajyeoogi

 


8. JSTL forEach  에 HashMap 적용해보기

 

/step8-forEach-map.java

<%@page import="java.util.HashMap"%>
<%@page import="java.util.ArrayList"%>
<%@page import="model.CarVO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL 연습</title>
</head>
<body>

<%
	//컨트롤러에서 공유했다고 가정하고 view에서 바로 setAttribute해줌
	CarVO car1 = new CarVO("1234", "소나타", 2000);
 	request.setAttribute("cvo", car1);
%>
<h3>EL(Expression Language) 기본</h3>

<!-- 변수 출력 -->
<strong>1. CarVO instance에서 변수 model 출력</strong><br>
<!-- 방법 1 -->
${requestScope.cvo.model}<br>
<!--  방법 2 -->
${cvo.model}
<hr>

<!-- 리스트로 변수 출력 -->
<%
	ArrayList<CarVO> list = new ArrayList<CarVO>();
	list.add(new CarVO("234", "테슬라", 4500));
	//컨트롤러에서 공유했다고 가정하고 view에서 바로 setAttribute해줌
	session.setAttribute("carList", list);
%>
<strong>2. CarVO instance에서 List로 변수 출력</strong><br>
${sessionScope.carList[0].model}
<hr>

<!-- 해쉬맵으로 변수 출력 -->
<%
	HashMap<String, CarVO> map = new HashMap<String, CarVO>();
	map.put("car1", new CarVO("333", "모닝", 1000));
	//컨트롤러에서 할당했다고 가정
	session.setAttribute("carMap", map);
%>
<strong>3. 세션영역의 HashMap 요소에 접근</strong><br>
${sessionScope.carMap.car1.model}

</body>
</html>
2
El session 값 가져오기 - el session gabs gajyeoogi

9. JSTL SET 이용해보기

 

반복적으로 많이 쓰이는 객체를 c set으로 담아둘 수 있다.

<%@page import="java.util.HashMap"%>
<%@page import="java.util.ArrayList"%>
<%@page import="model.CarVO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL 연습</title>
</head>
<body>

<%
	//컨트롤러에서 공유했다고 가정하고 view에서 바로 setAttribute해줌
	CarVO car1 = new CarVO("1234", "소나타", 2000);
 	request.setAttribute("cvo", car1);
%>
<h3>EL(Expression Language) 기본</h3>

<!-- 변수 출력 -->
<strong>1. CarVO instance에서 변수 model 출력</strong><br>
<!-- 방법 1 -->
${requestScope.cvo.model}<br>
<!--  방법 2 -->
${cvo.model}
<hr>

<!-- 리스트로 변수 출력 -->
<%
	ArrayList<CarVO> list = new ArrayList<CarVO>();
	list.add(new CarVO("234", "테슬라", 4500));
	//컨트롤러에서 공유했다고 가정하고 view에서 바로 setAttribute해줌
	session.setAttribute("carList", list);
%>
<strong>2. CarVO instance에서 List로 변수 출력</strong><br>
${sessionScope.carList[0].model}
<hr>

<!-- 해쉬맵으로 변수 출력 -->
<%
	HashMap<String, CarVO> map = new HashMap<String, CarVO>();
	map.put("car1", new CarVO("333", "모닝", 1000));
	//컨트롤러에서 할당했다고 가정
	session.setAttribute("carMap", map);
%>
<strong>3. 세션영역의 HashMap 요소에 접근</strong><br>
${sessionScope.carMap.car1.model}

</body>
</html>
3

 

/step10-set.java

<%@page import="java.util.HashMap"%>
<%@page import="java.util.ArrayList"%>
<%@page import="model.CarVO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL 연습</title>
</head>
<body>

<%
	//컨트롤러에서 공유했다고 가정하고 view에서 바로 setAttribute해줌
	CarVO car1 = new CarVO("1234", "소나타", 2000);
 	request.setAttribute("cvo", car1);
%>
<h3>EL(Expression Language) 기본</h3>

<!-- 변수 출력 -->
<strong>1. CarVO instance에서 변수 model 출력</strong><br>
<!-- 방법 1 -->
${requestScope.cvo.model}<br>
<!--  방법 2 -->
${cvo.model}
<hr>

<!-- 리스트로 변수 출력 -->
<%
	ArrayList<CarVO> list = new ArrayList<CarVO>();
	list.add(new CarVO("234", "테슬라", 4500));
	//컨트롤러에서 공유했다고 가정하고 view에서 바로 setAttribute해줌
	session.setAttribute("carList", list);
%>
<strong>2. CarVO instance에서 List로 변수 출력</strong><br>
${sessionScope.carList[0].model}
<hr>

<!-- 해쉬맵으로 변수 출력 -->
<%
	HashMap<String, CarVO> map = new HashMap<String, CarVO>();
	map.put("car1", new CarVO("333", "모닝", 1000));
	//컨트롤러에서 할당했다고 가정
	session.setAttribute("carMap", map);
%>
<strong>3. 세션영역의 HashMap 요소에 접근</strong><br>
${sessionScope.carMap.car1.model}

</body>
</html>
4
El session 값 가져오기 - el session gabs gajyeoogi

10. JSTL import ( include )

 

<%@page import="java.util.HashMap"%>
<%@page import="java.util.ArrayList"%>
<%@page import="model.CarVO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL 연습</title>
</head>
<body>

<%
	//컨트롤러에서 공유했다고 가정하고 view에서 바로 setAttribute해줌
	CarVO car1 = new CarVO("1234", "소나타", 2000);
 	request.setAttribute("cvo", car1);
%>
<h3>EL(Expression Language) 기본</h3>

<!-- 변수 출력 -->
<strong>1. CarVO instance에서 변수 model 출력</strong><br>
<!-- 방법 1 -->
${requestScope.cvo.model}<br>
<!--  방법 2 -->
${cvo.model}
<hr>

<!-- 리스트로 변수 출력 -->
<%
	ArrayList<CarVO> list = new ArrayList<CarVO>();
	list.add(new CarVO("234", "테슬라", 4500));
	//컨트롤러에서 공유했다고 가정하고 view에서 바로 setAttribute해줌
	session.setAttribute("carList", list);
%>
<strong>2. CarVO instance에서 List로 변수 출력</strong><br>
${sessionScope.carList[0].model}
<hr>

<!-- 해쉬맵으로 변수 출력 -->
<%
	HashMap<String, CarVO> map = new HashMap<String, CarVO>();
	map.put("car1", new CarVO("333", "모닝", 1000));
	//컨트롤러에서 할당했다고 가정
	session.setAttribute("carMap", map);
%>
<strong>3. 세션영역의 HashMap 요소에 접근</strong><br>
${sessionScope.carMap.car1.model}

</body>
</html>
5

JSP에서 include action tag와 같은 기능을 한다.

차이는 JSTP import는 다른 웹 어플리케이션의 자원을 이용할 수 있다는 것이다. 

(ex. web project 1에 있는 header.jsp를 web project2에서도 <c:import>를 통해 가져올 수 있다)

(JSP는 자신의 웹 어플리케이션 프로젝트의 자원만 이용할 수 있다!)

 

/step11-header.jsp

<%@page import="java.util.HashMap"%>
<%@page import="java.util.ArrayList"%>
<%@page import="model.CarVO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL 연습</title>
</head>
<body>

<%
	//컨트롤러에서 공유했다고 가정하고 view에서 바로 setAttribute해줌
	CarVO car1 = new CarVO("1234", "소나타", 2000);
 	request.setAttribute("cvo", car1);
%>
<h3>EL(Expression Language) 기본</h3>

<!-- 변수 출력 -->
<strong>1. CarVO instance에서 변수 model 출력</strong><br>
<!-- 방법 1 -->
${requestScope.cvo.model}<br>
<!--  방법 2 -->
${cvo.model}
<hr>

<!-- 리스트로 변수 출력 -->
<%
	ArrayList<CarVO> list = new ArrayList<CarVO>();
	list.add(new CarVO("234", "테슬라", 4500));
	//컨트롤러에서 공유했다고 가정하고 view에서 바로 setAttribute해줌
	session.setAttribute("carList", list);
%>
<strong>2. CarVO instance에서 List로 변수 출력</strong><br>
${sessionScope.carList[0].model}
<hr>

<!-- 해쉬맵으로 변수 출력 -->
<%
	HashMap<String, CarVO> map = new HashMap<String, CarVO>();
	map.put("car1", new CarVO("333", "모닝", 1000));
	//컨트롤러에서 할당했다고 가정
	session.setAttribute("carMap", map);
%>
<strong>3. 세션영역의 HashMap 요소에 접근</strong><br>
${sessionScope.carMap.car1.model}

</body>
</html>
6

 

/step11-footer.jsp

<%@page import="java.util.HashMap"%>
<%@page import="java.util.ArrayList"%>
<%@page import="model.CarVO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL 연습</title>
</head>
<body>

<%
	//컨트롤러에서 공유했다고 가정하고 view에서 바로 setAttribute해줌
	CarVO car1 = new CarVO("1234", "소나타", 2000);
 	request.setAttribute("cvo", car1);
%>
<h3>EL(Expression Language) 기본</h3>

<!-- 변수 출력 -->
<strong>1. CarVO instance에서 변수 model 출력</strong><br>
<!-- 방법 1 -->
${requestScope.cvo.model}<br>
<!--  방법 2 -->
${cvo.model}
<hr>

<!-- 리스트로 변수 출력 -->
<%
	ArrayList<CarVO> list = new ArrayList<CarVO>();
	list.add(new CarVO("234", "테슬라", 4500));
	//컨트롤러에서 공유했다고 가정하고 view에서 바로 setAttribute해줌
	session.setAttribute("carList", list);
%>
<strong>2. CarVO instance에서 List로 변수 출력</strong><br>
${sessionScope.carList[0].model}
<hr>

<!-- 해쉬맵으로 변수 출력 -->
<%
	HashMap<String, CarVO> map = new HashMap<String, CarVO>();
	map.put("car1", new CarVO("333", "모닝", 1000));
	//컨트롤러에서 할당했다고 가정
	session.setAttribute("carMap", map);
%>
<strong>3. 세션영역의 HashMap 요소에 접근</strong><br>
${sessionScope.carMap.car1.model}

</body>
</html>
7

 

(JSTL include)

/step11-import-include.jsp

<%@page import="java.util.HashMap"%>
<%@page import="java.util.ArrayList"%>
<%@page import="model.CarVO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL 연습</title>
</head>
<body>

<%
	//컨트롤러에서 공유했다고 가정하고 view에서 바로 setAttribute해줌
	CarVO car1 = new CarVO("1234", "소나타", 2000);
 	request.setAttribute("cvo", car1);
%>
<h3>EL(Expression Language) 기본</h3>

<!-- 변수 출력 -->
<strong>1. CarVO instance에서 변수 model 출력</strong><br>
<!-- 방법 1 -->
${requestScope.cvo.model}<br>
<!--  방법 2 -->
${cvo.model}
<hr>

<!-- 리스트로 변수 출력 -->
<%
	ArrayList<CarVO> list = new ArrayList<CarVO>();
	list.add(new CarVO("234", "테슬라", 4500));
	//컨트롤러에서 공유했다고 가정하고 view에서 바로 setAttribute해줌
	session.setAttribute("carList", list);
%>
<strong>2. CarVO instance에서 List로 변수 출력</strong><br>
${sessionScope.carList[0].model}
<hr>

<!-- 해쉬맵으로 변수 출력 -->
<%
	HashMap<String, CarVO> map = new HashMap<String, CarVO>();
	map.put("car1", new CarVO("333", "모닝", 1000));
	//컨트롤러에서 할당했다고 가정
	session.setAttribute("carMap", map);
%>
<strong>3. 세션영역의 HashMap 요소에 접근</strong><br>
${sessionScope.carMap.car1.model}

</body>
</html>
8

 

El session 값 가져오기 - el session gabs gajyeoogi

공유하기

게시글 관리

구독하기Programmer 파프리카의 이야기

'Java Web Programming > 4. JSP' 카테고리의 다른 글

[JSP] 회원관리 웹 어플리케이션2 - layout 두 가지 (로그인 + 회원가입 + 회원정보 수정 + 경로 + EL/JSTL + BootStrap + Model2 설계)  (0)2020.09.21[JSP] 회원 관리 웹 어플리케이션 (EL/JSTL 적용, 웹 프로그램 경로, BootStrap + Model2 설계)  (0)2020.09.18[JSP] Semi-Project | Model2 MVC 기반 고객관리 웹어플리케이션 (회원가입, 로그인)  (0)2020.09.16[UML] Use Case Diagram (유즈케이스 다이어그램)  (0)2020.09.15[JSP] Include Action Tag - 페이지 모듈화  (0)2020.09.15