JSP 5강 - 액션태그, 자바빈클래스
<%@ 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>
Author And Source
이 문제에 관하여(JSP 5강 - 액션태그, 자바빈클래스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gksmf6699/JSP-5강-액션태그-자바빈클래스저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)