weixin_42363471 2010-04-22 16:13
浏览 202
已采纳

struts2 登陆拦截器的问题~~

我在UserAction中这样写的
public String execute() throws Exception {

    if (userService.isLogin(user)) {
        ActionContext context = ActionContext.getContext();
        Map<String, User> session = context.getSession();

        session.put("user", user);
        System.out.println("判断ACTION已经执行");
        return this.SUCCESS;
    }
    else
       return this.LOGIN;

}

在拦截器中
public String intercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
System.out.println("ssssssssssssssssssssss");
// 对LoginAction不做该项拦截
Object action = invocation.getAction();
if (action instanceof UserAction) {
System.out.println("exit check login, because this is login action.");
return invocation.invoke();
}
// 确认Session中是否存在LOGIN
Map session = invocation.getInvocationContext().getSession();
String user = (String) session.get("user");
if(user!=null&&user.length()>0){
// 存在的情况下进行后续操作。
System.out.println("already login!");

        return invocation.invoke(); 

    }else{
         // 否则终止后续操作,返回LOGIN 
        System.out.println("no login, forward login page!"); 
        return  Action.LOGIN;
    }

配置也已经完善好了,但是在进行登录的时候String user = (String) session.get("user");在这行 报错~我在Action中将从数据库中获取username和password内容 放在了 user中了~为什么 会报错?

  • 写回答

4条回答

  • 拽拽的初行者 2010-04-22 17:04
    关注

    UserAction这样改:

    [code="java"]public String execute() throws Exception {

    if (userService.isLogin(user)) {
    ActionContext context = ActionContext.getContext();
    // -->改这里
    Map session = context.getSession(); [/code]

    拦截器:
    [code="java"]
    // 确认Session中是否存在LOGIN
    Map session = invocation.getInvocationContext().getSession();

    // -->改这里
    User user = (User) session.get("user");
    if(user!=null){
    // 存在的情况下进行后续操作。
    System.out.println("already login!");

       //.............[/code]
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥15 绘制多分类任务的roc曲线时只画出了一类的roc,其它的auc显示为nan
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?