본문 바로가기
Spring/JSP

[JSP] 표현 언어(EL : Expression Language)

by JJH0100 2022. 11. 23.
728x90
반응형
<%@ 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>
<!-- 익스프레션 -->
<%= "안녕하세요" %> 
<br>
<% out.print("안녕하세요"); %>
<br>
<!-- EL 표현 -->
${"안녕하세요"}
</body>
</html>

 

 

표현 언어(EL : Expression Language)

  • JSP 출력에 대한 부분을 쉽게 하기 위해 개발된 스크립트 언어
  • JSP의 기본 문법을 보완한다.
  • 스프링 프레임워크에서 필수.
${"안녕하세요"}

 


EX01.

loginForm.jsp

<%@ 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>
<form action="testLogin.jsp" method="post">
	아이디 : <input type="text" name="id"><br>
	암 호 : <input type="password" name="pwd"><br>
	<input type="submit" value="로그인">
</form>
</body>
</html>

 

testLogin.jsp

<%@ 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>
<%
request.setCharacterEncoding("UTF-8");
%>
고전적인 방식 <br>
아이디 <%=request.getParameter("id") %><br>
비밀번호 <%=request.getParameter("pwd") %><br><br>

El 방식(프레임워크방식)<br>
아이디 : ${param.id}<br>
비밀번호 : ${param.pwd}<br>
</body>
</html>

 


 

EX02. Int전송

addForm.jsp

<%@ 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>
<form action="addition.jsp">
숫자 1 : <input type="text" name="num1"><br>
숫자 2 : <input type="text" name="num2"><br>
<input type="submit" value="전송">
</form>
</body>
</html>

 

addition.jsp

<%@ 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>
기존의 방식 <br>
<%
int num1 = Integer.parseInt(request.getParameter("num1"));
int num2 = Integer.parseInt(request.getParameter("num2"));
%>
<%=num1 %> + <%=num2 %> = <%=num1+num2 %>
<br><br>
El 방식(프레임워크방식)<br>
${param.num1} + ${param.num2} = ${param.num1 + param.num2}
</body>
</html>

 


 

EX03. Servlet으로 전송

AdditionServlet.class

package unit08;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class AdditionServlet
 */
@WebServlet("/AdditionServlet")
public class AdditionServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public AdditionServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		int num1=20;
		int num2=30;
		int add = num1 + num2;
		
		//form에서 넘어오는 것은 getParameter
		//저장해서 보낼때는 setAttribute
		request.setAttribute("a", num1);
		request.setAttribute("b", num2);
		request.setAttribute("c", add);
		
		//포워드
		RequestDispatcher rd = request.getRequestDispatcher("El_Ex/addition.jsp");
		rd.forward(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 

addition.jsp

<%@ 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>
기존의 방식 <br>
<%
int num1 = (Integer)request.getAttribute("a");
int num2 = (Integer)request.getAttribute("b");
%>
<%=num1 %> + <%=num2 %> = <%=num1+num2 %>
<br><br>
El 방식(프레임워크방식)<br>
${a} + ${b} = ${c}
</body>
</html>

forward 방식을 사용해 setAttribute으로 보내주었으므로 받을 때 역시 getAttribute로 받아주어야한다.

 

728x90
반응형

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

[JSP] 싱글톤과 EL표현을 활용한 멤버생성자  (0) 2022.11.23
[JSP] DBCP, 커넥션풀설정  (0) 2022.11.23
[JSP] Apache Commons Library  (2) 2022.11.23
[JSP] JDBC 데이터 입력  (0) 2022.11.22
[JSP] JDBC 데이터노출  (0) 2022.11.22

댓글