[230829 DAY07] JSP_EL, JSTL

jngyoon·2023년 8월 30일

6. JSP

목록 보기
7/8
post-thumbnail

EL문과 JSTL

- 라이브러리로 자바 구문을 만들어 놓고 필요할 때마다 꺼내 쓰면 되기 때문에 유지보수에 편하다.
- JSP 페이지 내에서 자바코드와 HTML코드(태그형태)가 섞여 있으면 가독성이 떨어진다.
- EL문과 JSTL문을 사용하면 HTML과 태그형태로만 구성된 일관된 소스코드를 볼 수 있다.

EL문

Expression Language
값을 간결하고 간편하게 출력, 표현할 수 있도록 해주는 언어

  JSP		       EL
<%=name%>		${name}
<%=3+5%>		${3+5}

[연산자]
	/		div		${10/3}, ${10 div 3}
	%		mod
	&&		and
	||		or
	!		not
	<		lt
	>		gt
	<=		le
	>=		ge
	==		eq
	!=		ne

	empty		뒤에 올 값이 비어있으면 true / 아니라면 false
				${empty data} : data의 값이 없으면 true
                
				session.getAttribute("loginUser") == null
				${empty loginUser}
                

el_test1.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>el_test1</title>
</head>
<body>
	<%-- <%=10+20 %> --%>
	\${10+20} : ${10+20 }<br>
	\${10>20} : ${10>20 }<br>
	<%
		//String data = "Hello";
		pageContext.setAttribute("data", "Hello");
		request.setAttribute("data", "Bye");
		session.setAttribute("data", "신기하다");
	%>
	<hr>
	<%--
		아래의 data는 변수명을 의미하는 것이 아니라 setAttribute() 할 때의 Key값을 의미한다.
		아래는 세팅되어 있는 attribute를 찾는 순서
		
		pageContext -> request -> session -> application
	--%>
    
	<%=pageContext.getAttribute("data")%> / ${data}<br>
	\${data} : ${data}<br>
    //request에 있는 data를 꺼낼 때
	\${requestScope.data} : ${requestScope.data}<br>
    //session에 있는 data를 꺼낼 때
	\${sessionScope.data} : ${sessionScope.data}<br>
</body>
</html>

el_test2.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>el_test2</title>
</head>
<body>
	<%
		Cookie cookie = new Cookie("today","23/08/29");
		response.addCookie(cookie);
	%>
	<form action="el_test3.jsp" method="post">
		아이디 <input type="text" name="id"><br>
		비밀번호 <input type="password" name="pw"><br>
		취미<br>
		게임 <input type="checkbox" name="hobby" value="게임"><br>
		영화 <input type="checkbox" name="hobby" value="영화"><br>
		<input type="submit">
	</form>
</body>
</html>

el_test3.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("UTF-8"); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>el_test3</title>
</head>
<body>
	//파라미터로 날아온 id를 꺼낼 때는 param.id
	아이디 : ${param.id}<br> 
	비밀번호 : ${param.pw}<br>
	<%-- <%=request.getParameterValues("hobby")[0] %> --%>
    //paramValues는 배열로 출력됨 -> 꺼내올 방 번호를 적어줌
	취미 : ${paramValues.hobby[0]} / ${paramValues.hobby[1]}<br> 
	이름 : ${param.name == null ? "이름 없음" : param.name }<br>
	today 쿠키값 : ${cookie.today.value}<br>
	coffee 쿠키값 : ${empty cookie.coffee.value ? "쿠키없음" : cookie.coffee.value}<br>
</body>
</html>

0개의 댓글