ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 21. 표현 언어(EL)
    개발자 수업/JSP 2021. 12. 15. 00:40

    1. 표현 언어(Expression Language)
        1) 변수의 값을 출력할 때 사용하는 스크립트 언어. 데이터 출력 기능
        2) 표현식 (<%= %>) --> ${표현식 or 값}
        3) 자바 코드가 들어가는 표현식을 좀 더 편리하게 사용하기 위함 

    2. EL 특징
        1) 변수, 연산자 포함할 수 있음
            - 자료형 : 불린, 정수, 실수, 문자열, 널(null)
            - 할당 연산자
            - 산술 연산자
                / or div
                % or mod
            - 비교 연산자
                == or eq
                != or ne
                < or lt
                > or gt
                <= or le
                >= or ge
            - 논리 연산자
            - empty 연산자
        2) JSP 내장 객체에 저장된 속성 및 자바빈 속성도 EL 출력 가능
        3) 내장 객체도 제공됨

    3. EL의 내장 객체
        1) 4가지 영역(scope)에 속성 값 저장, 읽어오기
            - 스코프
                - pageScope : page 영역에 저장된 속성 값을 읽어올 수 있음
                              (page 영역에 바인딩된 객체를 참조함)
                - requestScope : request 영역에 저장된 속성 값을 읽어올 수 있음
                - sessionScope : session 영역에 저장된 속성 값을 읽어올 수 있음
                - applicationScope : application 영역에 저장된 속성 값을 읽어올 수 있음
        2) 요청 매개변수
            - param : request.getParameter() 메서드 호출과 같음. 한 개의 값을 전달하는 요청 매개변수 처리함
            - paramValues : request.getParameterValues() 메서드 호출과 같음. 여러 개의 값을 전달하는 요청 매개변수 처리함
        3) 헤더 값
            - header : request.getHeader()
            - headerValues : 
        4) 쿠키 값
            - Cookies
        5) JSP 내용
            - pageContext
        6) 초기 매개변수
            - initParam

    4. 빈 속성 접근 방법
        1) ${빈이름. 속성이름 }

    5. Collection 객체 접근 형식(방법)
        1) ${Collection 객체이름[index].속성이름}

    6. HashMap에 저장된 객체 접근 방법
        1) ${Hash객체이름.키이름}

    7. has-a 관계 빈 속성 접근 방법
        1) ${부모빈이름.자식속성이름.속성이름}

    8. 내장 객체 속성 값 출력


    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" isELIgnored="false"%>
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>표현 언어에서 사용되는 데이터들 출력</title>
    </head>
    <body>
    	<h1>표현 언어로 여러가지 데이터 출력</h1>
    	<h1>
    		${100 }<br>
    		${"좋은 아침입니다." }<br>
    		${10 + 1 }<br>
    		${"10" +1 }<br> 	<!-- 숫자형 문자열과 실제 문자를 더하면 문자열이 자동으로 숫자로 변환 -->
    		${null + 10}<br>
    		<%-- ${"좋은아침" + 11 }<br> --%>		<!-- 문자열과 숫자는 더할 수 없음 -->
    		<%-- ${"Hello" + "World" }<br> --%>	<!-- 문자열끼리 더할 수 없음 -->
    	</h1>
    </body>
    </html>


    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>표현 언어의 여러가지 연산자들</title>
    </head>
    <body>
    	<h2>여러가지 산술 연산자</h2>
    	<h1>
    		${100/9 }<br>
    		${100 div 9 }<br>		<!-- div를 사용해 나누기 연산을 함 -->
    		${100 % 9 }<br>
    		${100 mod 9 }<br>		<!-- mod를 사용해 나머지를 구함 -->
    	</h1>
    	<br>
    	<h2>여러가지 비교 연산자</h2>
    	<h3>
    		${10 == 10 }<br>
    		${10 eq 10 }<br>
    		${"Seoul" == "Seoul" }<br>	<!-- 문자열이 서로 같은지 비교 -->
    		${"Seoul" eq "Seoul" }<br>
    	</h3>
    </body>
    </html>


    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" %>
    <%
    	pageContext.setAttribute("pScopeValue", "페이지 영역");
    	request.setAttribute("rScopeValue", "리퀘스트 영역");
    	session.setAttribute("sScopeValue", "세션 영역");
    	application.setAttribute("aScopeValue", "어플리케이션 영역");
    %>
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>표현언어(EL) - 내장 객체</title>
    </head>
    <body>
    	<h3>각 영역에 저장된 속성 읽기</h3>
    		<ul>
    			<li>페이지 영역 : ${pageScope.pScopeValue }</li>
    			<li>리퀘스트 영역 : ${requestScope.rScopeValue }</li>
    			<li>세션 영역 : ${sessionScope.sScopeValue }</li>
    			<li>어플리케이션 영역 : ${applicationScope.aScopeValue }</li>
    		</ul>
    </body>
    </html>


    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%
    	int num1 = 3;
    	pageContext.setAttribute("num2", 4);
    	pageContext.setAttribute("num3", "5");
    	pageContext.setAttribute("num4", "8");
    %>
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>표현 언어(EL) - 연산자</title>
    </head>
    <body>
    	<h3>변수 선언 값 확인 및 할당</h3>
    	스크립트릿에서 선언한 변수 : ${num1 }<br>
    	page 영역에서 저장된 변수 : ${num2 }<br>
    	변수 할당 및 바로 출력 : ${num1 = 7 }<br>
    	변수 할당 및 별도 출력 : ${num2 = 8;'' }<br>
    	별도 출력 : ${num2 }<br>
    	
    	<h3>산술 연산자</h3>
    	num3 div num4 : ${num3 div num4 }<br>
    	num3 mod num4 : ${num3 mod num4 }<br>
    	
    	<h3>비교 연산자</h3>
    	num4 > num3 : ${num4 gt num3 }<br>
    	num1 < num3 : ${num1 lt num3 }<br>
    	num2 >= num4 : ${num2 ge num4 }<br>
    	
    	${"hello" != "apple" }<br>
    	${"hello" ne "apple" }<br>
    </body>
    </html>


    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>표현언어 여러 연산자들</title>
    </head>
    <body>
    	<h1>여러가지 논리 연산자</h1>
    	<h2>
    		${(10==10) && (20==20) }<br>
    		${(10==10) and (20!=20) }<br><br>
    		
    		${(10==10) || (20==30) }<br>
    		${(10!=10) or (20!=20) }<br><br>
    		
    		${!(20==10) }<br>
    		${not(20==10) }<br>
    		
    	</h2>
    </body>
    </html>


    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
        
    <jsp:useBean id="m1" class="kr.co.ezenac.el.MemberBean" scope="page" /> <!-- 유즈빈 생성 -->
    <jsp:setProperty property="name" value="이순신" name="m1"/>			<!-- 빈의 name 속성에 값을 설정함 -->
    <jsp:useBean id="m2" class="java.util.ArrayList" scope="page"/>		<!-- ArrayList 객체를 빈으로 생성 -->
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>표현언어 여러 연산자들</title>
    </head>
    <body>
    	empty 연산자
    	<h2>
    		${empty m1 }<br>		<!-- m1의 name 속성에 값이 설정되어 있으므로 false 반환함 -->
    		${not empty m1 }<br><br>
    		
    		${empty m2 }<br>		<!-- ArrayList 객체인 m2는 비어있음 -->
    		${not empty m2 }<br><br>
    		
    		${empty "Hello" }<br>
    		${empty null }<br>		<!-- null은 true반환 -->
    		${empty "" }<br><br>
    	</h2>
    </body>
    </html>


    import java.sql.Date;
    
    public class MemberBean {
    	private String id;
    	private String pwd;
    	private String name;
    	private String email;
    	private Date joinDate;
    	
    	public MemberBean() {
    		// TODO Auto-generated constructor stub
    	}
    
    	public MemberBean(String id, String pwd, String name, String email) {
    		//super();
    		this.id = id;
    		this.pwd = pwd;
    		this.name = name;
    		this.email = email;
    	}
    
    	public String getId() {
    		return id;
    	}
    
    	public void setId(String id) {
    		this.id = id;
    	}
    
    	public String getPwd() {
    		return pwd;
    	}
    
    	public void setPwd(String pwd) {
    		this.pwd = pwd;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public String getEmail() {
    		return email;
    	}
    
    	public void setEmail(String email) {
    		this.email = email;
    	}
    
    	public Date getJoinDate() {
    		return joinDate;
    	}
    
    	public void setJoinDate(Date joinDate) {
    		this.joinDate = joinDate;
    	}
    	
    }
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>회원 가입창</title>
    </head>
    <body>
    	<form action="member1.jsp">
    		<h1 style="text-align: center;">회원 가입창</h1>
    		<table align="center">
    			<tr>
    				<td width="200">
    					<p align="right">아이디</p>
    				</td>
    				<td width="400">
    					<input type="text" name="id">
    				</td>
    			</tr>
    			<tr>
    				<td width="200">
    					<p align="right">비밀번호</p>
    				</td>
    				<td width="400">
    					<input type="password" name="pwd">
    				</td>
    			</tr>
    			<tr>
    				<td width="200">
    					<p align="right">이름</p>
    				</td>
    				<td width="400">
    					<input type="text" name="name">
    				</td>
    			</tr>
    			<tr>
    				<td width="200">
    					<p align="right">이메일</p>
    				</td>
    				<td width="400">
    					<input type="text" name="email">
    				</td>
    			</tr>
    			<tr>
    				<td width="200">
    					<p align="right">&nbsp;</p>
    				</td>
    				<td width="400">
    					<input type="submit" value="가입하기">
    					<input type="reset" value="다시입력">
    				</td>
    			</tr>
    		</table>
    	</form>
    </body>
    </html>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%
    	request.setCharacterEncoding("utf-8");				/* 표현식으로 출력하기 위해 getParameter() 이용 */
    	String id = request.getParameter("id");
    	String pwd = request.getParameter("pwd");
    	String name = request.getParameter("name");
    	String email = request.getParameter("email");
    %>
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>회원 정보 출력</title>
    </head>
    <body>
    	<table border="1" align="center">
    		<tr align="center" bgcolor="#99ccff">
    			<td width="20%"><b>아이디</b></td>
    			<td width="20%"><b>비밀번호</b></td>
    			<td width="20%"><b>이름</b></td>
    			<td width="20%"><b>이메일</b></td>
    		</tr>
    		
    		<tr align="center">
    			<td><%=id %></td>		<!-- getParameter()로 가져온 회원 정보를 표현식으로 출력 -->
    			<td><%=pwd %></td>
    			<td><%=name %></td>
    			<td><%=email %></td>
    		</tr>
    		
    		<tr align="center">
    			<td>${param.id }</td>	<!-- param 객체를 이용해 getParameter() 이용하지 않고 출력 -->
    			<td>${param.pwd }</td>
    			<td>${param.name }</td>
    			<td>${param.email }</td>
    		</tr>
    	</table>
    </body>
    </html>


    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>로그인</title>
    </head>
    <body>
    	<form action="result.jsp">
    		아이디 : <input type="text" size="20"><br>
    		비밀번호 : <input type="password" size="20"><br>
    		<input type="submit" value="로그인">
    		<input type="reset" value="다시입력"><br><br>
    		<!-- 직접 컨텍스트 이름을 입력해 요청함 -->
    		<a href="http://localhost:8080/chap14_EL/ELTest02/memberForm.jsp">회원 가입하기</a><br>
    		
    		<!-- request의 getContextPath() 이용해 컨텍스트 이름을 가져옴 -->
    		<a href="<%=request.getContextPath() %>/ELTest02/memberForm.jsp">회원 가입하기</a><br>
    		
    		<!-- 자바 코드 상용하지 않고 pageContext의 속성인 request의 contextPath 속성으로 컨텍스트 이름을 가져옴-->
    		<a href="${pageContext.request.contextPath}/ELTest02/memberForm.jsp">회원 가입하기</a>
    	</form>
    </body>
    </html>


    memberForm.jsp에서 form action="member(n).jsp" 숫자만 바꿔가며 응용

    <member2.jsp>

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>회원 정보 출력</title>
    </head>
    <body>
    	<table border="1" align="center">
    		<tr align="center" bgcolor="#99ccff">
    			<td width="20%"><b>아이디</b></td>
    			<td width="20%"><b>비밀번호</b></td>
    			<td width="20%"><b>이름</b></td>
    			<td width="20%"><b>이메일</b></td>
    			<td width="20%"><b>주소</b></td>
    		</tr>
    		
    		<tr align="center">
    			<td>${param.id }</td>	<!-- param 객체를 이용해 getParameter() 이용하지 않고 출력 -->
    			<td>${param.pwd }</td>
    			<td>${param.name }</td>
    			<td>${param.email }</td>
    			<td>${requestScope.address }</td>	<!-- requestScope 이용해 바인딩된 주소 정보 출력 -->
    		</tr>
    	</table>
    </body>
    </html>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%
    	request.setCharacterEncoding("utf-8");
    	request.setAttribute("address", "서울시 서초구");		/* 회원 가입창의 request에 대해 주소정보 바인딩 */
    %>
    
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>Insert title here</title>
    </head>
    <body>
    	<jsp:forward page="member2.jsp"></jsp:forward>		<!-- member2.jsp로 포워딩함 -->
    </body>
    </html>

     


    <member3.jsp>

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%
    	request.setCharacterEncoding("utf-8");
    %>
    <jsp:useBean id="m" class="kr.co.ezenac.el.MemberBean"/>	<!-- 회원 정보 저장할 빈 생성함 -->
    <jsp:setProperty property="*" name="m"/> 					<!-- 전송된 회원 정보를 빈의 속성에 설정 -->
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>회원 정보 출력</title>
    </head>
    <body>
    	<table border="1" align="center">
    		<tr align="center" bgcolor="#99ccff">
    			<td width="20%"><b>아이디</b></td>
    			<td width="20%"><b>비밀번호</b></td>
    			<td width="20%"><b>이름</b></td>
    			<td width="20%"><b>이메일</b></td>
    		</tr>
    		<tr align="center">
    			<td><%=m.getId()%></td>			<!-- 표현식 이용해 회원 정보 출력 -->
    			<td><%=m.getPwd() %></td>
    			<td><%=m.getName() %></td>
    			<td><%=m.getEmail() %></td>
    		</tr>
    		<tr align="center">
    			<td>${m.id }</td>				<!-- 빈 id와 속성 이름으로 접근해 회원 정보 출력 -->
    			<td>${m.pwd }</td>
    			<td>${m.name }</td>
    			<td>${m.email }</td>
    		</tr>
    	</table>
    </body>
    </html>

    <member4.jsp>

    <%@page import="kr.co.ezenac.el.MemberBean"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%
    	request.setCharacterEncoding("utf-8");
    %>
    <jsp:useBean id="m1" class="kr.co.ezenac.el.MemberBean"/>	<!-- 회원 정보 저장할 빈 생성함 -->
    <jsp:setProperty property="*" name="m1"/> 					<!-- 전송된 회원 정보를 빈의 속성에 설정 -->
    <jsp:useBean id="membersList" class="java.util.ArrayList"/>
    
    <%
    	MemberBean m2 = new MemberBean("ezenac", "0311", "이젠", "ezenac@gmail.com");
    	membersList.add(m1);
    	membersList.add(m2);		/* 두 개의 MemberBean 객체를 ArrayList에 저장함 */
    %>
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>회원 정보 출력</title>
    </head>
    <body>
    	<table border="1" align="center">
    		<tr align="center" bgcolor="#99ccff">
    			<td width="20%"><b>아이디</b></td>
    			<td width="20%"><b>비밀번호</b></td>
    			<td width="20%"><b>이름</b></td>
    			<td width="20%"><b>이메일</b></td>
    		</tr>
    		<tr align="center">
    			<td>${membersList[0].id }</td>		
    			<td>${membersList[0].pwd }</td>
    			<td>${membersList[0].name }</td>
    			<td>${membersList[0].email }</td>
    		</tr>
    		<tr align="center">
    			<td>${membersList[1].id }</td>		
    			<td>${membersList[1].pwd }</td>
    			<td>${membersList[1].name }</td>
    			<td>${membersList[1].email }</td>
    		</tr>
    	</table>
    </body>
    </html>


    <member5.jsp>

    <%@page import="kr.co.ezenac.el.MemberBean"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%
    	request.setCharacterEncoding("utf-8");
    %>
    <jsp:useBean id="m1" class="kr.co.ezenac.el.MemberBean"/>	<!-- 회원 정보 저장할 빈 생성함 -->
    <jsp:setProperty property="*" name="m1"/> 					<!-- 전송된 회원 정보를 빈의 속성에 설정 -->
    <jsp:useBean id="membersList" class="java.util.ArrayList"/>	<!-- MemberBean 객체를 저장할 ArrayList 객체 생성 -->
    <jsp:useBean id="memberMap" class="java.util.HashMap"/>		<!-- 회원 정보 저장할 HashMap 객체 -->
    
    <%
    	memberMap.put("id", "ezenac100");
    	memberMap.put("pwd", "0311");
    	memberMap.put("name", "이젠100");						/* HashMap에 key/value 쌍으로 회원 정보 저장함 */
    	memberMap.put("email", "ezenac100@gmail.com");
    	
    	/* 회원 정보를 저장하는 MemberBean 객체 생성 */
    	MemberBean m2 = new MemberBean("ezenac200", "0311", "이젠200", "ezen200@gmail.com");
    	
    	//전송된 회원 정보와 자바코드로 생성한 회원 정ㅈ보를 ArrayList에 저장함
    	membersList.add(m1);
    	membersList.add(m2);
    	
    	//회원 정보가 저장된 membersList를 membersList라는 key로 HashMap에 저장함
    	memberMap.put("membersList", membersList);
    %>
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>회원 정보 출력</title>
    </head>
    <body>
    	<table border="1" align="center">
    		<tr align="center" bgcolor="#99ccff">
    			<td width="20%"><b>아이디</b></td>
    			<td width="20%"><b>비밀번호</b></td>
    			<td width="20%"><b>이름</b></td>
    			<td width="20%"><b>이메일</b></td>
    		</tr>
    		
    		<tr align="center">			<!-- HashMap 이름 뒤에 .(마침표) 연산자로 저장시 사용한 Key를 사용하여 Value 가져옴 -->
    			<td>${memberMap.id }</td>
    			<td>${memberMap.pwd }</td>
    			<td>${memberMap.name }</td>
    			<td>${memberMap.email }</td>
    		</tr>
    		
    		<tr align="center">			<!-- HashMap 저장된 ArrayList에 .로 접근한 후 다시 각각의 속성을 .이용해 접근 -->
    			<td>${memberMap.membersList[0].id }</td>
    			<td>${memberMap.membersList[0].pwd }</td>
    			<td>${memberMap.membersList[0].name }</td>
    			<td>${memberMap.membersList[0].email }</td>
    			
    		</tr>
    		<tr align="center">
    			<td>${memberMap.membersList[1].id }</td>
    			<td>${memberMap.membersList[1].pwd }</td>
    			<td>${memberMap.membersList[1].name }</td>
    			<td>${memberMap.membersList[1].email }</td>
    		</tr>
    	</table>
    </body>
    </html>


    import java.sql.Date;
    
    public class MemberBean {
    	private String id;
    	private String pwd;
    	private String name;
    	private String email;
    	private Date joinDate;
    	private Address addr;		//주소 정보 저장하는 Address 클래스 타입의 속성 선언
    	
    	public MemberBean() {
    		// TODO Auto-generated constructor stub
    	}
    
    	public MemberBean(String id, String pwd, String name, String email) {
    		//super();
    		this.id = id;
    		this.pwd = pwd;
    		this.name = name;
    		this.email = email;
    	}
    
    	public String getId() {
    		return id;
    	}
    
    	public void setId(String id) {
    		this.id = id;
    	}
    
    	public String getPwd() {
    		return pwd;
    	}
    
    	public void setPwd(String pwd) {
    		this.pwd = pwd;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public String getEmail() {
    		return email;
    	}
    
    	public void setEmail(String email) {
    		this.email = email;
    	}
    
    	public Date getJoinDate() {
    		return joinDate;
    	}
    
    	public void setJoinDate(Date joinDate) {
    		this.joinDate = joinDate;
    	}
    
    	public Address getAddr() {
    		return addr;
    	}
    
    	public void setAddr(Address addr) {
    		this.addr = addr;
    	}
    	
    }
    public class Address {
    	private String city;
    	private String zipcode;
    	
    	public Address() {
    		// TODO Auto-generated constructor stub
    	}
    
    	public String getCity() {
    		return city;
    	}
    
    	public void setCity(String city) {
    		this.city = city;
    	}
    
    	public String getZipcode() {
    		return zipcode;
    	}
    
    	public void setZipcode(String zipcode) {
    		this.zipcode = zipcode;
    	}
    }
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%
    	request.setCharacterEncoding("utf-8");
    %>
    <jsp:useBean id="m" class="kr.co.ezenac.el02.MemberBean"/>
    <jsp:setProperty property="*" name="m"/>
    <jsp:useBean id="addr" class="kr.co.ezenac.el02.Address"/>
    <jsp:setProperty property="city" value="서울" name="addr"/>
    <jsp:setProperty property="zipcode" value="08080" name="addr"/>
    
    <%
    	m.setAddr(addr);		//MemberBean의 addr 속성에 Address 빈을 설정함
    %>
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>회원 정보 출력</title>
    </head>
    <body>
    	<table border="1" align="center">
    		<tr align="center" bgcolor="#99ccff">
    			<td width="7%"><b>아이디</b></td>
    			<td width="7%"><b>비밀번호</b></td>
    			<td width="5%"><b>이름</b></td>
    			<td width="5%"><b>이메일</b></td>
    			<td width="5%"><b>도시</b></td>
    			<td width="5%"><b>우편번호</b></td>
    		</tr>
    		<tr align="center">
    			<td>${m.id }</td>	<!-- 자바 빈의 속성 이름과 자식 속성 이름.속성이름으로 가져옴 -->
    			<td>${m.pwd }</td>
    			<td>${m.name }</td>
    			<td>${m.email }</td>
    			<td>${m.addr.city }</td>
    			<td>${m.addr.zipcode }</td>
    		</tr>
    	</table>
    </body>
    </html>


    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
        
    <%
    	request.setCharacterEncoding("utf-8");
    	request.setAttribute("id", "ezen300");	/* request 내장 객체에 바인딩함 */
    	request.setAttribute("pwd", "0311");
    	session.setAttribute("name", "이순신");	/* session 내장 객체에 바인딩함 */
    	application.setAttribute("email", "ezen300@gmail.com");		/* application 내장 객체에 바인딩함 */
    %>
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>forward1</title>
    </head>
    <body>
    	<jsp:forward page="member1.jsp"/>	<!-- member1.jsp로 포워딩함 -->
    </body>
    </html>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%
    	request.setCharacterEncoding("utf-8");
    	String id = (String)request.getAttribute("id");		/* 각 내장 객체 바인딩된 속성 값들을 getAttribute() 이용해 가져옴 */
    	String pwd = (String)request.getAttribute("pwd");
    	String name = (String)session.getAttribute("name");
    	String email = (String)application.getAttribute("email");
    %>
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>회원 정보 출력</title>
    </head>
    <body>
    	<table border="1" align="center">
    		<tr align="center" bgcolor="#99ccff">
    			<td width="7%"><b>아이디</b></td>
    			<td width="7%"><b>비밀번호</b></td>
    			<td width="5%"><b>이름</b></td>
    			<td width="5%"><b>이메일</b></td>
    		</tr>
    		<tr align="center">
    			<td>${id }</td>		<!-- 자바 코드 없이 바로 바인딩된 속성 이름으로 회원 정보 출력 -->
    			<td>${pwd }</td>
    			<td>${name }</td>
    			<td>${email }</td>
    		</tr>
    	</table>
    </body>
    </html>


    <%@page import="kr.co.ezenac.el.MemberBean"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
        
    <%
    	request.setCharacterEncoding("utf-8");
    	MemberBean member = new MemberBean("ezen400", "0311", "이순신", "ezen400@gmail.com");
    	request.setAttribute("member", member);  	/* 속성이름 member로 MemberBean객체를 바인딩함 */
    %>
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>forward1</title>
    </head>
    <body>
    	<jsp:forward page="member2.jsp"/>	<!-- member2.jsp로 포워딩함 -->
    </body>
    </html>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>회원 정보 출력</title>
    </head>
    <body>
    	<table border="1" align="center">
    		<tr align="center" bgcolor="#99ccff">
    			<td width="20%"><b>아이디</b></td>
    			<td width="20%"><b>비밀번호</b></td>
    			<td width="20%"><b>이름</b></td>
    			<td width="20%"><b>이메일</b></td>
    		</tr>
    		<tr align="center">
    			<td>${member.id }</td>		<!-- 바인딩시 속성 이름으로 각각의 MemberBean 속성에 접근하여 회원 정보 출력 -->
    			<td>${member.pwd }</td>
    			<td>${member.name }</td>
    			<td>${member.email }</td>
    		</tr>
    	</table>
    </body>
    </html>


    <%@page import="java.util.ArrayList"%>
    <%@page import="java.util.List"%>
    <%@page import="kr.co.ezenac.el.MemberBean"%>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
        
    <%
    	request.setCharacterEncoding("utf-8");
    	List<MemberBean> membersList = new ArrayList<>();		/* ArrayList 객체 생성 */
    	//MemberBean 객체를 생성한 후 회원 정보 저장
    	MemberBean m1 = new MemberBean("ezen500", "0311", "이순신", "ezen500@gmail.com");
    	MemberBean m2 = new MemberBean("ezen600", "0311", "이도", "ezen600@gmail.com");
    	membersList.add(m1);	//두 개의 MemberBean 객체를 ArrayList에 저장
    	membersList.add(m2);
    	//request 내장 객체에 ArrayList를 속성 이름 membersList로 바인딩함
    	request.setAttribute("membersList", membersList);  	/* 속성이름 member로 MemberBean객체를 바인딩함 */
    %>
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>forward1</title>
    </head>
    <body>
    	<jsp:forward page="member3.jsp"/>	<!-- member3.jsp로 포워딩함 -->
    </body>
    </html>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%
    	request.setCharacterEncoding("utf-8");
    %>
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>회원 정보 출력</title>
    </head>
    <body>
    	<table border="1" align="center">
    		<tr align="center" bgcolor="#99ccff">
    			<td width="20%"><b>아이디</b></td>
    			<td width="20%"><b>비밀번호</b></td>
    			<td width="20%"><b>이름</b></td>
    			<td width="20%"><b>이메일</b></td>
    		</tr>
    		<tr align="center">
    			<td>${membersList[0].id }</td>		
    			<td>${membersList[0].pwd }</td>
    			<td>${membersList[0].name }</td>
    			<td>${membersList[0].email }</td>
    		</tr>
    		<tr align="center">
    			<td>${membersList[1].id }</td>		
    			<td>${membersList[1].pwd }</td>
    			<td>${membersList[1].name }</td>
    			<td>${membersList[1].email }</td>
    		</tr>
    	</table>
    </body>
    </html>

     

    '개발자 수업 > JSP' 카테고리의 다른 글

    23. 파일 업로드 다운로드  (0) 2021.12.16
    22. JSTL  (0) 2021.12.15
    20. 게시판 만들기(모델1) 업로드 예정  (0) 2021.12.15
    19. 액션태그  (0) 2021.12.09
    17. Cookie  (0) 2021.12.08

    댓글