답변
jGuru : 포함 된 파일의 텍스트 당기고 를 포함한 파일의 일부인 것처럼 그것을 컴파일 C "#include"
, 등
<%@include file="abc.jsp"%>
지시자 역할을한다. 포함 된 파일 형식은 (HTML 또는 텍스트 포함) 일 수 있습니다.< JSP는 : > 태그는 별도의 JSP 파일로 파일을 컴파일하고, 컴파일 된 JSP에서 그에게 전화를 내장하고 "abc.jsp"= 페이지를 포함한다.
일부 JSP 엔진
가 아닌 표준 태그를 지원<!--#include file="data.inc"-->
(NCSA-, 또는으로 shtml 스타일)과<%@ vinclude="data.inc" %>
(의 JRun 스타일), 그러나 이들은 JSP 스펙에 정의되지 않은, 따라서 의존 할 수 없습니다.또한 JSP 자주 묻는 질문에이 질문을 참조하십시오.
하나는 고정 수입 (<퍼센트 = @ 포함 ...> "), 다른 하나는 (JSP : 포함) 동적 하나입니다. 그것은 당신이 거를 위해 지정해야합니다 예를 들어 경로에 영향을 미칠 것이다 포함 된 파일에 대한 약간의 연구가 있습니다.
언급 한 바와 같이 <%@ include
은 정적 인 포함이고 <jsp:include
은 동적 인 포함입니다. 매크로와 함수 호출 (당신이 그 조건을 잘 알고있는 경우) 퍼팅. 또 다른 방법은, 정적 포함은 <%@ include
문장의 위치 (이하 "코드") 복사 - 붙여 넣기 포함 된 파일의 정확한 내용을 정확히 같은 일이 (어느 정확히 JSP 컴파일러가 수행 할 것입니다.
는 동적 표시된 페이지를 실행하고 <jsp:include
문 대신에 호출 페이지의 출력 페이지로부터의 출력을 포함하는 요청 (요청 디스패처를 사용)를 만들 포함한다.
여기에 큰 차이는 동적 포함하여, 포함 된 페이지가 자신의 pageContext에서 실행할 것입니다. 요청이기 때문에 다른 요청과 함께 매개 변수를 보낼 수있는 것과 같은 방법으로 페이지에 매개 변수를 보낼 수 있습니다. 정적 인 include는 호출 페이지의 컨텍스트 내에서 실행되는 코드 조각입니다. 당신이 정적으로 두 번 이상 같은 파일을 포함하는 경우, 해당 파일의 코드는 같은 변수를 선언 할 수 없기 때문에 (컴파일러 오류를 생성하는 것입니다 그래서 뭔가
<%
int i = 0;
%>
처럼 호출 페이지의 여러 위치에 존재합니다 두 번 이상).
은 하나 개의 코드 재사용 조각 I 지시어 <%@include file="reuse.html"%>
를 사용하여 초당 I는 <jsp:include page="reuse.html" />
태그를 사용한다.
<html>
<head>
<title>reusable</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<img src="candle.gif" height="100" width="50"/> <br />
<p><b>As the candle burns,so do I</b></p>
</body>
JSP 파일을 모두 실행 한 후 같은 출력을 볼 수 있고 지시과 사이에 차이가 있다면 생각 :
하자 재사용 가능한 파일의 코드가 될 태그. 하지만 당신은 두 개의 JSP 파일의 생성 servlet
를 보면, 당신이 보게 될 difference.Here 당신이 directive
사용할 때 표시되는 내용입니다 :
out.write("<html>\r\n");
out.write(" <head>\r\n");
out.write(" <title>reusable</title>\r\n");
out.write(" <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\r\n");
out.write(" </head>\r\n");
out.write(" <body>\r\n");
out.write(" <img src=\"candle.gif\" height=\"100\" width=\"50\"/> <br />\r\n");
out.write(" <p><b>As the candle burns,so do I</b></p>\r\n");
out.write(" </body>\r\n");
out.write("</html>\r\n");
을이 당신이 사용하는 태그에 표시되는 내용입니다 두 번째 JSP 파일 :
org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "reusable.html", out, false);
그래서 지금 당신은 include 지시문은 번역시 reuse.html
의 소스를 삽입하지만 액션 태그는 런타임에 reuse.html의 응답을 삽입하는 것을 알고있다.
생각해 보면 모든 작업 태그 (jsp:include file
)에 추가로 성능이 저하됩니다. 즉, 항상 최신 내용을 유지할 수 있음을 보장 할 수 있지만 성능 비용은 증가합니다.
1) 을 사용하는 경우 지시문을 사용합니까?
지시어를 사용 포함 메커니즘을 포함, 웹 응용 프로그램의 여러 JSP 년대에 걸쳐 동일한 출력 로직의 중복을 방지하기 위해, 즉 사용됩니다., 프리젠 테이션 로직의 재사용 성을 촉진하기 위해<%@ include file="abc.jsp" %>
때 위의 지시를 jsp 엔진에 의해 수신되면 abc.jsp의 소스 코드를 검색하고 현재 jsp에서 동일한 인라인을 복사합니다. 번역을 복사하는 것은 현재 페이지에 대해 수행 된 후
단순히 엔진 즉 JSP 정적 명령이다라고. "abc.jsp"의 전체 소스 코드는 때 를 사용하는 현재 페이지
2)에 복사 액션을 포함 하시겠습니까?
태그 대신에 포함 된 페이지에 의해 실행시에 발생하는 출력
태그 기능을 포함하는 현재의 페이지 응답에 포함되어있는 현재의 페이지에 포함 된 페이지의 소스 코드를 포함하지 않는 등 비슷 의
이 태그를 포함 서블릿 프로그래밍의 요청 디스패처의 메커니즘을 포함 엔진 즉 JSP하는 런타임 명령입니다. 대신 메서드 호출이 이루어진다 현재 페이지에 전체 코드를 복사 현재 페이지
위대한 설명! 지시어 <% @ include file = "file.jsp"%> 또는
- include 지시문이 포함하는 자원은 jsp 변환 중에로드되지만 포함 동작이 포함하는 자원은 요청 시간 중에로드됩니다.
- 포함 된 자원의 변경 사항은 JSP 지시문이 다시 컴파일 될 때까지 include 지시어에 표시되지 않습니다. 포함 동작의 경우 포함 된 리소스의 변경 사항은 다음 요청시 표시됩니다.
- Include 지시문은 정적 가져 오기이며 include 작업은 동적 가져 오기입니다.
- include 지시문은 파일 특성을 사용하여 포함 할 리소스를 지정하고 포함 동작은 동일한 용도로 페이지 특성을 사용합니다.
- 1. ....의 차이점은 무엇입니까?
- 2. $와 $$의 차이점은 무엇입니까?
- 3. ++와 :의 차이점은 무엇입니까?
- 4. difftime과 '-'의 차이점은 무엇입니까?
- 5. PHP에서. =와 + =의 차이점은 무엇입니까?
- 6. 파이썬에서 ''와 ' "의 차이점은 무엇입니까?
- 7. UNIX에서 $ @와 $ *의 차이점은 무엇입니까?
- 8. 차이는()의 차이점은 무엇입니까 mustache.js
- 9. Lisp에서 '와 #'의 차이점은 무엇입니까?
- 10. ~와!의 차이점은 무엇입니까? 운영자?
- 11. () vs [] vs {}의 차이점은 무엇입니까?
- 12. pydoc과 help()의 차이점은 무엇입니까?
- 13. Zend setBaseUrl()의 차이점은 무엇입니까?
- 14. 정규식에서()와 []의 차이점은 무엇입니까?
- 15. PHP에서 ==와! =의 차이점은 무엇입니까?
- 16. ObjectQuery와 "var"의 차이점은 무엇입니까?
- 17. 캐스팅과 C#의 차이점은 무엇입니까?
- 18. Coroutine과`goto`의 차이점은 무엇입니까?
- 19. 루비의 [[]]과 []의 차이점은 무엇입니까?
- 20. 부울과 [부울]의 차이점은 무엇입니까?
- 21. PHP에서 ::와 -의 차이점은 무엇입니까?
- 22. 파이썬에서 {}와 []의 차이점은 무엇입니까?
- 23. "$^N"과 "$ +"의 차이점은 무엇입니까?
- 24. ShellScript : %와 %%의 차이점은 무엇입니까?
- 25. % Q와 % {}의 차이점은 무엇인가요?
- 26. 선언적 레이블 선언의 차이점은 무엇입니까? 의 차이점은 무엇
- 27. .NET에서 AsFoo()와 ToFoo()의 차이점은 무엇입니까?
- 28. PHP에서 ->와 ::의 차이점은 무엇입니까?
- 29. ScriptManager.RegisterStartupScript()와 ScriptManager.RegisterClientScriptBlock()의 차이점은 무엇입니까?
- 30. jQuery의 mouseout()과 mouseleave()의 차이점은 무엇입니까?
어떤 결과가 어떤 출력 결과에 더 구체적 일 수 있습니까? 두 번째 include is using 지시문 (@include)을 언급했습니다. 그런 다음 첫 번째 출력 결과에서 지시어 (@include)에 대해 언급했지만 두 번째 출력 결과에는 두 번째 포함 (앞의 설명에서 @include)에서 나온 것으로 나타났습니다. – stack247
아주 좋은 설명 ... + 1과 엄지 손가락 –
다른 사람이이 답변으로 혼란을 느낄 경우를 대비해'
eis