프로필사진
JSP(3) - 디렉티브 vs 액션태그

2019. 11. 11. 12:05🔴 JSP웹개발

300x250

디렉티브 : include: <%@ include file ="경로명"%>
두개의 JSP를 한번에 파싱 → 한 개의 서블릿을 생성 → 한 개의 HTML을 응답
→ 브라우저가 해석 후 화면에 표현 (tomcat이 합쳐서 하나의 서블릿으로 만듬)

액션태그 : <jsp: include page ="경로명" %>
두 개의 JSP를 각각 파싱 → 두 개의 서블릿을 생성 → 두 개의 HTML을 응답
→ 브라우저가 각각 해석 후 화면에 표현 (마지막에 브라우저가 합치는 것)


지시어 : css / lib → Main에 import하면 Sub에 import할 필요 없음

하지만 액션 태그 : 두개의 HTML을 만들기 위해 각각 import해야함

하지만 사용자에게 보여지는 화면은 똑 같 다!!

지시어 방식은 메모리를 덜 차지함!


<ex03_direction_include.jsp>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!-- MAIN -->
<%
	String name = "홍길동";
	/* request 객체에 저장시키기 */
	request.setAttribute("name", name);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<style>
</style>
</head>
<body>
	메인 페이지
	<!-- 하나sublet 관리 -->
	<%@include file="sub1.jsp" %>
	<hr>
	<!-- 두개sublet 관리 -> 서로 변수를 공유할 수 없음 => request객체 속성으로 보내줌-->
	<jsp:include page="sub2.jsp"></jsp:include>
</body>
</html>

************

<%@include file="sub1.jsp" %>
:: 하나sublet 관리

<jsp:include page="sub2.jsp"></jsp:include>
:: 두개sublet 관리 -> 서로 변수를 공유할 수 없음 => request객체 속성으로 보내줌

************

<sub1.jsp>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!-- SUB -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<!-- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> -->
<!-- libaray를 import하지 않아도 사용 가능함 (하나의 sublet이기 때문) -->
<script>
	$(document).ready(function(){
		$("#myP").html("서브1페이지 입니다<%= name %>");	
	});

</script>
<style>
</style>
</head>
<body>
	<p id="myP"></p>
</body>
</html>

 

<sub2.jsp>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!-- SUB -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<style>
</style>
</head>
<body>
	<p>서브2페이지 입니다<%= request.getAttribute("name") %></p>
</body>
</html>

액션태그에 대한 더 자세한 내용은 여기로!! 

300x250