当前位置: 首页 > 知识库问答 >
问题:

使用struts2登录后重定向

慕弘义
2023-03-14

我想在登录到我的索引页面(index.jsp)后进行重定向,实际上我的登录可以正常工作,但ajax支持缺少重定向。

她是我的登录名。jsp

<html>
<head>
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
<script type="text/javascript" src="js/jquery-3.1.1.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script type="text/javascript">
    function loginUser() {
    var username = $("#username").val();
    var userpass = $("#userpass").val();

    $.ajax({
        type : "POST",
        url : "loginuser.action",
        data : "username=" + username + "&userpass=" + userpass,
        success : function(data) {
            var ht = data.msg;
            $("#resp").html(ht);
        },
        error : function(data) {
            alert("Some error occured.");
        }
    });
}
</script>
</head>
<body style="text-align: center;">

<div class="container ">
    <div class="col-lg-4">
        <div class="form-group">
            <input type="text" name="username" id="username"
                class="form-control input-sm" placeholder="User Name">
        </div>
        <div class="form-group">
            <input type="password" name="userpass" id="userpass"
                class="form-control input-sm" placeholder="Password">
        </div>
        <button onclick="loginUser();" type="button" class="btn btn-success btn-block">Login</button>
        <div class="text-center" id="resp" style="margin-top: 14px;"></div>
    </div>
</div>

这是我的登录

 public class LoginAction extends ActionSupport {
private static final long serialVersionUID = 5569022937143602032L;

private String username, userpass, msg;
Admin dao = null;

public String execute() throws SQLException, Exception {
    dao = new Admin();
    msg = dao.validate(username, userpass);
    return msg;
}
public String getUsername() {
    return username;
}
public void setUsername(String username) {
    this.username = username;
}
public String getUserpass() {
    return userpass;
}
public void setUserpass(String userpass) {
    this.userpass = userpass;
}
public String getMsg() {
    return msg;
}
public void setMsg(String msg) {
    this.msg = msg;
}
}

我的struts配置文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="json-default">

    <action name="loginuser"
        class="org.websparrow.action.LoginAction">
        <result name="LOGIN" type="json"></result>
        <!-- <result name="Login Successful" type="redirectAction">index.jsp</result> -->
    </action>

    <action name="registeruser"
        class="org.websparrow.action.RegisterAction">
        <result name="REGISTER" type="json"></result>
    </action>
    <action name="report"
        class="org.websparrow.action.ReportAction">
        <result name="REPORT" type="json"></result>
    </action>
    <action name="updateuser"
        class="org.websparrow.action.UpdateAction">
        <result name="UPDATE" type="json"></result>
    </action>
    <action name="deleteuser"
        class="org.websparrow.action.DeleteAction">
        <result name="DELETE" type="json"></result>
    </action>
</package>

对于DAO部分是:

公共字符串验证(字符串用户名,字符串userpass)抛出SQLException,Exception{

    boolean status = false;
    try {
        String sql = "select * from USERS where UNAME=? and UPASS=?";

        PreparedStatement ps = myconnection().prepareStatement(sql);
        ps.setString(1, username);
        ps.setString(2, userpass);
        ResultSet rs = ps.executeQuery();
        status = rs.next();
        if (status == true)
            return "Login Successful";
        else
            return "Login Failed";
    } catch (Exception e) {
        e.printStackTrace();
        return e.getMessage();
    } finally {
        if (myconnection() != null) {
            myconnection().close();
        }

    }
}

谢谢你的帮助。

共有1个答案

柳向明
2023-03-14

通过更改window.location值,在基于结果的成功处理程序中执行此操作。Struts页面重定向不适用于您的方案。

 类似资料:
  • 问题内容: 我们的应用程序要求用户登录才能查看任何内容。如果没有有效的用户会话,则会拦截对所有页面的访问,并弹出登录表单。我希望拦截器在显示登录表单之前记住原始请求URI,并在登录表单验证成功后重定向到该请求。我尝试按照Struts2Redirect进行身份验证拦截器后的更正操作 但是,由于,我得到了空白页。 从未被调用。 解决方案: 完全擦除@Results批注,而不是调用 问题答案: 如果未登

  • 记录器文件中的日志- org.springframework.Security.Access.event.loggerlistener-安全授权失败,原因是:org.springframework.Security.Access.accessdeniedexception:访问被拒绝;通过身份验证的主体:org.springframework.security.authentication.ano

  • 问题内容: 我想在我的 react / react-router / flux 应用程序中建立一个Facebook登录名。我在登录事件上注册了一个侦听器,并且希望将用户重定向到(如果他们已登录)。该怎么办?效果不佳,除非完全重新加载了页面。 问题答案: React Router v0.13 该实例从返回可以通过左右(或者,如果内部的阵营组件,你可以从它的上下文对象),以及包含的方法一样,你可以用它

  • Reducer.js 我想在成功登录后重定向/主页。我如何重定向?

  • 我正在尝试实现一个功能,在登录后,用户会根据其角色重定向到URL。我已经设置了角色部分,但是在登录后立即测试用户的属性时遇到了问题。 我按照这里的说明创建了一个用户登录页面。我有一个看起来像这样的: 我的函数验证用户,但我不知道如何在登录后立即访问用户对象。这就是我目前拥有的: 当我第一次尝试使用管理员帐户登录时,我会进入路径,因为此时没有任何经过身份验证的用户对象。 在尝试登录后,但是得到了一个

  • 我正在尝试使用Oauth2代理作为使用Google身份验证的网站的网关。出现Oauth登录页面,您可以单击“登录”,这将带您进入Google登录页面,但登录后它会直接重定向回Oauth登录页面。我怀疑这与cookie有关,但我不知道我做错了什么。 NGINX配置: oauth 2-代理配置: Oauth2-proxy 启动命令: 任何想法将不胜感激!