hbcfxg 2011-05-26 10:18
浏览 352
已采纳

struts2执行了login方法,但是不执行logout方法

我的一个登陆登出方法,利用struts2的,可以执行login方法,但是执行logout的action时,不执行logout(),直接跳转到了result 对应的页面。。。不知道怎么解决,求高人

这是我的UserAction
[code="java"]
package com.lfq.action;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpSession;

import com.lfq.dao.UserDAO;
import com.lfq.dao.impl.UserDAOImpl;
import com.lfq.entity.User;

public class UserAction extends BaseAction {

/**
 * 
 */
private static final long serialVersionUID = 1L;
private User user;
private String msg;  //消息
private String userName;
private String password;
public String getUserName() {
    return userName;
}
public void setUserName(String userName) {
    this.userName = userName;
}
public String getPassword() {
    return password;
}
public void setPassword(String password) {
    this.password = password;
}
private boolean rememberMe;
public boolean isRememberMe() {
    return rememberMe;
}
public void setRememberMe(boolean rememberMe) {
    this.rememberMe = rememberMe;
}
public User getUser() {
    return user;
}
public void setUser(User user) {
    this.user = user;
}
public String getMsg() {
    return msg;
}
public void setMsg(String msg) {
    this.msg = msg;
}


public String login() {
    String userName = getUserName();
    String password = getPassword();
    if("".equals(userName) || "".equals(password)) {
        this.msg = "用户名或者密码不允许为空!";
        return INPUT;
    }       
    UserDAO userDao = new UserDAOImpl();
    int userId = userDao.valid(userName, password);
    if(userId > 0) {
        if(rememberMe){
            String t =userId +","+ userName + "," + password;
            Cookie cookie = new Cookie("COOKIE_KEY_REMEMBER_LOGIN", t);
            cookie.setMaxAge(86400);
            super.getResponse().addCookie(cookie);
        }
        super.getSession().setAttribute("SESSION_KEY_USERNAME", userName);
        super.getSession().setAttribute("SESSION_KEY_USERID", userId);
        return SUCCESS;

    } else {
        this.addFieldError("error", "用户名或密码错误");
        return INPUT;
    }       
}

public String logout() {
    System.out.println("------------------------");
    HttpSession session = getSession();
    session.removeAttribute("SESSION_KEY_USERID");
    session.removeAttribute("SESSION_KEY_USERNAME");
    return SUCCESS;
}

@Override
public void validate() {
    // TODO Auto-generated method stub
    if(getUserName() == null || getUserName().trim().equals("")) {
        addFieldError("userName", getText("user.required"));
        return;
    }
    if(getPassword() == null || getPassword().trim().equals("")) {
        addFieldError("password", getText("pass.required"));
        return;
    }
}

}

[/code]
对应struts.xml如下
[code="java"]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">





/admin/login.jsp
/admin/index.jsp


/index.jsp



[/code]

  • 写回答

8条回答 默认 最新

  • slightwei 2011-05-26 11:06
    关注

    你确定是否进入了logout方法?
    把这两个写成一个
    [code="java"]


    /admin/login.jsp

    /admin/index.jsp





    /index.jsp



    [/code]
    [code="java"]


    /admin/login.jsp

    /admin/index.jsp


    [/code]
    请求地址
    [code="java"]

    [/code]

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

报告相同问题?

悬赏问题

  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败