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

我将详细讲解“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 登录功能。

阅读剩余 77%

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

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

相关文章

  • java.lang.String类的使用

    Java.lang.String类的使用 java.lang.String 类是 Java 标准库中最常用的类之一,用于表示字符串。本篇攻略旨在帮助读者全面了解 String 类的使用方法,并且提供几个示例说明。 基本使用 String 对象是不可变的,也就是说一旦创建了 String 对象,它的值将不能被更改。使用 String 类最基本的方法是创建一个新…

    Java 2023年5月27日
    00
  • Java判断对象是否为空(包括null ,””)的方法

    判断对象是否为空是Java开发中非常常见的操作,正确的判断方式可以避免很多空指针异常的出现。以下是几种常见的判断对象是否为空的方法。 1.使用“==”运算符判断是否为null 在Java中,使用“==”运算符判断对象是否为null是最常用的方式,代码示例如下: Object obj = null; if (obj == null) { // 对象为空 } e…

    Java 2023年5月26日
    00
  • 一文搞懂Java中的日期类

    一文搞懂Java中的日期类 在Java中,处理日期时间的任务是一个经常需要用到的任务。Java提供了一些内置的日期和时间处理类,称为Java日期类,通过使用这些类,我们可以方便地创建、处理和格式化日期和时间,并进行各种类型的计算。本文将为大家详细介绍Java中的日期类。 为什么使用Java日期类 在Java中,日期被称为java.util.Date类,以毫秒…

    Java 2023年5月20日
    00
  • Java Web项目中实现文件下载功能的实例教程

    下面是详细的“Java Web项目中实现文件下载功能的实例教程”。 1. 介绍 在Java Web项目中,我们常常需要实现文件下载功能,例如下载用户上传的文件、下载服务器端指定的文件等等。本文将演示如何在Java Web项目中实现文件下载功能,包括下载WEB-INF下的文件和下载上传的文件。 2. 实现 2.1 下载WEB-INF下的文件 在Java Web…

    Java 2023年5月19日
    00
  • spring security环境搭建

    首先,为了搭建Spring Security的环境,我们需要在项目的依赖中引入相关的依赖项。可以在项目的 pom.xml 文件中添加以下依赖项: <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-sec…

    Java 2023年5月20日
    00
  • SpringBoot整合SpringSecurity实现权限控制之实现多标签页

    下面是“SpringBoot整合SpringSecurity实现权限控制之实现多标签页”的完整攻略: 环境搭建 首先,您需要在本地环境中安装下列软件和工具: JDK 1.8或更高版本 Maven 3.2或更高版本 IntelliJ IDEA或 Eclipse 其次,在pom.xml中添加Spring Security和Thymeleaf依赖: <dep…

    Java 2023年5月20日
    00
  • J2EE Servlet上传文件到服务器并相应显示功能的实现代码

    下面是实现“J2EE Servlet上传文件到服务器并响应显示功能”的攻略,并提供两条示例代码: 1.前期准备 在开始实现功能之前,我们需要进行一些前期准备工作: 在web.xml文件中配置相应的Servlet,包括Servlet的名称、Servlet的URL映射、Multiform数据的解析方式等等。 在前端页面中添加表单元素,包括file类型的input…

    Java 2023年5月19日
    00
  • asp.net内置对象 Response对象使用介绍

    ASP.NET是一个基于.NET Framework的Web应用程序开发框架。在ASP.NET的开发过程中,Response对象是一个非常重要的内置对象,它提供了很多方法和属性来管理HTTP响应。本文将介绍如何利用Response对象来控制HTTP响应的内容和属性。 Response对象的作用 在ASP.NET的Web应用程序中,Response对象用于向客…

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