자바38일차

달달한스위츠·2024년 4월 5일

자바배우기

목록 보기
35/43

오늘의 코드
EL(Expression Language)에 관련해서

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL 기초</title>
</head>
<body>
	<%--
		EL(Expression Language)
		- page, request, session, application 관련 데이터 출력 코드를
		  간략하게 사용할 수 있는 표기법
		- 자바빈 컴퍼넌트를 쉽게 접근하게 도와줌
		- 집합 객체(list, String[])에 대한 접근 방법을 제공
		- 수치연산, 관계 연산, 논리 연산자 제공
		- 표현 언어만의 기본 객체 제공(범위 객체)
		
		EL 기본 객체
		- pageContext : JSP의 ㅔㅁㅎㄷ 기본 객체와 동일
		- pageScope : page 기본 객체에 저장된 속성의 <속성, >
		    매핑을 저장한 map 개체
		- requestScope : request 기본 객체에 저장된 속성의 <속성, >
			매핑을 저장한 Map 객체
		- applicationScope : application 기본 객체에 저장된 <속성, >
			매핑을 저장한 Map 객체
		- param : 요청 파라미터의 <파라미터이름, > 메핑을 저장한 Map 객체,
			타입은 String (request.getParameter("파라미터이름")과 동일)
		- paramValues : 요청 파라미터의 <파라미터이름, > 매핑을 저장한 Map 객체,
			타입은 String[] (request.getParameter("파라미터이름")과 동일)
		- cookie : <쿠키이름, 쿠키값> 매핑을 저장한 Map 객체
            (request.getCookies()와 동일)
        - initParam : 초기화된 파라미터의 <파라미터이름, > 매핑을 저장한 Map 객체
           (application.getInitParameter("파라미터이름")과 동일)  
		    
	 --%>
	
	<%    // 택베 기사분들
		pageContext.setAttribute("num1", 1);
		request.setAttribute("num2", 2);
		session.setAttribute("num3", 3);
		application.setAttribute("num4", 4);
		
		// 기존 방식으로 값 출력
		int number1 = (Integer) pageContext.getAttribute("num1");
		int number2 = (Integer) request.getAttribute("num2");
		
		pageContext.setAttribute("scopeNum", 1);
	 	request.setAttribute("scopeNum", 2);
	 	session.setAttribute("scopeNum", 3);
	 	application.setAttribute("scopeNum", 4);
	 	
	%>
	<h1>변수 사용</h1>
	<p>JSP 변수의 합 : <%=number1 + number2 %></p>
	<p>page num1 : ${num1 }</p><%-- pageContext.getAttribute("num1"); --%>
	<p>request num2 : ${num2 }</p><%-- request.getAttribute("num2"); --%>
	<p>session num3 : ${num3 }</p><%-- session.getAttribute("num3"); --%>
	<p>application num4 : ${num4 }</p><%-- application.getAttribute("num4"); --%>
	
	<h1>EL 범위 테스트</h1>
	 <p>page scopeNum : ${scopeNum }</p>
	 <p>request scopeNum : ${scopeNum }</p>
	 <p>session scopeNum : ${scopeNum }</p>
	 <p>application scopeNum : ${scopeNum }</p>
	
	
	
</body>
</html>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL 연산자</title>
</head>
<body>
	<%
		String nullstr = null;
		String emptyStr = "";
		String[] zeroArray = new String[0];
		ArrayList<String> emptyList = new ArrayList<>();
		
		pageContext.setAttribute("nullstr", nullstr);
		pageContext.setAttribute("emptyStr", emptyStr);
		pageContext.setAttribute("zeroArray", zeroArray);
		pageContext.setAttribute("emptyList", emptyList);
	%>
	
	<%--
	EL 연산자
	- 기본적인 연산자는 자바와 동일
	- '/'와 div는 동일한 연산자
	 --%>
	 
	<h1>EL 연산자</h1>
	<h2>산술 연산자</h2>
	더하기 : ${20 + 10 }<br>
	빼기 : ${'20' - '10' }<br>
	몫 : ${'40' div '6' }<br>
	나머지 : ${40 mod 6 }<br>
	
	<h2>비교 연산자</h2>
	같은가? : ${'10' eq '10' }<br>
	다른가? : ${'10' ne '10' }<br>
	작은가? : ${'10' lt '10' }<br>
	큰가? : ${'10' gt '10' }<br>
	작거나 같은가? : ${'10' le '10' }<br>
	크거나 같은가? : ${'10' ge '10' }<br>
	
	<h2>논리 연산자</h2>
	논리곱 : ${true and false }<br>
	논리합 : ${true or false }<br> <%-- or로 전부 가져가니 참이 됨 --%>
	논리 부정 : ${not false }<br>
	
	<h2>empty 연산자</h2>
	null : ${empty nullstr }<br>
	빈 문자열 : ${empty emptyStr }<br>
	길이가 0인 배열 : ${empty zeroArray }<br>
	빈 ArrayList(collection) : ${empty emptyList }<br>
	나머지 경우 : ${empty "문자열" }<br>
	not null : ${not empty nullstr }<br>
	
	
	
</body>
</html>
<%@ 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>
	<h2>회원 가입하기</h2>
  	<form action="03_parameter.jsp" method="post">
    	<p>아이디</p>
	    <input type="text" name="userid" placeholder="아이디 입력" required="required">
	    <p>패스워드</p>
	    <input type="password" name="password" placeholder="비밀번호 입력" required="required">
	    <p>이메일</p>
	    <input type="email" name="email" placeholder="이메일 입력" required="required">
	    <p>이메일 수신여부</p>
	    <input type="radio" name="emailAgree" value="y"><input type="radio" name="emailAgree" value="n" checked="checked">아니오
	    
	    <p>관심사항</p>
	    <input type="checkbox" name="interest" value="IT">IT/인터넷
	    <input type="checkbox" name="interest" value="movie">영화
	    <input type="checkbox" name="interest" value="music">음악
	    <input type="checkbox" name="interest" value="book"><input type="checkbox" name="interest" value="food">음식    
	    
	    <p>핸드폰</p>
	    <input type="text" name="phone" placeholder="번호 입력" required="required">
	    
	    <p>자기소개</p>
	    <textarea rows="4" cols="30" name="introduce" placeholder="자기소개 입력" required="required"></textarea>
	    <br>
	    <input type="submit" value="전송" >
  	</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원 정보 보기</title>
</head>
<body>
	<%-- param.(파라미터이름) == request.getParameter(파라미터이름) --%>
	
	<p>아이디 : ${param.userid }</p>
	<p>비밀번호 : ${param.password }</p>
	<p>이메일 : ${param.email }</p>
	<p>이메일 수신여부 : ${param.emailAgree }</p>
	<p>관심사항 : </p>
	<p>${paramValues.interest }</p>
	<p>${paramValues.interest[0] }</p>
	<p>${paramValues.interest[1] }</p>
	<p>${paramValues.interest[2] }</p>
	<p>${paramValues.interest[3] }</p>
	<p>${paramValues.interest[4] }</p>
	<p>핸드폰 : ${param.phone }</p>
	<p>자기소개 : ${param.introduce }</p>
	
</body>
</html>
package edu.web.el01;

public class Point {
	private double x;
	private double y;
	public Point() {
		System.out.println("Point()");
	}
	
	public Point(double x, double y) {
		super();
		this.x = x;
		this.y = y;
	}

	public double getX() {
		System.out.println("getX()");
		return x;
	}
	public void setX(double x) {
		this.x = x;
	}
	public double getY() {
		return y;
	}
	public void setY(double y) {
		this.y = y;
	}
	
	public double distance(double x, double y) {
		double disX = this.x - x;
		double disY = this.x - x;
		return Math.sqrt(disX * disX + disY * disY);
	}
	
	@Override
	public String toString() {
		return "Point [x=" + x + ", y=" + y + "]";
	}
	
	

}
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL useBean</title>
</head>
<body>
	<jsp:useBean id="point" class="edu.web.el01.Point" />
	<jsp:setProperty property="x" name="point" value="0.0" />
	<jsp:setProperty property="y" name="point" value="0.0" />
	<p>point의 x, y 좌표값 : ${point.x }, ${point.y }</p>
	<p>point의 x, y 좌표값 : ${pageScope.point.x }, ${pageScope.point.y }</p>
	
	<%-- el 메소드 표기 --%>
	<p>좌표 거리 : ${point.distance(0, 2) }</p>
	<p>좌표 출력 : ${point.toString() }</p>
	
</body>
</html>

많이 사용하는 건 아니라 빠르게 보고 가자 이 다음이 정말 중요하다.

0개의 댓글