본문 바로가기

JSP

EL(Expression Language) 표현식 ${ }

(<%= %>)을 대신 하여 JSP값들을 좀더 편하게 출력

 

EL로 표현할 때는 ${hello}로 표현된다.

EL의 내장 객체

내장 객체 설명
pageScope Page영역에 졵재하는 객체를 참조할 때 사용한다.
requestScope Request 영역에 존재하는 객체를 참조할 때 사용한다.
sessionScope Session 영역에 존재하는 객체를 참조할 때 사용한다.
applicationScope Application 영역에 존재하는 객체를 참조할 때 사용한다.
param 파라미터 값을 얻어올 때 사용한다.
cookie 쿠키 객체를 참조할 때 사용한다.

이 3개를 잘 씀

requestScop는 그냥 request써도 괜찮으니까 헷갈리지 말고 그냥 request쓰기

나머지들은 Scope붙여서 사용하기

elTest1.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	// page -> request -> session -> application
	request.setAttribute("username", "ssar");
	session.setAttribute("username", "1234");
	RequestDispatcher dis =
			request.getRequestDispatcher("elTest2.jsp");
	dis.forward(request, response);
%>

 

elTest2.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	//String username = (String) request.getAttribute("username");
	//String password = (String) session.getAttribute("password");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>elTest2.jsp</title>
</head>
<body>
<h1>elTest2.jsp 파일</h1>
<hr/>
유저네임 : ${username} <br/>
패스워드 : ${sessionScope.password} <br/>
</body>
</html>

 

elTest3.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>
<form action="elTest4.jsp" method="post">
	<input type="email" name="email" value="ssar@nate.com" />
	<button>전송</button>
</form>
</body>
</html>

 

 

elTest4.jsp

 

<%@page import="java.io.BufferedReader"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	// String email = request.getParameter("email");
	BufferedReader br = request.getReader();
	
	String input = null;
	StringBuilder sb = new StringBuilder();
	while((input = br.readLine()) != null){
		sb.append(input);
		System.out.println(input);
	}
	String email = sb.toString();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>elTest4.jsp</h1>
<hr/>
이메일 : <%=email %>
</body>
</html>

 

elTest5.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>
<a href="elTest6.jsp?money=10000">전송</a>
</body>
</html>

 

 

elTest6.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>
<h1>elTest6.jsp</h1>
<hr/>
<%
	// 10000
	String money = request.getParameter("money");
%>
<script>
	var num = 100;
	var m = '${param.money}';
	console.log(m);

	var sum = num+'${param.money}';
	console.log(sum);
</script>


</body>
</html>

 

 

 

el 표현식의 장점 자바코드가 줄어든다, 디자이너와 협업을 돕는다.  .jsp파일에 자바코드를 줄일 수 있다. 딱 출력할 부분에만 자바 코드 들어가고

 

el표현식을 썻을 때 우선 순위가 아래와 같다.

page->request->session->aplication

 

request는 변수명만 적고

나머지는 sessionscope, 

 

장점은 request.getAttribute("변수명 키값")

이런 자바코드를 안써도 된다.

 

getParameter하고 getAttribute차이 알아야한다...

 

 

 

<form>

<input>

<button>은 자동 submit(form tag안에서)

 

request.getParame  ->> 버퍼로 받아서 파싱해서 보여줌?

get은 바디에 아무것도 없어

post 버퍼로 받으면 됨. request.getParameter로도 받을 수 있음

 

 

5, 6

el

setAttribute한거는 

el표현식으로 ${param.변수명}

el표현식으로 ${param.변수명+5000}이렇게 연산도 가능

empty : 값이 null 인지와 값이 비어있는지를

 

자바스크립트안에서도 el표현식 가능 숫자 가능, 문자는 '${param.money}'

 

p513

 

 

EL연산자

 

연산자 설명
[ ] 배열
empty 값이 NULL 값이거나 비어있거나, 사이즈가 0일 경우 true를 반환한다.

 

논리 연산자

! 또는 not : 값이 만족하지 않으면 true, 만족하면 false를 반환한다. 즉, true는 false로 false는 true로변경해 주는연산자다.

 

 

비교연산자

비교연산자 설명
== 또는 eq 두항의 값이 같으면 true, 그렇지 않으면 false를 반환한다.
!= 또는 ne 두항의 값이 다르면 false, 그렇지 않으면 true를 반환한다.

 

자바코드가 먼저 tomcat에서 컴파일 되기 때문에 자바변수에 스크립트의 변수를 넣을 수 없어요. 스크립트변수에 자바 변수를 담을 수 는 있지요. 컴파일 타이밍때문에.

 

자바의 값을 다음페이지에 넘기는 거는 re에 담아서 디스패치해서 넘기는거 이거는 이때까지 배운거

자바스크립트의 값을 다음페이지에 넘기고 싶으면 form태그, ajax 아니면____으로 넘길 수 있다. 음...

 

인터프리터는 위에서 아래로 순서대로지만 자바코드 컴파일은 그 부분 찾아서 먼저 한다.

 

 

 

쿠키 객체의 생성자 메소드

 

Cookie cookie = new Cookie(name, value);

response.addCookie(cookie);

setMaxAge(int seconds) : 쿠키 만료 기간을 지정한다.

'JSP' 카테고리의 다른 글

블로그 상세보기,dto/수정하기  (0) 2020.06.08
JSOUP  (0) 2020.06.08
JSTL  (0) 2020.06.03
게시글 작성  (0) 2020.06.02
AJAX ID중복확인 -->아직 수업 더 드  (0) 2020.06.02