想实现一个注销的功能,在页面上有个注销按钮,我想一点它就注销,用了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页面变量作用域问题的更多相关文章

  1. jsp 中变量作用域:pageScope、requestScope、sessionScope、applicationScope

    jsp 中,变量的作用域,一共有4种: pageScope:表示变量只能在本页面使用. requestScope:表示变量能在本次请求中使用. sessionScope:表示变量能在本次会话中使用. ...

  2. 使用type="redirect"重定向,传递List等变量到jsp页面的问题

    Struts2在提交表单的时候,使用「type="redirect"」重定向到相应的jsp页面. Action中的List表单是无法传到相应的jsp页面. 我猜测是因为List作为 ...

  3. 在JSP页面中调用另一个JSP页面中的变量

    在jsp学习中,经常需要在一个jsp页面中调用另一个jsp页面中的变量,下面就这几天的学习,总结一下. jsp页面之间的变量调用有多种方法: 1.通过jsp的内置对象—request对象获取参数: ( ...

  4. 提交一个变量或数组到另一个jsp页面

        注意一:提交一个变量到另一个jsp页面,用hidden的input 另一个页面用request.getParameter();获取 注意二:提交一个数组到另一个页面,可以用相同的input的n ...

  5. JSP页面的基本结构 及声明变量

    一.JSP页面的基本结构 在传统的HTML页面文件里增加Java程序片和JSP标签就构成了一个JSP页面文件. 一个JSP页面可由5种元素组合而成: 1.普通的HTML标记符 2.Jsp标签.如指令标 ...

  6. Jsp页面中动态的引入另一个jsp,jsp:include路径是变量的实现

    1 问题描述 在页面搭建时,会有这样的需求,希望局部页面动态的引用另一个jsp.这里的"动态"的意思引用的jsp的路径是个变量.举个例子,我们希望局部页面可能是page1.jsp或 ...

  7. jstl和jsp脚本变量相互访问

    1.jsp脚本访问jstl标准动作的变量,可以通过隐式的范围变量来获取,对于页面作用域的变量,可以通过pageContext.getAttribute()来获取,也可以通过动作来获取: <c:s ...

  8. 在jsp页面中实现格式化数字,百分比,货币

    当时的要求是在jsp页面中计算百分比 实现方法 1.引入Jstl的fmt指令 <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" ...

  9. 【JSTL EL】 jsp 页面学习

    JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的.JSTL只能运行在支持JSP1.2 ...

随机推荐

  1. Bootstrap入门一:Hello Bootstrap

    一.Bootstrap简介 Bootstrap,来自 Twitter,是目前很受欢迎的前端框架.Bootstrap是基于 HTML5.CSS3和Javascriopt开发的,它在 jQuery的基础上 ...

  2. eclipse for jee版配置tomcat

    在网上搜到的大多都是插件配置,其实默认的就可以配置tomcat的. 第一步:New -> Other -> Server ,然后选择Apache下的tomcat的版本. 注意:如果Next ...

  3. PHP操作数据库类

    <?php /** * 功能: 数据库操作类 . * 作者: 赵铭哲 * 日期: 2016-05-23 * 时间: 9:43 */ namespace ZH\DataBase; use \Exc ...

  4. vsm shadowmap format

    遇到个奇怪的问题. 在做vsm ,shadowmap format RGBA8 结果正常 RGBA16F 场景不形成阴影的地方变纯黑,因为sm里面这些地方变纯黑(感觉这个好修一些) RGBA32F 阴 ...

  5. 4-Highcharts 3D图之3D普通饼图

    <!DOCTYPE> <html lang='en'> <head> <title>4-Highcharts 3D图之3D普通饼图</title& ...

  6. 【ASP.Net MVC】在AspNet Mvc使用JQuery AutoComplete组件

    在AspNet Mvc使用JQuery AutoComplete组件 官方文档: http://api.jqueryui.com/autocomplete/#entry-examples 要使用JQu ...

  7. 在JavaScript中实现yield,实用简洁实现方式。

    原题还是老赵的: http://blog.zhaojie.me/2010/06/code-for-fun-iterator-generator-yield-in-javascript.html 原以为 ...

  8. 移动MM failed to find resource file{mmiap.xml}

    原地址:http://blog.csdn.net/alking_sun/article/details/36175861 在进行移动MM集成的时候总是会遇到一个bug:  failed to find ...

  9. 迁移到MariaDB galera

    迁移到MariaDB galera [已注销] [已注销] -- :: [安装] ====== https://downloads.mariadb.org/mariadb/repositories/ ...

  10. MariaDB集群Galera Cluster的研究与测试

    MariaDB集群Galera Cluster的研究与测试 Galera Cluster是MariaDB的一个双活多主集群,其可以使得MariDB的所有节点保持同步,Galera为MariaDB提供了 ...