欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

在jsp页面中定义全局变量,供其他页面引用

程序员文章站 2022-06-28 19:02:01
一、在一个jsp中引用另一个jsp的方法有:1.使用 jsp include指令(常用):<%@include file="./common-resources.jsp" %>file属性是必填的(绝对或相对路径),但它不支持任何的表达式,也不允许通过?挂参方式来传递参数。注意:一般页面的top和bottom固定的时候可以用这种方式2.使用 jsp include动作

一、在一个jsp中引用另一个jsp的方法有:

1.使用 jsp include指令(常用):
<%@include file="./common-resources.jsp" %>

file属性是必填的(绝对或相对路径),但它不支持任何的表达式,也不允许通过?挂参方式来传递参数。

注意:一般页面的top和bottom固定的时候可以用这种方式

2.使用 jsp include动作
<jsp:include page="./common-resources.jsp" flush="true/false"></jsp:include>

page属性是必填的(绝对或相对路径),但它及支持表达式也可传递参数。flush属性为缓冲区满时,清空缓冲区,如:

<jsp:include page="被包含文件的路径" flush="true/false">
    <jsp:param name="参数名称" value="参数值"/>
</jsp:inclue>

3.使用 jstl import(c标签)

<%@taglib prefix="c" uri="http://Java.sun.com/jsp/jstl/core"%>
<c:import url="inlayingJsp.jsp"></c:import> 

这个标签只能包含所需要的文字,而图片之类的是无法包含进来的所以该标签用的较少

二、<%@ include file=""%>与<jsp:include page=""/>两种方式的区别:

1.执行时间上的区别:
<%@ include file=”relativeURI”%> 是在翻译阶段执行(将JSP页面转换成servlet的阶段)。

<jsp:include page=”relativeURI” flush=”true” /> 在请求处理阶段执行。
2.引入内容的方式区别:

<%@ include file=”relativeURI”%>适用于引入静态文本,也可以这么理解:它是纯粹的把部分代码写到了另一页面(或者说是共享),而那另一页面中不能有相同的变量名,但可以借用主页面的内容

<jsp:include page=”relativeURI” flush=”true” />引入执行页面或servlet所生成的应答文本。
如图:
在jsp页面中定义全局变量,供其他页面引用
在jsp页面中定义全局变量,供其他页面引用

三、例子

首先在一个Java web项目中 创建两个 jsp文件,index.jsp和 index2.jsp。
在 index.jsp中 引入 index2.jsp的内容,达成页面共享效果。

index2.jsp页面如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>
<script type="text/javascript" src="<%=basePath %>/static/js/jquery-3.4.1.min.js"></script>
<script type="text/javascript" src="<%=basePath %>/static/js/layui-v2.5.6/layui.js"></script>
<script type="text/javascript" src="<%=basePath %>/static/js/ajaxUtil.js"></script>
<link rel="stylesheet" href="<%=basePath %>/static/js/layui-v2.5.6/css/layui.css">
<link rel="stylesheet" href="<%=basePath %>/static/js/layuiadmin/style/admin.css" media="all">

index.jsp页面中引入 index2.jsp ,使用index2.jsp 的 全局变量、js和样式。
index.jsp代码如下:
<%@include file="绝对或相对路径" %>方式

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@include file="./index2.jsp" %>

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title></title>
  <meta name="renderer" content="webkit">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
</head>
<body>
   <div class="layui-fluid">
     index2.jsp 页面变量basePath:<%=basePath %>
   </div>
<script>
$(function(){
  
})
</script>
</body>
</html>

页面效果:
在jsp页面中定义全局变量,供其他页面引用
要想达成 “在JSP中定义全局变量和全局样式,供所有页面引用”,必须使用<%@include file="绝对或相对路径" %>方式而非<jsp:include page=”relativeURI” flush=”true” />,否则会报错。
在jsp页面中定义全局变量,供其他页面引用

jsp:include和<%@include%>的区别详细介绍见:https://www.cnblogs.com/dorra/p/7078166.html

结果:
在jsp页面中定义全局变量,供其他页面引用的方法是:使用 jsp include指令(<%@include file="绝对或相对路径" %>

本文地址:https://blog.csdn.net/qq_26383975/article/details/107381714

相关标签: Jsp js