session丢失问题 为什么要把action写到页面去呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 还有另一个servlet做的 出了同样的问题。 没写到页面中啊,我不是按条目列的么页面...xml...action..数据库........................................ 你这是重复登录的结果吧 ,你每次放进去的名字都是usersession这个。 每次登录都会产生一个sessionID。跳转主页时候吧session清了。 一个变量String name;get set。。 确实是跳转主页时 session出了问题,按你的思路应该是 点主页 重新提交了一个空表单。但是我怎么想也觉得没道理啊。点击主页---struts.xml.---action 代码就图上的简单几行,怎么也找不到哪里导致问题出现 试过了,不管用开服务器---部署----浏览器---登录--->主页--点击返回主页---NULL 你吧页面和action代码都帖出来。 我觉得应该不是重复登录的关系,如果是重复登录 session中对象的值不应该是null才对。在 页面---struts.xml---action action在获取session就出了问题。在这应该是创建了一个新的session,也就是说原来的session已经没了,我就不明白了 session为什么会丢失了 页面login.jsp: <s:form action="/user/Ver" method="post"> 用户名:<input type="text" name="user.name"> <br> 密 码: <input type="password" name="user.password"> <input type="submit" value="登录"><input type="Reset" value="重置"> </s:form> home.jsp: <a href="../user/index">首页</a> 欢迎 <s:property value="name" />登录action: loginAction.java: User getuser; String name; //get set方法省略 public String UserVer(){ User user = null; user = daoimpl.findbyname(getuser); HttpSession session = ServletActionContext.getRequest().getSession(); session.setAttribute("sessionuser", user);// 放入session中 //登录验证 } public String Index() { HttpSession session = ServletActionContext.getRequest().getSession(); User user = (User) session.getAttribute("sessionuser"); name = user.getName(); return "index"; } 进入主页 看到欢迎 1 登录 点击返回主页 触发跳转主页Action: HttpSession session =ServletActionContext.getRequest().getSession(); User user = (User) session.getAttribute("usersession"); name=user.getName();楼主这里可能有问题,这里因为你已经登录,应该先判断下session.getAttribute("usersession")是否为空,不然你这里触发的action并未传递user的参数,又再次设置了session,就把原来的冲掉了,可能是这个引起的 为什么不写个拦截器,做统一的权限验证?还有我看你的用户验证也没做什么,user = daoimpl.findbyname(getuser); //这里之前是否需要判断getuser是否为空,之后是否需要判断一下user是否为空,再根据实际情况进行跳转。可能是因为getuser为空或者数据库中找不到user,而你之后没有判断直接就覆盖了session中的user。session.setAttribute("sessionuser", user);// 放入session中 不是这问题,空值问题 都有验证,只不过没贴出来,只把session抽出来写上了 进入主页 看到欢迎 1 登录 点击返回主页 触发跳转主页Action: 可能这里session就变了 但不知如何验证 HttpSession session =ServletActionContext.getRequest().getSession(); 这里的session已经确定改变了 User user = (User) session.getAttribute("usersession"); name=user.getName(); 写个监听器监听一下session,看看是什么触发其改变的。 或者你把session清空下在继续 讲解Java基础知识(二) ExtJs 中ascII 码转换用什么? hibernate3.2无法启动2级缓存 如何判断系统故障来源?急~~ 用SSH做的登录界面,不知道哪里错 关于页面刷新的问题,在线等 java调用C#写的webservice问题 在eclipse中怎样将Java Project改成Tomcat Project ? 关于log4j属性文件加载的问题和写入数据库的问题?? java BufferedImage加载图片内存溢出 【算法讨论】 jsoup设置cookies的问题
页面...
xml...
action..
数据库...
.....................................
每次登录都会产生一个sessionID。跳转主页时候吧session清了。
String name;
get set。。
开服务器---部署----浏览器---登录--->主页--点击返回主页---NULL
在 页面---struts.xml---action action在获取session就出了问题。在这应该是创建了一个新的session,也就是说原来的session已经没了,我就不明白了 session为什么会丢失了
login.jsp:
<s:form action="/user/Ver" method="post">
用户名:<input type="text" name="user.name">
<br>
密 码:
<input type="password" name="user.password">
<input type="submit" value="登录"><input type="Reset" value="重置">
</s:form>
home.jsp:
<a href="../user/index">首页</a>
欢迎 <s:property value="name" />登录action:
loginAction.java:
User getuser;
String name;
//get set方法省略
public String UserVer(){
User user = null;
user = daoimpl.findbyname(getuser);
HttpSession session = ServletActionContext.getRequest().getSession();
session.setAttribute("sessionuser", user);// 放入session中
//登录验证
}
public String Index() {
HttpSession session = ServletActionContext.getRequest().getSession();
User user = (User) session.getAttribute("sessionuser");
name = user.getName();
return "index";
}
HttpSession session =ServletActionContext.getRequest().getSession();
User user = (User) session.getAttribute("usersession");
name=user.getName();楼主这里可能有问题,这里因为你已经登录,应该先判断下session.getAttribute("usersession")是否为空,
不然你这里触发的action并未传递user的参数,又再次设置了session,就把原来的冲掉了,可能是这个引起的
user = daoimpl.findbyname(getuser);
//这里之前是否需要判断getuser是否为空,之后是否需要判断一下user是否为空,再根据实际情况进行跳转。可能是因为getuser为空或者数据库中找不到user,而你之后没有判断直接就覆盖了session中的user。
session.setAttribute("sessionuser", user);// 放入session中
进入主页 看到欢迎 1 登录 点击返回主页 触发跳转主页Action:
可能这里session就变了 但不知如何验证
HttpSession session =ServletActionContext.getRequest().getSession();
这里的session已经确定改变了
User user = (User) session.getAttribute("usersession");
name=user.getName();
或者你把session清空下在继续