웹 개발 기초/자바 웹을 다루는 기술

표현 언어의 산술, 비교, 논리, empty 연산자

sungw00 2023. 3. 1. 18:07
728x90

표현 언어의 산술 연산자

1. elTest2.jsp 파일 작성

<%-- elTest2.jsp --%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>표현언어의 여러 가지 연산자</title>
</head>
<body>
	<h2>여러 가지 산술 연산자</h2>
	<h1>
		\${10+10}  : ${10+10}<br>
		\${20-10}  : ${20-10}<br>
		\${10*10}  : ${10*10}<br>
		\${100/9}  : ${100/9}<br>
		\${100 div 9}  : ${100 div 9}<br> <%-- div를 사용해 나누기 연산 --%>
		\${100 % 9}  : ${100 % 9}<br>
		\${100 mod 9}  : ${100 mod 9}<br> <%-- mod를 사용해 나누기 연산 --%>
	</h1>
</body>
</html>

나누기 연산을 하려면 div를 사용하고, 나머지 연산을 하려면 mod를 사용한다.

 

2. http://localhost:8090/pro14/elTest2.jsp로 요청하여 결과 확인

표현 언어에서 나누기 연산 시 나누어지지 않으면 소수점 이하까지 표시한다.


표현 언어의 비교 연산자

  • 값이 같은지 비교할 때는 == 또는 eq 연산자를 사용
  • 값이 같지 않은지 비교할 때는 != 또는 ne 연산자를 사용
  • 대소 비교 시 >와 < 연산자 그리고 gt와 lt도 각각 연산자로 사용이 가능
  • 대소 및 동등 비교를 동시에 할 때는 >=와 <= 연산자 그리고 ge와 le도 각각 연산자로 사용이 가능

 

1. elTest3.jsp 파일 작성

<%-- elTest3.jsp --%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>표현언어의 여러 가지 연산자</title>
</head>
<body>
	<h2>여러 가지 비교 연산자</h2>
	<h3>
		\${10==10}  : ${10==10} <br>
		\${10 eq 10}  : ${10 eq 10} <br><br>
		\${"hello" == "hello"}  : ${"hello" == "hello"} <br>
		\${"hello" eq "hello"}  : ${"hello" eq "hello"} <br><br>
		
		\${20!=10}  : ${20!=10}<br>
		\${20 ne 10}  : ${20 ne 10}<br><br>
		
        <%-- 문자열이 서로 다른지 비교할 때는 !=나 ne 연산자를 사용 --%>
		\${"hello" != "apple"}  : ${"hello" != "apple"} <br>
		\${"hello" ne "apple"}  : ${"hello" ne "apple"} <br><br>
		 
		\${10 < 10}  : ${10 < 10} <br>
		\${10 lt 10}  : ${10 lt 10} <br><br>
		
		\${100 > 10}  : ${100 > 10} <br>
		\${100 gt 10}  : ${100 gt 10} <br><br>
		
		\${100 <= 10}  : ${100 <= 10} <br>
		\${100 le 10}  : ${100 le 10} <br><br>

		\${100 >= 10}  : ${100 >= 10} <br>
		\${100 ge 10}  : ${100 ge 10} <br><br>
	</h3>
</body>
</html>

 

2. http://localhost:8090/pro14/elTest3.jsp로 요청하여 실행 결과 확인

http://localhost:8090/pro14/elTest3.jsp로 요청한 결과


표현 언어의 논리 연산자

  • && 연산자나 and 연산자는 논리곱 연산
  • || 연산자나 or 연산자는 논리합 연산
  • ! 연산자나 not 연산자는 반대의 결과를 출력

 

1. elTest4.jsp 파일 작성

<%-- elTest4.jsp --%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>표현언어의 여러 가지 연산자</title>
</head>
<body>
	<h2>여러 가지 논리 연산자</h2>
	<h2>
		\${(10==10) && (20==20)}  : ${(10==10) && (20==20)} <br> <%-- 연산자 양쪽 값이 true일 때만 true를 반환 --%>
		\${(10==10) and (20!=20)}  : ${(10==10) and (20!=20)} <br><br>
		
		\${(10==10) || (20!=30)}  : ${(10==10) || (20!=30)} <br> <%-- 연산자 양쪽 값 중 하나라도 true면 true를 출력 --%>
		\${(10!=10) or (20!=20)}  : ${(10!=10) or (20!=20)} <br><br>
		
		\${!(20==10)}  : ${!(20==10)}<br> <%-- 비교 연산자의 결괏값이 false이므로 true를 출력 --%>
		\${not (20==10)}  : ${not (20==10)} <br><br>
		
		\${!(20!=10)}  : ${!(20!=10)} <br> <%-- 비교 연산자의 결괏값이 true이므로 false를 출력 --%>
		\${not(20!=10)}  : ${not(20!=10)} <br><br> 
	</h2>
</body>
</html>

 

2. http://localhost:8090/pro14/elTest4.jsp로 요청하여 실행 결과 확인

http://localhost:8090/pro14/elTest4.jsp로 요청한 결과


표현 언어의 empty 연산자

empty 연산자는 자바 빈의 속성이 값으로 설정되었는지 또는 List, Map 같은 저장 객체에 값(객체)이 존재하는지를 판단하는 연산자이다.

 

1. elTest5.jsp 파일 작성

<%-- elTest5.jsp --%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	isELIgnored="false"
	import="java.util.*"
    pageEncoding="UTF-8"%>
<jsp:useBean id="m1" class="sec01.ex01.MemberBean" scope="page" /> <%-- 유즈빈(useBean)을 생성 --%>
<jsp:setProperty name="m1" property="name" value="이순신" /> <%-- 빈의 name 속성에 값을 설정 --%>
<jsp:useBean id="m2" class="java.util.ArrayList" scope="page" /> <%-- ArrayList 객체를 빈으로 생성 --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>표현언어의 여러 가지 연산자들</title>
</head>
<body>
	empty 연산자
	<h2>
		\${empty m1 } : ${empty m1 }<br> <%-- m1의 name 속성에 값이 설정되어 있으므로 false를 반환 --%>
		\${not empty m1 } : ${not empty m1 }<br><br> <%-- true를 반환 --%>
		
		\${empty m2 } : ${empty m2 }<br> <%-- ArrayList 객체인 m2는 비어 있으므로 true를 반환 --%>
		\${not empty m2 } : ${not empty m2 }<br><br> <%-- false를 반환 --%>
		
		\${empty "hello"} : ${empty "hello"}<br> <%-- 문자열에 대해 false를 반환 --%>
		\${empty null} : ${empty null}<br> <%-- null은 true를 반환 --%>
		\${empty ""} : ${empty ""} <br> <%-- 빈 문자열은 true를 반환 --%>
	</h2>
</body>
</html>

<useBean> 액션 태그로 생성한 빈 m1은 생성 후 name 속성에 값을 설정했기 때문에 empty 연산자를 적용하면 false를 반환한다.

<useBean> 액션 태그로 생성한 빈 m2는 생성 후 아무 값도 저장하지 않았기 때문에 empty 연산자를 적용하면 true를 반환한다.

 

2. http://localhost:8090/pro14/elTest5.jsp로 요청하여 결과를 확인

http://localhost:8090/pro14/elTest5.jsp로 요청한 결과

 

728x90