본문으로 바로가기

익스프레션 언어(2)

category 웹/JSP 2018. 10. 31. 21:12

이어서 익스프레션 언어에 대해서 알아보도록해요

 

저번 게시글에 이어서 내장객체에 대해 알아보도록해요

 

initParam이라는 내장객체는 웹 에플리케이션 초기화 파라미터 값을 가져와 출력할 때 쓰입니다.

 

사용 방법은 아래와 같습니다.

${initParam.DB_NAME} or ${initParam["DB_NAME"]}

 

대신 web.xml에서 초기화 파라미터 변수가 설정돼있어야 겠죠??(전 게시글에 있음)

 

pageContext 내장 객체는 JSP 페이지의 주변 환경에 대한 정보를 제공합니다.

사용방법이 굉장히 독특합니다.

 

PageContext라는 클래스에 속하는 get으로 시작하는 메서드들을 호출 할 수 있는데요

이 내장객체를 사용 할때는 앞에 get을 빼줍니다.

${pageContext.request}=> getRequest메소드 호출 처럼 말이죠

이는 ${pageContext["request"]}로 바꿔 쓸 수 있습니다.

 

이를 이용하면 JSP페이지의 URL 경로를 출력 할 수 있습니다.

 

${pageContext.request.requestURI}

${pageContext["request"]["requestURI"]}

${pageContext.request["requestURI"]}

${pageContext["request"].requestURI}

이는 모두 getRequestURI 메서드 호출입니다.

 

익스프레션 언어의 내장객체에 대해서 알아봤습니다.

이제부터 익스프레션 언어의 연산에 대해 알아보도록 하겠습니다.

 

연산자에는 크게 산술/비교/논리/조건 연산자가 있습니다.

 

예를 들어서 X=${param.NUM1}, Y=${param.NUM2}으로 url필드에 입력하고 받아와서

X+Y=${param,NUM1+param.NUM2}으로 덧셈 연산을 할 수 있습니다.

 

나머지에 대해서는 코드로 살펴보겠습니다.

이처럼 연산을 진행 할 수 있습니다.

 

또한 JSP나 HTML에서는 특별한 의미를 갖는 연산자 기호가 있는데 이는 이런 기호들이 잘모 해석되는 것을 방지하기 위해

따로 영어로 된 연산자 기호를 정의했습니다.

div / mod / gt(>) lt(<) /and 같은 것이 있습니다,

 

데이터의 존재여부를 확인하기 위한 empty 연산자가 있습니다.

이는 ${empty NAME}으로 쉽게 확인 가능합니다.

 

대괄호 연산자와 마침표 연산자가 있습니다.

즉,

-배열항목

-List 객체의 데이터 항목

-Map 객체의 데이터 항목

-자바빈 프로퍼티

등 4개를 가리키기 위해 사용됩니다.

 

단, 배열항목과 List객체는 무조건 괄호연산자로 사용해야합니다.

Map과 자바빈은 둘다 사용 가능합니다.

 

사용 방법은

 

${ARR[0]} 처럼 간단하게 쓸 수 있습니다

Map과 자바빈에서는 괄호연산자와 마침표연산자 둘다 사용 가능합니다.!

 

다음으로 자바빈에 대해 배우도록 하겠습니다.

자바빈은 자바빈 규격서에 따라 작성된 자바 클래스로

반드시 파라미터가 없는 생성자가 있어야하고 외부에서 필드 접근시 직접 접근 말고 메서드를 통해서 접근해야한다.


public class ProductInfo {
 private String name;
 private int value;
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public int getValue() {
  return value;
 }
 public void setValue(int value) {
  this.value = value;
 }
 public ProductInfo() {}
 
}

 

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR" import="mall.ProductInfo"%>
<!DOCTYPE html>
<%
 ProductInfo product=new ProductInfo();
 product.setName("초코케이크3호");
 product.setValue(20000);
 request.setAttribute("PRODUCT", product);
 RequestDispatcher dispatcher=request.getRequestDispatcher("ProductInfoView.jsp");
 dispatcher.forward(request, response);
%>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>

</body>
</html>

 

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
 <H3>상품정보</H3>
 상품명:${PRODUCT.name }<br>
 가격:${PRODUCT.value }원<BR>
</body>
</html>

' > JSP' 카테고리의 다른 글

표준 액션  (0) 2018.11.07
Tld EL함수  (0) 2018.11.05
익스프레션 언어  (0) 2018.10.29
서블릿의 라이프 사이클(2)  (0) 2018.10.29
서블릿의 라이프 사이클  (0) 2018.10.24