当前位置:  技术问答>java相关

Java的session问题!!!

    来源: 互联网  发布时间:2015-01-14

    本文导语:  请教大虾:   我用JAVA实现权限控制功能:   当一开始登录时让用户输入工号和密码,成功后用session在数据库处登记该登录信息, 当退出后,发送消息给服务器,表示该会话结束,下次进入须重新登录。   问题如...

请教大虾:
  我用JAVA实现权限控制功能:
  当一开始登录时让用户输入工号和密码,成功后用session在数据库处登记该登录信息,
当退出后,发送消息给服务器,表示该会话结束,下次进入须重新登录。
  问题如下:当用户非法退出后(直接关掉浏览器),我怎么知道此次会话结束并记录已退出信息呢?否则如果不记录,服务器可能一直保持会话连接状态。
   请帮帮忙,一点小分,不成敬意!先谢谢了!

|
直接利用session就行了,服务器确实不能得知何时客户端结束了(例如:网络端了、客户关机、客户关闭浏览器、等等)。但是能保证下次(重开浏览器,注意与刷新不同,刷新仍在原来的session范围内)打开页面的时候一定是个新的session,换句话说:就是用户必须重新输入“工号和密码”,才能浏览特定页面。下面是个简单的例子:(JBuilder5做的)Jsp1.jsp和Jsp2.jsp
---------------------Jsp1.jsp------------------




Jsp1




JBuilder Generated JSP





Enter new value   :  












------------------Jsp2.jsp------------------------




Jsp2




JBuilder Generated JSP





---------------------------end of code-----------------

启动tomcat后,注意如果直接浏览jsp2是不允许的,
当先进入jsp1然后submit进入jsp2,第一次会提示session为空,以后就会显示第一次在jsp1里面输入的内容(包括刷新jsp2),但如果关闭该浏览器,再要直接浏览jsp2还是不允许的。显然此时session没有超时,说明这必定是一个新的session.

|
当用户关闭浏览器后,服务器端保留SESSION直到SESSION超时,但本地的SESSION就没有了。
若用户再想开浏览器进入的话,SESSION里肯定没有登陆信息。

|
hehe.其实简单,当用户关掉浏览器的时候,javascript里面有个onUpload的事件被激发,你通过这个事件的处理器就可以调用相应的jsp/servlet,做你想做的事情了。。

|
to hawk_js(鹰): session 时间根据需要而定。但如果你想要关掉浏览器后
立即退出,那这样恐怕不行。而要采用在javaScript中写unload的方法。
但那样会很麻烦,因为每个文件中都要写unload方法。
最终采用什麽方法,还是要看客户的要求如何。

|
faint
页面关掉的时候,session自然就丢失了,客户下次进来是必须要登陆的!
服务器端的session是有失效时间的,不用设置的过短,要不然客户需要不停的重新登陆
万一用户在你设定的时间到来之前关掉浏览器,然后又直接进入(不登录),并且
仍然未到过期时间,怎么办?                ~~~~~~~~~~~~~~~~~~~~~~~~不可能!!
那你就删掉服务器端上次的登陆信息,重新作一次登陆!

|
to hawk_js(鹰): 如果你愿意在每个一页面都判断session有无的话,那通过session
就可意解决。
还有一种办法:
if (httpHeader.reference = "") /* 手入力URL */
{
    /* forbidden, go to login page */
}else {  /* 由别的画面迁移而来 */
   /* ok */
}


|
to hawk_js(鹰): 如果你愿意在每个一页面都判断session有无的话,那通过session
就可意解决。
还有一种办法:
if (httpHeader.reference = "") /* 手入力URL */
{
    /* forbidden, go to login page */
}else {  /* 由别的画面迁移而来 */
   /* ok */
}


|
设定session过期时间。
addSessionListener(),session过期回自动调用此函数,
在其中进行logout.

|
你可以在你的jsq页面的头几行加入一段验证程序,判断在session中是否有一个特定的信息,如果没有提示出错,就可以了

|
我觉得beyondii的办法,可行,因为如果当前页关掉以后Session会消失的。

|
也是用session了,呵呵

|
利用HttpSessionListener编写自己的监听器,如果浏览器被非法关闭,Session被去掉,将会调用你的监听器,你可以在监听器的ValueBound()和ValueUnBound()方法中处理相应的事件。可以看看Servlet规范,里面有描述。

    
 
 

您可能感兴趣的文章:

  • java命名空间java.sql枚举rowidlifetime的类成员方法: rowid_valid_session定义及介绍
  • java中的session问题,急急!50分相送?
  • java命名空间javax.xml.ws接口bindingprovider成员方法: session_maintain_property定义参考
  • java读取session变量问题----在线等待
  • java tomcat实现Session对象的持久化原理及配置方法介绍
  • 有关session中的getAttribute(java.lang.String name)的问题???
  • java Servlet实现Session创建存取以及url重写代码示例
  • 求解!Java如何能在多个applet之间实现类似asp的session类!
  • java session出现的错误
  • Java读写包括中文的txt文件时不同编码格式问题解决
  • 菜鸟的问题:java与java script 的异同??
  • java新手的问题,java高手帮忙...
  • 低级问题:.java文件交付用户怎么运行,难道也是DOS下:java xx.java?有没有.exe?
  • 请各位java高手几个java有关的问题?
  • java.sql.Date和java.uitl.Date的问题?
  • 问大哥大姐们个问题啊,小第编了自己的第一个JAVA问题。用JAVAC编译能通过啊!可是用JAVA不能执行啊!
  • 最入门级的java问题,如何运行HelloWorld.java
  • 请教一些JAVA的基本问题,初学JAVA有些迷糊,帮帮忙!总迷糊实在受不了了!
  • Linux下面的开发好的Java程序,如何部署到其他机器?开发好的Java图形程序,终端上能否用?等问题
  • 关于JAVA应用程序(Java Application)的deliver问题
  • 请Linux 和Java 的高手回答:java JDK1.3.1 在红旗Linux Desktop 2.4 的问题,一定给分。
  • 一个极其菜的问题:JAVA,VISUAL J++,JAVA SCRIPT,EJB,它们之间到底有什么关系,谢谢!
  • 我的Javac没有问题,但是java有问题,
  • 一个JAVA继承的问题(Thinking in JAVA里的一个例子)
  • 刚学习Java,请教关于Java的Application代码编写问题。
  • 我所学的是计算机,现在想学JAVA,对JAVA绝对是初学!!!可以交流的留下个地址。肯定给分,不过非完分后就是问题,问题,问题了;)有留E-mail至少1分
  • 两个非常简单的问题,给40分 (才学2天JAVA人的问题)
  • 问个简单的低级又很怪的问题,我在编译*.java的问题。
  • java学习的问题<问题解决立即结贴>?
  • 我是学pb的,有一个问题想请教各位java的朋友,j2ee平台是什么啊?如果要用这个平台的开发pb的话是否要学java??
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍
  • 我对JAVA一窍不通,可惜别人却给我一个Java的project,要我做一个安装程序,请问哪里有JAVA INSTALLER下载,而且我要不要安装java的sdk才能完成此项任务?
  • java命名空间java.security类keystore的类成员方法: getdefaulttype定义及介绍
  • 新年第一天,让我们讨论一下未来一年JAVA的发展趋势! 个人认为,JAVA将主要朝ERP和JAVA手机方面发展!
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getclasspath定义及介绍
  • 我想学Java,但不知道Java的实用的开发工具有那些,Java主要用在哪些方面,EJB到底是什么东西??
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javaserializedobjectmimetype定义及介绍
  • redhat7.3下,java程序打印中文直接用java命令执行正常,用crontab执行java命令为乱码
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javafilelistflavor定义及介绍
  • 各位学java的朋友,学java的未来是什么,你们学java都用来开发什么项目啊!来者给分!!
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getvmname定义及介绍
  • 请问java程序中的import为什么有的用java.….*,而有的又用java.….…,有什么区别吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3