★EL(Expression Language)
표현언어
변수의 값을 출력할 때 사용하는 스크립트 언어
${}
표현식 <%= %> 과 역할이 같음
but 형번환, null등의 예외에 유연하다
4대 저장소(page,request,session,application)에 저장된 데이터 값 출력 시 사용
-->일반 자바 변수의 값을 출력할 수 없다

<%@ 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>
<%
String s = "Hello~";
pageContext.setAttribute("greet", "Hello..pageContext");
%>
<%= "Hello..표현식" %><br>
${"Hello..EL" }<br>
<%
out.print("hello..스크립틀릿<br>");
%>
<%=s +"표현식 변수사용" %><br>
EL로 자바변수 출력: ${s}<br>
EL로 페이지영역 데이터 출력: ${greet }
</html>
- 등호모임
div는 나누기 연산자(/)
mod는 나머지 연산자(%)
eq는 등호(==)
gt는 크다(>)
lt는 작다(<)
ne는 같지 않다(!=)
ge는 크거나 같다(>=)
le는 작거나 같다(<=)
empty는 변수가 비어있거나 null인지 확인하는 연산자

<%@ 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>
참 거짓${(10>5) && (10<5)}<br>
<%="10>5" %><br>
<hr>
<%-- div는 나누기 연산자(/)와 동일한 의미 --%>
10/5: ${10 div 5 }<br>
<%-- mod는 나머지 연산자(%)와 동일한 의미 --%>
10%3: ${10 mod 3 }<br>
<%-- eq는 등호(==) --%>
10==10 : ${10eq 10 }<br>
10==5 : ${10eq 5 }<br>
<%-- gt는 크다(>) --%>
10>5 : ${10 gt 5 }<br>
5>10 : ${5 gt 10 }<br>
<%-- lt는 작다(<) --%>
10<5 : ${10 lt 5}<br>
5<10 : ${5 lt 10}<br>
<%-- ne는 같지 않다(!= --%>
10!=9 : ${10 ne 9}<br>
<%-- ge는 크거나 같다(>=) --%>
10>=9 : ${10 ge 9 }<br>
<%-- le는 작거나 같다(<=) --%>
9<10 : ${9 le 10 }<br>
<%
String s = null;
%>
<%-- empty는 변수가 비어있거나 null인지 확인하는 연산자 --%>
s는 null: ${empty s }<br>
s : ${s }<br>
null은 안나온다 : ${null }<br>
</body>
</html>
- EL파라미터
- setAttribute를 써서 el로 가져오려면 name만 적어주면 된다

- el로 쓰는건 getparameter로 안가져와도 바로 쓸 수 있따


<%@ 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>
<a href ="0614el03파라미터.jsp?name=짱구&age=23">el03로 가기</a>
</body>
</html>
<%@ 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>
<%
String param=request.getParameter("name");
%>
파라미터(표현식) : <%=param %><br>
파라미터(EL) : ${param.name }<br>
파라미터(EL) : ${param.age }
</body>
</html>
- 좁은범위부터 가져온다



- 이게 왜 흰둥이가 오느냐? 사실상 requestsetAttribute했는데

이렇게 되어있는게 맞다 근데 왜 흰둥이가 나오냐고?
★좁은순서가 우선순위가 되는데 1. page 2. request 3. session 4. application


이렇게하면 흰둥이만 나온다 그럼 값을 다 가져오려면 앞에 pageScope requestScope...등등을 붙여주면 된다


ㅇ아차차 그리고 만약에 application만 남겨두고 연습하려고 하면 session을 지워주고 해야한다
아니면 session먼저 뜨니깐 ㅇㅋ?

<%@ 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>
<%
request.setAttribute("name","짱구");
request.getRequestDispatcher("0614el03파라미터.jsp?age=22").forward(request, response);
%>
</body>
</html>
<%@ 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>
<%
String param=request.getParameter("name");
pageContext.setAttribute("name", "흰둥이");
//이게 왜 흰둥이가 나오느냐? 아래꺼 있는데
//같은 이름(여기선 name)이 있을 경우(좁은범위가 우선순위 == pageContext)
//requestScope이걸 써줘서 읽자
//request.setAttribute("name", "짱구");
session.setAttribute("name", "세션흰둥이");
application.setAttribute("name", "어플흰둥이");
%>
파라미터(표현식) : <%=param %><br>
<%-- page영역 name : ${name }<br> --%>
page영역 name : ${pageScope.name }<br>
request속성 name : ${requestScope.name }<br>
session영역 name : ${sessionScope.name }<br>
application속성 name : ${applicationScope.name }<br>
파라미터(EL) : ${param.age }
</body>
</html>
'JSP > 이론' 카테고리의 다른 글
el로 넘기고 객체로 넘기고 // param으로 el값 가져오기 (0) | 2023.06.14 |
---|---|
el 배열로 (체크박스일 때 사용할 것) 가져오기/paramValues (0) | 2023.06.14 |
setproperty(*) - *(와일드카드) (0) | 2023.06.14 |
jsp:useBean/serProperty, getProperty (0) | 2023.06.14 |
jsp:include vs include file (0) | 2023.06.13 |