struts2+jquery实现ajax登陆实例详解

yizhihongxing

我将详细讲解“struts2+jquery实现ajax登陆实例详解”的完整攻略。

1. 前言

本文将介绍如何使用 Struts2 和 jQuery 实现前后端的交互,实现 AJAX 登录功能。

2. 后端代码

2.1 登录 Action

首先,我们需要创建一个登陆的 Action。在 Struts.xml 中配置该 Action 的入口路径。

<action name="login" class="com.example.LoginAction">
    <result name="success">/index.jsp</result>
    <result name="error">/login.jsp</result>
</action>

在 LoginAction 中,我们需要实现一个 login 方法,该方法将获取客户端发送来的 username 和 password,进行登陆的验证,并返回验证结果。如下所示:

public class LoginAction extends ActionSupport {

    private String username;
    private String password;

    @Override
    public String execute() throws Exception {
        if ("admin".equals(username) && "123456".equals(password)) {
            return SUCCESS;
        } else {
            return ERROR;
        }
    }

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

登录成功后,我们将跳转到 index.jsp 页,否则,我们将返回登录页 login.jsp。

2.2 配置 Struts 2 过滤器

在 web.xml 中配置 Struts 2 过滤器。

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

3. 前端代码

3.1 登录页面

我们需要创建一个登录页面,包含用户输入用户名和密码的表单。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>登录页面</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script>
        $(document).ready(function () {

            $("#submit").click(function () {
                $.post("login.action", {
                    username: $("#username").val(),
                    password: $("#password").val()
                }, function (data) {
                    if (data == "true") {
                        window.location.href = "index.jsp";
                    } else {
                        alert("用户名或密码错误!");
                    }
                });
            });

            $("#reset").click(function () {
                $(this).closest("form")[0].reset();
            });

        });
    </script>
</head>
<body>

<fieldset>
    <legend>用户登录</legend>
    <form>
        <div>
            <label>用户名:</label>
            <input type="text" id="username" name="username" required>
        </div>
        <div>
            <label>密码:</label>
            <input type="password" id="password" name="password" required>
        </div>
        <hr>
        <div>
            <button type="button" id="submit">登录</button>
            <button type="button" id="reset">重置</button>
        </div>
    </form>
</fieldset>

</body>
</html>

3.2 Ajax 请求

在登录页中,我们使用 jQuery 中的 $.post() 方法,发送一条 Ajax 请求,请求登录。

$.post("login.action", {
    username: $("#username").val(),
    password: $("#password").val()
}, function (data) {
    if (data == "true") {
        window.location.href = "index.jsp";
    } else {
        alert("用户名或密码错误!");
    }
});

请求的地址是 login.action,该地址对应 Struts.xml 中的配置。数据是以 JSON 格式发送的,包含用户输入的用户名和密码。

{
    username: $("#username").val(),
    password: $("#password").val()
}

请求结束后,我们可以根据返回数据进行相应的操作。在本案例中,如果返回的数据是 “true”,则跳转到 index.jsp 页面,否则,弹出错误提示框。

if (data == "true") {
    window.location.href = "index.jsp";
} else {
    alert("用户名或密码错误!");
}

4. 示例

4.1 登录

打开登录页面 login.jsp,在输入框中输入用户名和密码,点击登录按钮,即可进行登录。如果用户名或密码不正确,会提示登录失败。登录成功后,将跳转到 index.jsp 页面。

4.2 登录请求分析

使用浏览器的开发者工具,查看登录请求。我们可以看到是一条 POST 请求,请求地址为 login.action。请求数据包含用户名和密码。

POST /login.action HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 33
Origin: http://localhost:8080
Connection: keep-alive
Referer: http://localhost:8080/login.jsp

username=admin&password=123456

请求结束后,我们可以看到服务器返回的结果。

true

如果登录失败,则返回的数据是 false。

5. 总结

以上就是“struts2+jquery实现ajax登陆实例详解”的完整攻略。通过使用 Struts2 和 jQuery,我们可以很方便地实现前后端的交互,实现 AJAX 登录功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:struts2+jquery实现ajax登陆实例详解 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • SpringBoot如何通过自定义注解实现权限检查详解

    本文介绍如何通过自定义注解在SpringBoot中实现权限校验。我们可以通过自定义注解,并在接口中使用该注解来达到对该接口的访问权限控制的目的。 实现原理 在SpringBoot中,我们可以通过AOP(面向切面编程)的方式来实现权限控制。具体过程如下: 定义一个自定义注解,用于标识哪些接口需要鉴权; 定义一个切面,用于拦截被自定义注解标识的方法; 在切面中根…

    Java 2023年5月20日
    00
  • 教你用java完美封装微信模板消息的发送动态

    下面我将为你详细讲解“教你用Java完美封装微信模板消息的发送动态”的完整攻略。 目录 准备工作 设计实现方案 发送动态示例 获取access_token示例 准备工作 在开始使用Java封装微信模板消息发送的过程中,我们需要准备以下工具: 微信公众号或小程序的AppID和AppSecret。 在进行微信模板消息发送之前,我们需要在公众号或者小程序中先添加模…

    Java 2023年5月23日
    00
  • Spring SpringMVC,Spring整合MyBatis 事务配置的详细流程

    下面是关于Spring、SpringMVC和MyBatis整合以及事务配置的详细流程,包含两个示例说明。 Spring、SpringMVC和MyBatis整合以及事务配置 Spring、SpringMVC和MyBatis是Java Web应用程序开发中常用的框架。在本文中,我们将介绍如何将这三个框架整合在一起,并配置事务管理。 步骤1:添加依赖 首先,我们需…

    Java 2023年5月17日
    00
  • SpringMVC+Ajax实现文件批量上传和下载功能实例代码

    下面给出详细的攻略以及两条示例说明。 1. 概述 本攻略主要介绍如何使用SpringMVC和Ajax实现文件批量上传和下载功能。SpringMVC提供了强大的文件处理能力,可以方便地上传和下载文件。而Ajax则可以实现异步上传和下载文件,提高用户体验。 2. 文件上传 2.1 配置文件上传相关bean 首先,需要在SpringMVC配置文件中添加以下配置: …

    Java 2023年6月15日
    00
  • JavaSpringBoot报错“HttpMediaTypeNotSupportedException”的原因和处理方法

    原因 “HttpMediaTypeNotSupportedException” 错误通常是以下原因引起的: 媒体类型不支持:如果您的媒体类型不支持,则可能会出现此错误。在这种情况下,您需要检查您的媒体类型并确保它们受支持。 媒体类型不正确:如果您的媒体类型不正确,则可能会出现此错误。在这种情况下,您需要检查您的媒体类型并确保它们正确。 解决办法 以下是解决 …

    Java 2023年5月4日
    00
  • Spring Security中用JWT退出登录时遇到的坑

    Spring Security是一个非常流行的安全框架,用于在Spring应用程序中实现身份验证和授权。JWT是一种用于在不同的系统之间安全传输信息的方式。在使用Spring Security和JWT时,退出登录是常见的操作之一,但处理起来可能会遇到一些问题。下面我会详细讲解在Spring Security中使用JWT退出登录时可能遇到的坑,包括原因和解决方…

    Java 2023年5月20日
    00
  • Spring Cloud Feign 自定义配置(重试、拦截与错误码处理) 代码实践

    下面是关于“Spring Cloud Feign 自定义配置(重试、拦截与错误码处理)”的完整攻略详情。 1. 什么是 Spring Cloud Feign Spring Cloud Feign 是一个声明式 REST 客户端,它使通过 HTTP 通信的服务调用变得更加简单。 Feign 会通过定义接口的方式来注入需要访问的远程服务,这样就可以像调用本地方法…

    Java 2023年5月20日
    00
  • springboot 2.3之后消失的hibernate-validator解决方法

    下面是详细的攻略: 问题背景 在Spring Boot 2.3版本之后,引入了一个新的starter库,名为validation-starter,用于提供Java Bean的数据校验功能。同时,hibernate-validator也被移出了Spring Boot的核心依赖,这导致运行时找不到这个库,会报出ClassNotFoundException的错误。…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部