一、在一个jsp中引用另一个jsp的方法有:
1.使用 jsp include指令(常用):
file属性是必填的(绝对或相对路径),但它不支持任何的表达式,也不允许通过?挂参方式来传递参数。
注意:一般页面的top和bottom固定的时候可以用这种方式
2.使用 jsp include动作
page属性是必填的(绝对或相对路径),但它及支持表达式也可传递参数。flush属性为缓冲区满时,清空缓冲区,如:
3.使用 jstl import(c标签)
这个标签只能包含所需要的文字,而图片之类的是无法包含进来的,所以该标签用的较少
二、与两种方式的区别:
1.执行时间上的区别:
<%@ include file=”relativeURI”%> 是在翻译阶段执行(将JSP页面转换成servlet的阶段)。
<jsp:include page=”relativeURI” flush=”true” /> 在请求处理阶段执行。
2.引入内容的方式区别:
<%@ include file=”relativeURI”%>适用于引入静态文本,也可以这么理解:它是纯粹的把部分代码写到了另一页面(或者说是共享),而那另一页面中不能有相同的变量名,但可以借用主页面的内容。
<jsp:include page=”relativeURI” flush=”true” />引入执行页面或servlet所生成的应答文本。
如图:
三、例子
首先在一个Java web项目中 创建两个 jsp文件,index.jsp和 index2.jsp。
在 index.jsp中 引入 index2.jsp的内容,达成页面共享效果。
index2.jsp页面如下:
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
index.jsp页面中引入 index2.jsp ,使用index2.jsp 的 全局变量、js和样式。
index.jsp代码如下:
方式:
index2.jsp 页面变量basePath:
$(function(){
})
页面效果:
要想达成 “在JSP中定义全局变量和全局样式,供所有页面引用”,必须使用方式,而非<jsp:include page=”relativeURI” flush=”true” />,否则会报错。
结果:
在jsp页面中定义全局变量,供其他页面引用的方法是:使用 jsp include指令()
本文地址:https://blog.csdn.net/qq_26383975/article/details/107381714