手动刷新过。。不刷新还是会保持原来的页面状态当然你可以每个页面都启用定时器使用ajax访问一个页面,这个页面判断session存在就输出session存储的用户名,然后ajax得到返回值更新你的span
解决方案 »
- Js问题
- 怎么获得Session
- 请问我这个程序输出本次和上次访问时间,为啥一个正确一个是乱码
- com.microsoft.sqlserver.jdbc.SQLServerException: 将截断字符串或二进制数据。
- 请教:将一个页面嵌入到另一个页面中的问题
- Spring+Struts+Hibernate集成问题
- 重大问题:用JSP代码创建ACCESS数据库/表格!!!!
- resin编码问题请教,急
- 大家都来看看!!!!!希望有位好人建立一个群!!
- 我的第一个JSP文件?
- 用的springmvc,jsp怎么取到controller中传过来的json?我不会ajaxa啊。。求个DEMO
- apache 整合tomcat 访问报404 找不到页面
建议改为struts2的ActionContext.getContext().getSession.put("userName",userName)存放,
然后再用ActionContext.getContext().getSession().get("userName") 来取。
------------------------------------------------------------------------------------------------
比如,我在home.jsp上单击登录按钮跳转到登录页面login.jsp,而login.js代码里获取从LoginCheckAction.java对登录名和密码的验证结果,假如结果是success,跳转到之前的home.jsp页面上并且把<span id="user'>游客</span>里的游客换成登录名。等我返回到home.jsp时“游客”变成了“null”。 -------------------------------------------------------------------------------------------------
楼上说的页面缓存的问题,我认为也应该是,等登录成功跳转到原来的home.jsp上我按了F5刷新了home.jsp,发现<span id="user'>游客</span>里的“游客”换成了登录名。所以估计是缓存的问题。必须要手动刷新一下才能取得session中的登录名。
---------------------------------------------------------------------------------------------------
又碰到问题了:我在login.js上通过window.history.go(-1)返回到上一页,但是返回到上一页后必须执行手动刷新【F5】才能取得session中的登录名。我不可能这样做的吧,每次登录成功后还要手动刷新上一页。
所以我想问大家:能否在js代码中实现返回上一页时对它进行强制刷新呢?
谢谢大家了。
jsp中 就可以 <%=userName %>取值
嗯,我是这么做的呢。在action里有get和set方法取得userName,但是取得后不是还得返回给原来的home.jsp页面嘛,所以只能放入session中,因为是用window.history.go(-1)进行返回,所以在home.jsp上取得的userName值还是null,但按F5刷新后就可以从session中取到。问题是这样子的所以怎么用window.history.go(-1)进行返回然后又能自动刷新返回的那页就能取得userName的值呢?
嗯,我是这么做的呢。在action里有get和set方法取得userName,但是取得后不是还得返回给原来的home.jsp页面嘛,所以只能放入session中,因为是用window.history.go(-1)进行返回,所以在home.jsp上取得的userName值还是null,但按F5刷新后就可以从session中取到。问题是这样子的所以怎么用window.history.go(-1)进行返回然后又能自动刷新返回的那页就能取得userName的值呢?这个就要用1#的方法了。。回退不会重新请求服务器获取新数据的
嗯,我是这么做的呢。在action里有get和set方法取得userName,但是取得后不是还得返回给原来的home.jsp页面嘛,所以只能放入session中,因为是用window.history.go(-1)进行返回,所以在home.jsp上取得的userName值还是null,但按F5刷新后就可以从session中取到。问题是这样子的所以怎么用window.history.go(-1)进行返回然后又能自动刷新返回的那页就能取得userName的值呢?如果实现不行的话 window.history.go(-1) 不用这个 直接链接action请求
其实特别好奇,淘宝,天猫,京东等网站是怎么实现这个操作的呢?平常在打开天猫首页,进入登录窗口,输入用户名和密码,成功后在回到天猫首页,在页面上单击任何商品的链接,始终能在最上面呈现你的用户名。等过了一定时间用户名无效然后需要重新登录。
----------------------------------------------------------------------------------------------------
这也应该是session的功劳吧?具体不太明白,还望知道的给解答个一二呢。谢谢了~
其实特别好奇,淘宝,天猫,京东等网站是怎么实现这个操作的呢?平常在打开天猫首页,进入登录窗口,输入用户名和密码,成功后在回到天猫首页,在页面上单击任何商品的链接,始终能在最上面呈现你的用户名。等过了一定时间用户名无效然后需要重新登录。
----------------------------------------------------------------------------------------------------
这也应该是session的功劳吧?具体不太明白,还望知道的给解答个一二呢。谢谢了~
就是session的功劳 它自己也有生命周期 你百度查查就懂了 一定时间不动 session就清空了
其实特别好奇,淘宝,天猫,京东等网站是怎么实现这个操作的呢?平常在打开天猫首页,进入登录窗口,输入用户名和密码,成功后在回到天猫首页,在页面上单击任何商品的链接,始终能在最上面呈现你的用户名。等过了一定时间用户名无效然后需要重新登录。
----------------------------------------------------------------------------------------------------
这也应该是session的功劳吧?具体不太明白,还望知道的给解答个一二呢。谢谢了~点击上一页 你只要执行action请求就行了 没你说的那么麻烦 action中只要有判断用户是否登录的方法就行
其实 可以用struts2自己的session,去操作起来更方便些。
document.referrer用这个提取跳转前的页面,跳转刷新
你要显示登录名,是一个新的请求。
方法:
我的猜测是,验证登录的时候你会从数据库中获得一个登录对象。这个对象中有很多数据 包括username
我再猜测你的判断条件是 user != null && password.equals(user.getPassword()) 吧
既然fingByName方法返回的是一个对象
何不在其他页面使用$.post获得这个对象呢 .然后你就可以操作啦。
或者在获取到这个对象的action中直接就绑定在session上,那样做验证和提取登录用户数据很很方便。
------------------------------------------------------------
后来问题暂时解决了,能实现我的目标~
------------------------------------------------------------
实现的方法是:假如在home.jsp上单击登录按钮,利用js代码获取userName和userPw,然后$.ajax转到struts2中配置的action[LoginCheckAction.java],然后在LoginCheckAction.java中查询数据库验证,如果用户名和密码都对的话,把userName放入session中,并$.ajax的success属性中回到上一页window.open(document.referrer);实现,谢谢#21的答复
最后感谢大家,如果以后能有更好的实现方式,再分享给大家~
其实 可以用struts2自己的session,去操作起来更方便些。其实我向说的是这个
ServletActionContext.getRequet().getSession()
ActionContext.getContext().getSession()
这两的区别究竟在哪儿。
ServletActionContext.getRequet() 一般是在struts2 中需要访问servlet的接口时使用这种方式获取。
这是设置session
获取session 用
ServletActionContext.getRequet().getSession().getAttribute("userName")
试试