JSP 5강 - 액션태그, 자바빈클래스

Whatever·2022년 1월 5일
0

JSP

목록 보기
5/30

<%@ include %> => 디렉티브, 정적(내용이 고정) -파라미터 X
<jsp: include> => 액션태그, 동적 - 파라미터O

request 객체 -> request 클래스 존재(JSP에서 기본적으로 제공하는 객체)

VO객체를 JSP에서 쉽게 가져오는 방법
<jsp: => 액션태그(JSTL이 아님)

forward : (second.jsp로)이동하고 끝남

include : 갔다가 다시 옴

ex) 반장을 아예 위임하는 것 : forward
임시로 반장 권한을 위임받았다가 다시 돌려주는 것 : include

include 액션 태그?

  • include 디렉티브 태그처럼 현재 JSP 페이지의 특정 영역에 외부 파일(JSP, HTML, 서블릿페이지)의 내용을 포함하는 태그

flush=false (치킨+떡볶이를 같이 담아서 보냄)
flush=true (치킨을 먼저 보내고 떡볶이를 보냄)

include03.jsp

<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Action Tag</title>
</head>
<body>
	<h2>include 액션 태그</h2>
	<jsp:include page="includeAction04.jsp" flush="false">
		<jsp:param name="date" value="<%=new Date()%>"/>
	</jsp:include>
	<p>-----------------</p>
</body>
</html>

include04.jsp

<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Action Tag</title>
</head>
<body>
	<p>오늘은 몇일? 그리고 지금 시간은?</p>
	<p><%=(new Date()).toLocaleString()%></p>
</body>
</html>

request객체에 parameter가 담겨있음
request객체는 하나의 요청이 끝날때까지 살아있음.
응답이 끝났을 때 request가 끝난다.

날짜를 출력할 때 : Date() 사용
날짜를 계산하거나 작업할 때 : Calendar 사용

기본객체와 영역

page영역은 하나의 JSP 내에서 pageContext를 공유하여 씀.

  • pageContext객체는 같은 JSP내에서는 공유가능, 다른 JSP에서는 공유가 안된다.
  • 다른요청일 때 request는 공유되지 않음,
  • session은 같은 웹브라우저 내에서 공유됨, 다른 웹브라우저에서는 공유불가
  • application은 다른 웹브라우저에서도 공유가능

자바빈즈(javabeans)

자바빈 클래스의 조건
1. field가 있어야 한다.
2. getter, setter 메서드가 있어야 한다.
3. 기본생성자가 있어야 한다.

왜 굳이 자바빈즈를 사용하는가...?

=> MVC 패턴을 사용하기 위해

MVC 패턴?

M(Model) : 비즈니스 로직, 자바빈 클래스
V(View) : jsp (HTML)
C(Controller) : Servlet (모든 요청을 받아들임)

화면을 출력하는 부분하고 데이터를 처리하는 로직(비즈니스 로직)을 분리.
로직(비즈니스 로직) 부분의 코드에 자바빈즈라는 클래스를 사용

ex) 짜장면집
요청(View) => 전화받는 사람 = 사장님(Controller) => 주방장(Model) => 재료(DB)
재료(DB)를 담을 그릇이 필요 - 이 그릇이 바로 자바빈클래스
객체가 만들어졌을 때 그것을 담아서 보낼 그릇

자바빈즈 사용법

<jsp:useBean id="아이디 지정" class="패키지명.클래스명" />
클래스를 객체로서 사용이 가능하다.
id는 객체명

useBean01.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page import="java.util.Date"%>
<!DOCTYPE html>
<html>
<head>
<title>Action Tag</title>
</head>
<body>
<%
// Date date = new Date();
%>
<!-- new Date()와 같은 의미	 -->
<jsp:useBean id="date" class="java.util.Date" />
	<p>오늘 날짜 및 시간 : </p>
	<p><%=date%></p>
</body>
</html>

useBean02.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page import="ch04.com.dao.Calculator"%>
<!DOCTYPE html>
<html>
<head>
<title>Action Tag</title>
</head>
<body>
<%
/* Calculator bean = new Calculator();
//m은 5 * 5 * 5
int m = bean.process(5);

out.print("5의 3제곱: " + m); */
%>
	<jsp:useBean id="bean" class="ch04.com.dao.Calculator" />
	<% 
		int m = bean.process(5);

		out.print("5의 3제곱: " + m); 
	%>
</body>
</html>

useBean03.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<title>Action Tag</title>
</head>
<body>
<!-- 
private int id = 20181004;
private String name = "개똥이";
 -->
	<jsp:useBean id="person" class="ch04.com.dao.Person" />
	<p>아이디 : <%=person.getId()%></p>
	<p>이름 : <%=person.getName()%></p>
	
</body>
</html>

0개의 댓글