<%="abc"%>

-->

${"abc"}

배열[index]{배열[index]}{java.util.List[index]}
java.util.Map.key{java.util.Map.key}{자바빈즈.property}

param ==> el객체 xxx.jsp? a = 100&b=abc

param.a<br/>{param.a}<br/>{param.b}

a=100&a=200&a=300
paramValues.a[0]//100{paramValues.a[0]}//100{paramValues.a[1]}//200
paramValues.a[2]//300{paramValues.a[2]}//300{paramValues} 배열의 주소가 출력

<%
request.setAttribute("a","b");
session.setAttribute("c",new String[]{"b","c"});
%>

${sessionScope.c[1]} // c 출력

쿠키에 인스턴스로 값을 세팅했다면 불러올때 배열로 불러옵니다.
예를 들면 누군가는 어딘가에 cookie 를 addCookie(쿠키객체) 로 저장했어서 웹 브라우저가 공유할텐데, 한 쿠키만 가져오는건 이상하죠 Cookie[] coo = request.getCookie(); 로 배열에 담습니다, 그럼 cook 는 자연스럽게 배열주소입니다

el 은 배열과 맵입니다.

<body>
<%
Cookie coo1=new Cookie("aa","bb");
Cookie coo2=new Cookie("cc","dd");
response.addCookie(coo1);
response.addCookie(coo2);
%>
<a href="el8.jsp">쿠키정보보러가기</a>
</body>

el7.jsp 에서 쿠키 키와 값을 설정하고 addCookie 로 저장했습니다. 그리고 el8.jsp 로 이동합니다

<body>
${cookie}<br/>
${cookie.aa}<br/>
${cookie.aa.name}<br/>
${cookie.aa.value}<br/>
${cookie.cc.name}<br/>
${cookie.cc.value}<br/>
${cookie.JSESSIONID.value}
</body>

쿠키는 키와 값을 가지고 있으니 Map 이라고 생각하면 됩니다.

cookie 를 출력하면 cookie 는 Map이라서 키와 값인 주소가 나옵니다.
cookie.aa 하면 처음에는 키를 줘서 값이 나올 줄 알았는데, 쿠키의 주소가 나옵니다.

<body>
<%=((HttpServletRequest)pageContext.getRequest()).getContextPath()%><br/>
${pageContext.request.contextPath}
</body>

//EL 은 request 내장객체가 없습니다.

pageContext 가 사용되는걸 보니 pageContext 는 내장객체로 가지고 있다고 생각

절대경로를 el로 얻는 방법이네.

이렇게 하면 헌재프로젝트 /프로젝트명 이렇게 얻을 수 있다

${cookie.id.value}

를 <%%> 로 풀이를 하면

<%
Cookie coo = new Cookie("id","abc");
response.addCookie(coo);

Cookie[] arry = request.getCookies();
if(arry != null){
	for(Cookie coo2 : arry){
		if(coo2.getName().equals("id")){
		out.println(coo2.getValue());
	}}
	
}

%>

이렇게 길어진다. 둘다 알고 있어야 하지만 최대한 el 사용하는 방향으로 간다.

<%	
	String msg=request.getParameter("msg");
	if(msg==null) msg=""; 
%>
<%=msg%>

${param.msg}

처음엔 ${pageContext.request.param.value} 라고 생각했는데,

param이 el의 내장객체로 존재한다 그리고 값을 여러개 받고 싶다면 paramValues 를

기입한다.

<%
String str=(String)session.getAttribute("id");
if(str==null) str="Guest";
%>    

  <div>
<h1>서울 IT 교육센터</h1>
</div><br>
 <div align="right">
 <%=str%> 님!
${sessionScope.id}님!
로 바꿀 수 있다. 
 </div>
<%
String str=(String)session.getAttribute("id");
if(str==null) str="Guest";
%>    

  <div>
<h1>서울 IT 교육센터</h1>
</div><br>
 <div align="right">
{sessionScope.id}님!
 </div>

이렇게 하면 심지어 null 님! 도 나오지 않는다.

하지만 삼항연산자를 사용해서 나오게 할 수 있다 . 그런데 안 나오는 이유는 뭐지?

우선 삼항연산자로 만들어 보자

${id ? id :"Guest" } 라고 생각했는데 Guest만 나오고

로그인 해도 id는 출력되지 않음 왜냐면 id 가 null 이면

Guest 가 나오고 값이 있으면 id가 나올거라 생각했음.

${id==null ? "Guest" : id} 님! 처럼 id == null 을

비교해줘야 함,

profile
건물주가 되는 그날까지

0개의 댓글