6월 16일 내용정리
1.표현 언어(Expression Language)
값(데이터)을 웹 페이지에 표시(표현) 하는 데 사용되는 태그
JSP출력에 대한 부분을 쉽게 하기 위해 개발한 tag이다.
*비교
JSP-> <%=hello%>
EL -> ${hello}
2.표현 언어(Expression Language)에서 사용가능한 데이터타입
정수형: ${10}
실수형: ${5.6}
문자열: ${"김자바"}
논리형: ${true}
null: ${null}
표현언어가 자바와는 다른 특징중 하나가 자바에서는 null을 null로 표시하는데,
표현언어에서는 공백으로 처리된다.
3.EL 과 연산자

4.== 와 eq 관계
${3==3} 와 ${3 eq 3} 같은 의미
5.empty
객체가 null값 인지 확인하기 위해 사용
${empty input}
객체가 비어 있으면 true로 반환한다.
6.EL과 파라미터
JSP내장객체에서 request의getParameter()메소드를 사용 하는데
EL에서는 param 객체를 사용
request.getParameter() ->param
request.getParameterValues() ->paramValues
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
입력한 정보의 내용 입니다.(JSP내장객체 방식)<br>
아이디 : <%=request.getParameter("name") %><br>
비밀번호 : <%=request.getParameter("pwd") %><br>
좋아하는 계절 :
<%
String arr[]=request.getParameterValues("season");
for(String myseason: arr){
out.print(myseason+", ");
}
%><br><br>
입력한 정보의 내용 입니다(EL방식).<br>
아이디 : ${param.name }<br>
비밀번호 : ${param.pwd }<br>
<!--forEach해죠, paramValues.season 요소를 꺼내서 season에 넣어죠.
표현언어에서 JSTL의 forEach를 이용해서 값을 받아옴-->
<c:forEach items="${paramValues.season}" var="season">
${season}
</c:forEach>
</body>
</html>
7.JSP내장객체 와 EL 비교
EL 방식이 깔끔하고 간단한 코드임
<%@ 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>
<h3>고전적인 방법</h3>
<%
int myNum1=Integer.parseInt(request.getParameter("num1"));
int myNum2=Integer.parseInt(request.getParameter("num2"));
%>
<%=myNum1+"+" %><%=myNum2+"=" %><%=myNum1+myNum2%>
<h3>EL 방법</h3>
${param.num1}+${param.num2}=${param.num1+param.num2 }
</body>
</html>
8.표현언어로 내장 객체 접근하기
JSP는 웹 애플리케이션을 구현하는데 필요한 정보를 JSP내장객체(page, request,session)에 어트리뷰트 값으로 저장해서 사용함.
어트리뷰트에 저장된 값을 표현언어에서 아래와 같은형태로 접근한다.
pageScope: page 기본 객체에 저장된 Map(K:V)객체
requestScope: request 기본 객체에 저장된 Map(K:V)객체
sessionScope: session 기본 객체에 저장된 Map(K:V)객체
applicationScope: application 기본 객체에 저장된 Map(K:V)객체
9.어트리뷰트(Attribute) 란?
jsp 내장객체에서 정보를 주고 받기 위한 메소드로 관리되는 정보.
setAttribute(name,value)주어진 name에 value을 설정한다.
getAttribute(name) 주어진 name에 설정된 value을 읽어가지고옴.
getAttributeNames() 현재 객체에 관련된 모든 Attribute이름을 얻어낸다.
removeAttribute(name) 주어진 name에 설정된 value을 제거한다.
10.표현식 과 표현언어(EL)의 차이
<%=add%> 자바의 변수 이름
${add} Attribute 이름
11.내장 객체

12.jsp내장 객체와 표현 언어
(1)pageContext에 저장된 Attribute(정보를 주고 받기 위한 메소드) 값 얻어오기
pageContext.getAttribute("name"); ->${pageScope.name}
(2)request에 저장된 Attribute(정보를 주고 받기 위한 메소드) 값 얻어오기 request.getAttribute("name"); -> ${requestScope.name}
(3)session에 저장된 Attribute(정보를 주고 받기 위한 메소드) 값 얻어오기
session.getAttribute("name"); -> ${sessionScope.name}
(4)application에 저장된 Attribute(정보를 주고 받기 위한 메소드) 값 얻어오기
application.getAttribute("name"); -> ${applicationScope.name}
13.표현언어로 자바빈 정보 저장 및 조회
{member.name}
자바빈의 필드에 저장된 정보를 얻어올 때는 프로퍼티이름을 사용.
14.JSTL(JSP Standard Tag Library)
jsp에서 사용 가능한 표준 태그 라이브러리로 jsp코드가 깔끔하고 가독성이 좋게 됨
15.JSTL의 기능
(1)간단한 프로그램 로직의 구현(자바의 변수 선언, if문,for 문 등에 해당하는 로직
(2)다른 jsp페이지 호출(<:redirect>,<c:import>)
(3)날짜,시간,숫자의 포맷
(4)jsp페이지 하나를 가지고 여러가지 언어의 웹페이지 생성
(5)데이터베이스로의 입력,수정,삭제,조회
(6)XML문서의 처리
(7)문자열을 처리하는 함수 호출
16.JSTL태그

17.JSTL 태그 라이브러리 사용법
jsp페이지에 taglib 지시자 추가
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
접두어 c를 사용하여 라이브러리를 호출 이때 c는 변수와 같음

18.<c:set>
해당 scope 내에 Attribute를 생성하고 값을 설정함
pageContext.setAttribute("name","value");
->
<c:set var="변수이름" value="저장할값" scope="page"/>
var는 문자열 형태로 변수의 이름을 지정.
지정된 변수가 있다면 새롭게 값 reset,없다면 변수가 새로생성되고 값을 설정함.
scope지정안하면 기본값으로 page설정
19.JSTL태그로 자바빈 객체생성
<c:set var="class 변수명" value="<%=new 패키지경로.클래스이름() %>">
<jsp:useBean id="member" class="패키지경로.MemberBean"/>
20.자바빈객체에 value 저장하기
<c:set target="${member} property="name" value="전수빈">
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:set var="msg" value="Hello"></c:set>
\${$msg }=${msg }<br>
<c:set var="age">
30
</c:set>
\${age }=${age }
<c:set var="member" value="<%= new study_0616.beans.MemberBean() %>"></c:set>
<c:set taget="${member }" property="name" value="김자바"></c:set>
<c:set taget="${member }" property="userid">kimjava</c:set>
\${member }=${member }<br><hr>
<c:set var="add" value="${10+300 }"></c:set>
\${add }=${add }<br>
<c:set var="flag" value="${10>5 }"></c:set>
\${flag }=${flag }<br>
</body>
</html>