JSP中静态包含和动态包含的区别
什么是包含及为什么要包含
1)包含就是Servlet容器将其他Web组件(Jsp,Servlet,Html),将生成结果包含到自己的结果中
2)Servlet对象是由Servlet容器创建,Servlet对象的Service()方法是由servlet容器调用,Servlet之间不允许相互调用,同时方便代码维护管理,提高开发效率。这样就可以需要Servlet转发和包含的技术支持。
举例说明
//主页JSP代码
<!DOCTYPE HTML>
<html>
<head>
<title>首页</title>
</head>
<body>
//静态包含 静态包含使用include指令形式
<%@ include file="header.jsp" %>
这是首页index.jsp内容<br/>
Name = ${name}
age = ${age}
sex = ${sex}
//动态包含 动态包含使用include标签形式
<jsp:include page="footer.jsp"/>
</body>
</html>
动态包含与静态包含的区别
两者是在编译过程中的区别
1.静态包含是通过include指令将JSP文件完全嵌入到index.jsp页面中,他们在编译时生成的是一个class文件
2.动态包含是通过include标签,调用JspRuntimeLibrary.include(request, response, “footer.jsp”, out, false)方法来解析footer.jsp,事先将footer.jsp翻译成Servlet源文件,在编译成字节码文件,最后将footer.jsp和index.jsp拼接在一起。