关于webwork session登陆验证

我使用的webwork和spring.各个action在spring中使用scope="prototype"模式.

BaseAction如下:
[code]
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.lang.*;
import com.opensymphony.webwork.ServletActionContext;
import com.opensymphony.xwork.ActionSupport;


public class BaseAction extends ActionSupport {
protected transient final Log log = LogFactory.getLog(getClass());

private String loginId="";


public String getLoginId() {
return loginId;
}



protected boolean checkNoLogin(){
//getSession().setMaxInactiveInterval(1);
HttpSession session = getSession();
loginId = (String)session.getAttribute("userSession");
System.out.println("loginId:"+loginId);
if(StringUtils.isBlank(loginId))
{
return true;
}
return false;

}


/**
* Convenience method to get the request
* @return current request
*/
protected HttpServletRequest getRequest() {
return ServletActionContext.getRequest();
}

/**
* Convenience method to get the response
* @return current response
*/
protected HttpServletResponse getResponse() {
return ServletActionContext.getResponse();
}

/**
* Convenience method to get the session
*/
protected HttpSession getSession() {
return getRequest().getSession();
}
[/code]


loginAction.java如下:
[code]
public String login() throws Exception {
System.out.println("loginId:"+loginId);
System.out.println("password:"+password);
if (loginDao.checkUserExists(loginId,password) == false) {
addFieldError("loginIdNoExists", "用户名不存在!");
return ERROR;
} else if (loginDao.checkUserSuccess(loginId,password) == false) {
addFieldError("passwordNoMatch", "用户密码错误!");
return ERROR;
} else {
System.out.println("login success!");
HttpSession session = getSession();
session.setAttribute("userSession", loginId);

System.out.println("成功登录!");
}
return SUCCESS;
}
[/code]

但是登陆成功之后,在其他的模块Condition.java中


[code]
public String condition() throws Exception {
if(checkNoLogin())
return "login";
return SUCCESS;
}
[/code]
调用BaseAction的checkNoLogin方法,取得登陆成功之后保存在session中的userSession,为什么会是null呢?

请各位解答一下.或者有其他的方式来验证用户是否登陆成功的方式,谢谢!!!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值