티스토리 뷰
EL(Expression Language)의 장점
1. 데이터 접근이 편리
▶ Bean의 property접근
▶ 집합객체(collection object)의 원소를 접근
▶ Request의 parameter, cookie등을 접근하기 편리
2. 간단하지만 유용한 연산자 제공
3. 조건문을 사용한 출력
4. 자동 형변화 (type conversion)
5. 값이 없는 경우 자동으로 공백 문자열을 출력
EL(Expression Language)의 사용법
${변수명}
▶ PageContext, Request, session, ServletContext 순으로 '변수면'에 해당하는 객체를 찾아서 그 값을 사용
${varname}의 동일한 효과
▶ <%= pageContext.findAttribute("varname") %>
▶ <jsp:useBean id = "varname" type='pkg.BeanClass" scope="...">
▶ <%= varname %>
${varname.propertyName}
▶ Bean 객체의 이름 + '.' + property 이름 사용
▶ ${person.firstName}은 다음과 동일
<%PersonBean person = (PersonBean) session.getAttribute("person"); %>
<%=person.getFirstName() %>
EL(Expression Language)의 사용 예
Servlet
<Beanproperty.java>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | @WebServlet("/bean-property") public class BeanProperty extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public BeanProperty() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Name name = new Name("Gil-Dong", "Hong"); Company company = new Company("Korea First", "Daeyon-3 Dong Busan, South Korea"); Employee employee = new Employee(name, company); request.setAttribute("myname", name); request.setAttribute("employee", employee); // employee 객체를 응답범위로 받는거? RequestDispatcher dispatcher = request.getRequestDispatcher("bean-properties.jsp"); // ServletRequest로부터 RequestDispatcher를 리턴받는 경우 dispatcher.forward(request, response); //RequestDispatcher의 foward()메서드 호출하기 } } | cs |
[참고]RequestDispatcher 부분에 대해 알고 싶으면 클릭!!
Servlet
<Name.java>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | public class Name { private String firstName; private String lastName; public Name(String firstName, String lastName) { setFirstName(firstName); setLastName(lastName); } public String getFirstName() { return (firstName); } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return (lastName); } public void setLastName(String lastName) { this.lastName = lastName; } } | cs |
Servlet
<Company.java>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | public class Company { private String companyName; private String address; public Company(String companyName, String address) { setCompanyName(companyName); setAddress(address); } public String getCompanyName() { return (companyName); } public void setCompanyName(String companyName) { this.companyName = companyName; } public String getAddress() { return (address); } public void setAddress(String address) { this.address = address; } } | cs |
Servlet
<Employee.java>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | public class Employee { private Name name; private Company company; public Employee(Name name, Company company) { setName(name); setCompany(company); } public Name getName() { return (name); } public void setName(Name name) { this.name = name; } public Company getCompany() { return (company); } public void setCompany(Company company) { this.company = company; } } | cs |
JSP
<bean-properties.jsp>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 "> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR"> <title>Bean Properties Demo</title> </head> <body> <!-- 여기는 MVC 모델에 관한 script 입니다. --> <h1>${myname.firstName} , ${myname.lastName}</h1> <ul> <li>First Name: ${employee.name.firstName} <li>Last Name: ${employee.name.lastName} <li>Company Name: ${employee.company.companyName} <li>Company Business: ${employee.company.address} </ul> </body> </html> | cs |
MVC Model 이라고 했을 때
M (Javabean) : 서비스와 DAO담당
V (JSP) : 화면에 보여지는 역할
C (Servlet) : MVC를 가운데에서 조율하는 역할
Servlet [Beanproperty.java] 에서 Name, Company, Employee의 집합 객체를 등록해두고 JSP [bean-properties] 에서 각각의 집합 객체의 원소들을 꺼내어 쓰는 방식을 사용하여 이 예제는 표현되고 있다.
'4학년 1학기 > JavaScript' 카테고리의 다른 글
RequestDispatcher (0) | 2017.04.28 |
---|---|
JSP와 Servlet의 차이 (0) | 2017.04.27 |
JAVA_BEAN (1) | 2017.04.13 |
web.xml 에러 페이지 설정 예 (0) | 2017.04.12 |
servlet (0) | 2017.04.12 |