servlet session的问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 13:45:28
我是初学者
使用的配置环境为Jboss+lomboz+eclipse
由于lomboz不支持新的eclipse版本,所以用的是老师配好的jboss-3.2.5+eclipse3.0.2
在做好的servlet+jsp的实验时发现想往session里存东西时存不进去。
这是UserServlet的登录验证方法:
private String logincheck(HttpServletRequest request) {
try {
//
HttpSession session=request.getSession(true);
String userid=request.getParameter("userid");
if(userid==null ||userid.equals(""))
throw new Exception("请输入用户名");
String pwd=request.getParameter("pwd");
if(pwd==null)pwd="";
WebUser user=dao.readUser(userid);
if(user==null)
throw new Exception("用户不存在");
if(!pwd.equals(user.getPwd()))
throw new Exception("密码错误");
//无法存入userid 原因未知
session.invalidate();
sess

jboss服务器上也会有临时文件的吧,有没有清掉

看这里
session.setAttribute("userid",userid);
session.setAttribute("username",user.getUsername());

你的userid和username的获取方式是不一样的,你的userid的获取是
String userid=request.getParameter("userid");
也许你在request中获取的userid就已经是null所以你后面session.setAttribute("userid",userid); 把一个null放入session中,导致你后面取不到

而你的username是首先创建了user对象,而且判断是否为null所以user那么被正确存入session中了
WebUser user=dao.readUser(userid);
if(user==null)
session.setAttribute("username",user.getUsername());

你检查下你String userid=request.getParameter("userid"); 这里吧,试试看,有问题继续留言

debug一下不就很明了了。