在JSP中定义一个全局变量,供所有页面引用

在java中设定全局变量是非常容易的,但是在jsp中如果想在一个页面定义一个变量供所有其他的jsp来引用,就不一样了,搞了几个小时吧,终于实现了,用到了以前很少用的include标签。

首先定义两个jsp,index.jsp 和 index2.jsp 目录结构如下

目标是index2中的变量在index中可以调用。

首先是index2.jsp的内容

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%!String name = "张小白";%>

然后是index.jsp的内容

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ include file="index2.jsp"%>
<!DOCTYPE HTML>
<html>
  <head>
    <base href="<%=basePath%>">
    <title>My JSP 'index.jsp' starting page</title>
  </head>
  
  <body>
    index1的内容<br>
	<%=name %>
  </body>
</html>

然后你会发现这个报错了!

Duplicate local variable basePath--------------这个错误的原因是index2.jsp中有变量重名,我们修改下index2.jsp中的代码:

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%!String name = "张小白";%>

把中间部分删除,然后看到index.jsp中的红线还在,别急,等一会(我是把两个页面都关掉再重新开就好了!)

安全了

运行一下页面

猜你喜欢

转载自blog.csdn.net/New_Yao/article/details/81363056