(<%= %>)을 대신 하여 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 |