jsp页面变量作用域问题
想实现一个注销的功能,在页面上有个注销按钮,我想一点它就注销,用了js给按钮加了onclick代码,如下
<%
session = request.getSession(true);
if (session.isNew())
{%>
<script LANGUAGE="JavaScript">
// alert("登录超时,请重新登录!");
top.location='main.jsp';
//session无效,在这里进行页面跳转,返回到登录页面
</script>
<%
}
String type=(String)session.getAttribute("type");
String show=null;
System.out.println("navigator的用户类型为:"+type);
if(type==null)
{
%>
<li class="L1"><a href="register.jsp" target="mainFrame"><img border="0" alt="register" src="images/register.png" align="middle" /><span> 注册</span></a></li>
<li class="L1"><a href="login.jsp" target="mainFrame"><img border="0" alt="login" src="images/login.png" align="middle" /><span> 登录</span></a></li>
<%
}
else
{
%>
<li class="L1"><img border="0" alt="register" src="images/logout.gif" align="middle" /><input class="button" type="button" name="logout" value="注 销" onclick="logout();" /></li>
<li class="L1"><a href="login.jsp" target="mainFrame"><img border="0" alt="login" src="images/login.png" align="middle" /><span> 切换身份</span></a></li>
<%
System.out.println("navigator已经正确显示!"+type);
}
%>
根据不同的用户显示不同的图片,
<script language="JavaScript">在同一个文件里,不是外部函数
function logout()
{
alert("logout!");
<%System.ou.println(type);session.invalidate();%>
top.location='main.jsp';
return false;
}
可是每次即使没有点击注销,也会把type显示一次,显示为null,且再次刷新页面,用户类型显示错误
这说明两点
1.不论JSP脚本在页面的哪个位置,它都会被执行,不会因为JS函数的触发或不触发而变化
2.JS脚本与JSp页面无法共享变量,就好像他们在不同页上,所以从JSp到js简单,从js到JSp难上加难
所以注销还是用超链接连到另一个页面去吧
jsp页面变量作用域问题的更多相关文章
- jsp 中变量作用域:pageScope、requestScope、sessionScope、applicationScope
jsp 中,变量的作用域,一共有4种: pageScope:表示变量只能在本页面使用. requestScope:表示变量能在本次请求中使用. sessionScope:表示变量能在本次会话中使用. ...
- 使用type="redirect"重定向,传递List等变量到jsp页面的问题
Struts2在提交表单的时候,使用「type="redirect"」重定向到相应的jsp页面. Action中的List表单是无法传到相应的jsp页面. 我猜测是因为List作为 ...
- 在JSP页面中调用另一个JSP页面中的变量
在jsp学习中,经常需要在一个jsp页面中调用另一个jsp页面中的变量,下面就这几天的学习,总结一下. jsp页面之间的变量调用有多种方法: 1.通过jsp的内置对象—request对象获取参数: ( ...
- 提交一个变量或数组到另一个jsp页面
注意一:提交一个变量到另一个jsp页面,用hidden的input 另一个页面用request.getParameter();获取 注意二:提交一个数组到另一个页面,可以用相同的input的n ...
- JSP页面的基本结构 及声明变量
一.JSP页面的基本结构 在传统的HTML页面文件里增加Java程序片和JSP标签就构成了一个JSP页面文件. 一个JSP页面可由5种元素组合而成: 1.普通的HTML标记符 2.Jsp标签.如指令标 ...
- Jsp页面中动态的引入另一个jsp,jsp:include路径是变量的实现
1 问题描述 在页面搭建时,会有这样的需求,希望局部页面动态的引用另一个jsp.这里的"动态"的意思引用的jsp的路径是个变量.举个例子,我们希望局部页面可能是page1.jsp或 ...
- jstl和jsp脚本变量相互访问
1.jsp脚本访问jstl标准动作的变量,可以通过隐式的范围变量来获取,对于页面作用域的变量,可以通过pageContext.getAttribute()来获取,也可以通过动作来获取: <c:s ...
- 在jsp页面中实现格式化数字,百分比,货币
当时的要求是在jsp页面中计算百分比 实现方法 1.引入Jstl的fmt指令 <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" ...
- 【JSTL EL】 jsp 页面学习
JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的.JSTL只能运行在支持JSP1.2 ...
随机推荐
- jQuery+css3弹出框插件
先来看DEMO:https://codepen.io/jonechen/pen/regjGG 插件的开发很简单,运用了CSS3的动画效果,并且弹出框的内容可以自定义.插件的默认配置参数有三个: var ...
- VLC编译问题
在Ubuntu下编译VLC源代码生成的VLC无法播放Youtube视频(比如https://www.youtube.com/watch?v=mDp-ABzpRX8) 错误提示如下: zlf@ubunt ...
- 使用CSS时间打点的Loading效果的教程
基于box-shadow实现的打点效果 理论上,box-shadow可以实现任意的图形效果,自然我们可以利用box-shadow生成我们的点效果,然后通过animation控制不同时间点点的数目就可以 ...
- Dynamic Programming - Part2
实现如下: public static void main(String[] args) { String squence1 = "ABCBDAB"; String squence ...
- 手写PE文件(二)
[文章标题]: 纯手工编写的PE可执行程序 [文章作者]: Kinney [作者邮箱]: mohen_ng@sina.cn [下载地址]: 自己搜索下载 [使用工具]: C32 [操作平台]: win ...
- ios 7 20像素解决
1.if ([[[UIDevicecurrentDevice] systemVersion] floatValue] >= 7) { self.view.bounds = CGRectMake( ...
- MySQL中文全文索引插件 mysqlcft 1.0.0 安装使用文档[原创]
[文章+程序 作者:张宴 本文版本:v1.0 最后修改:2008.07.01 转载请注明原文链接:http://blog.zyan.cc/post/356/] MySQL在高并发连接.数据库记录数较多 ...
- login shell 和 non-login shell 的区别
介绍之前先思考一个问题:有时我们通过su命令切换用户后,却发现并没有进入该用户的shell环境.这是为什么? login shell:取得bash时需要完整的登录流程.就是说通过输入账号和密码登录系统 ...
- Eclipse 字体选择
Windows下推荐使用Consolas Linux下推荐使用DejaVu Sans Mono, Website: http://dejavu-fonts.org/wiki/Main_PageDown ...
- 用C#读取,写入ini文件
[DllImport("kernel32.dll")] private static extern bool WritePrivateProfileString(string se ...