Struts2 用户不应使用查询字符串登录

Struts2 用户不应使用查询字符串登录,struts2,Struts2,我使用了登录应用程序,若用户名和密码为空,它就是验证表单。 现在我发送的用户名和密码如下 然后也成功登录,而不是填写login.jsp表单页面。在这种情况下,用户不应登录。如何使用Struts2避免这种情况。有两种类型的验证客户端(Html/javascript)和服务器端(Java代码)。 到目前为止,您只进行客户端验证。您需要进行服务器端验证,因为url参数javascript验证不被调用-即,您对输入进行的验证。当参数通过时,您需要检查java代码是否有效。下面的示例代码 public c

我使用了登录应用程序,若用户名和密码为空,它就是验证表单。 现在我发送的用户名和密码如下
然后也成功登录,而不是填写login.jsp表单页面。在这种情况下,用户不应登录。如何使用Struts2避免这种情况。

有两种类型的验证客户端(Html/javascript)和服务器端(Java代码)。 到目前为止,您只进行客户端验证。您需要进行服务器端验证,因为url参数javascript验证不被调用-即,您对输入进行的验证。当参数通过时,您需要检查java代码是否有效。下面的示例代码

public class LoginAction extends ActionSupport {

    private String userName;
    private String password;

    public String execute() {
        return SUCCESS;
    }


    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;
    }

    public void validate() {
        if (getUserName().length() == 0) {
            addFieldError("userName", "UserName.required");
        } else if (!getUserName().equals("Arpit")) {
            addFieldError("userName", "Invalid User");
        }
        if (getPassword().length() == 0) {
            addFieldError("password", getText("password.required"));
        }
    }
}

更多详细信息

有两种类型的验证客户端(Html/javascript)和服务器端(Java代码)。 到目前为止,您只进行客户端验证。您需要进行服务器端验证,因为url参数javascript验证不被调用-即,您对输入进行的验证。当参数通过时,您需要检查java代码是否有效。下面的示例代码

public class LoginAction extends ActionSupport {

    private String userName;
    private String password;

    public String execute() {
        return SUCCESS;
    }


    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;
    }

    public void validate() {
        if (getUserName().length() == 0) {
            addFieldError("userName", "UserName.required");
        } else if (!getUserName().equals("Arpit")) {
            addFieldError("userName", "Invalid User");
        }
        if (getPassword().length() == 0) {
            addFieldError("password", getText("password.required"));
        }
    }
}


更多详细信息

显示操作和操作表单代码?您应该使用操作表单而不是查询字符串。选中此处,您需要编写自定义拦截器并将其添加到自定义拦截器堆栈中。在拦截器中,您只允许POST请求通过,并以您更喜欢的方式拒绝GET请求。来自req的查询字符串uest.如何编写拦截器来传递请求并拒绝GET请求?谢谢Andrea…我使用此方法检查请求方法public void setServletRequest(HttpServletRequest arg0){//TODO自动生成的方法stub System.out.println(“getMethod==”+arg0.getMethod());methodName=arg0.getMethod();}向您显示操作和操作表单代码?您应该使用操作表单而不是查询字符串。选中此处,您需要编写一个自定义拦截器并将其添加到自定义拦截器堆栈中。在拦截器中,您只允许POST请求通过,并以您更喜欢的方式拒绝GET请求。请求中的情感查询字符串。如何编写拦截器传递请求并拒绝GET请求?谢谢你,安德里亚…我使用此方法检查请求方法public void setServletRequest(HttpServletRequest arg0){//TODO自动生成的方法存根System.out.println(“getMethod=”+arg0.getMethod());methodName=arg0.getMethod();}向您显示操作和操作表单代码?您应该使用操作表单而不是查询字符串。选中此处,您需要编写一个自定义拦截器并将其添加到自定义拦截器堆栈中。在拦截器中,您只允许POST请求通过,并以您更喜欢的方式拒绝GET请求。请求中的情感查询字符串。如何编写拦截器传递请求并拒绝GET请求?谢谢你,安德里亚…我使用此方法检查请求方法public void setServletRequest(HttpServletRequest arg0){//TODO自动生成的方法存根System.out.println(“getMethod=”+arg0.getMethod());methodName=arg0.getMethod();}抱歉,伙计,但我猜这不是OP要问的。他从未说过或暗示他正在使用任何客户端验证。他问的是如何阻止授权用户的GET请求,只让POST请求通过。抱歉,伙计,但我猜这不是OP要问的。他从未说过或暗示他正在使用任何客户端验证。他是一个sking如何阻止GET请求对用户进行身份验证,只让POST请求通过。对不起,伙计,但我猜这不是OP所要求的。他从未说过或暗示他正在使用任何客户端验证。他问的是如何阻止GET请求对用户进行身份验证,只让POST请求通过。