jquery ajax无刷新跳转,jQuery+Ajax实现无刷新操作

2023-11-08

使用jQuery实现Ajax操作       想要实现Ajax页面无刷新效果,但是直接利用Ajax代码实在有些麻烦,所以就想用jQuery实现。jQuery很好的封装了Ajax的核心对象XMLHTTPRequest。所以用起来非常方便。

首先,创建服务器端代码,这里用Servlet实现服务器端的数据处理;代码如下:

protected void doPost(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

// 设置编码格式

resp.setContentType("text/html;charset=UTF-8");

// 创建输出对象

PrintWriter out = resp.getWriter();

// 得到请求参数

String name = req.getParameter("uname");

// 判断

if (name == null || name.length() == 0)

{

out.println("用户名不能为空!");

}

else

{

// 判断

if (name.equals("cheng"))

{

out.println("用户名["+ name +"]已存在!请使用其他用户名!");

}

else

{

out.println("用户名[" + name + "]尚未存在!您可以注册!");

}

}

}

然后,创建JSP页面,要使用jQuery,必须在页面之中引入jQuery库,也就是一个Javascript文件,另外还需引入自定义的Javascript文件,如下:

而JSP页面只需要一个文本框、一个普通按钮和一个空白DIV层即可,该DIV用于显示服务器端返回的处理结果;按钮的单击事件触发verify()方法。如下:

用户名:

注意:Ajax方式下不需要使用表单来进行数据提交,因此页面中不用写

标签。

接下来,创建一个verify.js文件,在该文件中创建verify()方法,用来实现Ajax的无刷新效果,这是该示例中最为重要的一步。想要使用jQuery实现Ajax分为以下四步:

· 获取文本框中的内容;

· 将文本框中的内容发送给服务器端的Servlet;

· 接收服务器端返回的数据;

· 将服务器端返回的数据动态地显示在JSP页面上。

针对于第一步,首先通过jQuery获得对象,并取得对象的值,如下:

// 取得文本框对象,通过$()获取的所有对象都是jQuery对象

var jQueryObject = $("#uname");

// 获取文本框中的值

var userName = jQueryObject.val();

通过jQuery中的$()函数获得页面的节点,该函数得到的是一个jQuery对象,然后通过jQuery中的val()方法取得节点的值,也就是文本框中的内容。

针对于第二步,我们使用jQuery的get()方法来发送数据到服务器端,如下:

$.get("TestServlet?uname=" + userName,null,callback);    该方法返回一个XMLHttpRequest对象,该方法提供三个参数,第一个是请求的服务器端的URL,第二个参数是待发送的参数,一般可以在第一个URL中直接带上参数,所以一般该参数为null,第三个参数是服务器端成功处理完成数据之后的一个回调函数。

针对于第三步,就应该创建一个回调函数,用来处理服务器端返回的数据,如下:

// 回调函数

function callback(data)

{

}

该回调函数有一个参数,该参数就是客户端返回的数据。

针对于第四步,再次利用jQueyr的选择器函数得到DIV层,将返回的数据显示在该层之上,如下:

function callback(data)

{

/**

* 第三步,接收服务器端返回的数据

*/

// 将服务器端返回的数据动态的显示在页面上

var resultObject = $("#result");

resultObject.html(data);

}

利用jQuery的html()方法将数据动态地显示到DIV层之中。

现在我们对以上的代码进行优化,我们用两句代码就可以实现以上所有代码的功能,这就是jQuery的强大之处之一。在verify.js文件之中的verify()方法也可以写成下面的形式:

$.get("TestServlet?uname=" +$("#uname").val(),null,function(data){

$("#result").html(data);

})

再为大家分享一个,下面是“无刷新登录”的例子,采用Ashx+jQuery Ajax实现。

1、后台实例代码 ashx文件(可替换为从数据库中读取)

public void ProcessRequest(HttpContext context)

{

context.Response.ContentType = "text/plain";

//context.Response.Write("Hello World");

string name = context.Request.Params["name"].ToString().Trim();

if ("china".Equals(name))

{

context.Response.Write("1");//1标志login success

}

else

{

context.Response.Write("0");//0标志login fail

}

}

2、前台实例代码 aspx文件

$(function() {

$("#test").live("click", function() {

//alert(0);

$.ajax({

type: 'POST',

url: 'Handler1.ashx',

data: { "name": $("#name").val() },

success: function(data) {

if (1 == data)

alert('login success');

else

alert('login fail');

}

});

});

});

分别在前台aspx页面和后台ashx页面中输入如上代码,就实现了一个超级简单的Ajax登录,很简单吧?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jquery ajax无刷新跳转,jQuery+Ajax实现无刷新操作 的相关文章

  • 4个快速查找Linux历史命令的技巧(history)

    history 法1 光标上下键 法2 ctrl r 输入某条命令的关键字 找出来对应的命令 按右光标键 法3 数字 执行历史命令中第N条命令 法4 字符串 搜索历史命令中最近一个以xxxx字符开头的命令 例如 vim
  • C练题笔记之:Leetcode-307. 区域和检索 - 数组可修改

    题目 给你一个数组 nums 请你完成两类查询 其中一类查询要求 更新 数组 nums 下标对应的值 另一类查询要求返回数组 nums 中索引 left 和索引 right 之间 包含 的nums元素的 和 其中 left lt right
  • Rust- 多线程

    Rust s standard library provides support for native threads with its std thread module allowing you to run code in paral
  • CGI的编译和执行

    g DDOCUMENT ROOT var www test o cgi bin suphp cgi install suphp cpp lcrypt chmod 4711 cgi bin suphp cgi service httpd re
  • 简要介绍

    神经辐射场 NeRF 原理 挑战与未来展望 1 背景介绍 随着深度学习和计算机图形学的不断发展 人工智能和图形学领域的交叉研究越来越多地受到关注 神经辐射场 NeRF 是其中一个极具潜力的研究方向 它结合了计算机图形学和深度学习 旨在通过神
  • 一秒钟变身明星:用swapface软件体验星光熠熠的感觉!

    你是否曾经想过能够用电脑或手机来实时地将自己的面部与其他人或角色进行交换 你是否曾经想过能够用一款简单易用的软件来制作出有趣或惊艳的面部交换直播 视频或图片 如果你的答案是肯定的 那么你一定要试试swapface软件 这是一款由Swapfa
  • 广元市2021年度专业技术人员公需科目 自动考试python selenium自动化

    def sou a for q in range 5 10次 browser get a time sleep 3 browser switch to default content bo browser find element by i
  • keil调试warning和error

    STM32 逻辑错误 1 若要用引脚重映射 一定要把该引脚原来的功能DISABLE 不然永远都没有想要的结果 例如 将TIM4 CH1映射到PB4 PB4原功能是JRST 因此需要调用 GPIO PinRemapConfig GPIO Pa
  • Xshell配置ssh免密码登录-密钥公钥(Public key)

    为什么80 的码农都做不了架构师 gt gt gt 1 简介 ssh登录提供两种认证方式 口令 密码 认证方式和密钥认证方式 其中口令 密码 认证方式是我们最常用的一种 这里介绍密钥认证方式登录到linux unix的方法 使用密钥登录分为
  • OpenLDAP源码安装及配置管理

    OpenLDAP源码安装 下载OpenLDAP源码 http www openldap org software download ftp ftp openldap org pub OpenLDAP openldap release tgz
  • Linux(centos8)用户管理

    添加用户 添加用户 useradd user 查看用户 id user 修改用户密码 需要root权限 passwd user 可以直接修改当前用户密码 passwd 查看用户密码保存文件 cat etc passwd 在这里插入代码片 查
  • MDK Error #550解决方案

    Error 550 Requested device STM32F302R8Tx STMicroelectronics not found 这个报错是因为我们没有安装pack包 解决方法如下 5条消息 Keil STM32F3xx DFP
  • JavaScript 逆向调试技巧

    前段时间尝试对某音的 PC 端进行了逆向 目前已经全部逆向出来了 在这里总结下一些调试技巧和总结 本文不会涉及任何的详细代码 仅仅是作为技术来讨论 一 加密分析 在这里以账户下的视频列表为例 可以看到 在 dy 中 加密的 JS 是 web
  • 快捷给UE4项目改名

    很多时候我们对一个工程随意地起了一个随意的名字 这很常见 如果我们想要后面修改整个项目的名字 似乎应该是一件简单的事情 但是这个过程充满了陷阱 如果做错了 您可能会无意间破坏您的项目 手动的做当然是一件非常困难的事情 尤其是对于C 的项目
  • 积分商城游戏化运营?积分游戏应该如何正确设置

    积分商城是一种可以通用获得积分在其中获得礼品的线上商城 这种商城可以起到拉取新用户的作用 帮助企业以及商家带来更多的新用户 因此 一些企业和商家在进行营销的时候都选择这种方法 一般情况下 企业和商家搭建了自己的积分商城之后 就会设置一些积分
  • js 数组过滤操作 过滤两组数组相同的 id

    过滤两组数组相同的 id const arr1 id 145 firstname dave lastname jones id 135 firstname mike lastname williams id 148 firstname bo
  • Zookeeper 的下载安装

    文章目录 一 下载 二 解压 1 在解压后的 bin 目录下 新增两个文件夹 2 在 conf 下 将 zoo sample cfg 复制一份 重命名为 zoo cfg 3 修改 zoo cfg 三 测试 1 启动服务端 2 启动客户端 3
  • Git下载和Git常用命令

    下载git 要下载和安装 Git 请按照以下步骤进行操作 1 访问官方网站 打开 Git 官方网站 https git scm com 2 下载 Git 安装程序 3 选择适用于你的操作系统的下载链接 Git 支持多个操作系统 包括 Win
  • SpringFramework核心技术一(IOC:基于Java的容器配置)

    Bean和 Configuration Spring新的Java配置支持中的中心构件是 Configuration注释类和 Bean注释方法 一 基本概念 Bean和 Configuration Spring新的Java配置支持中的中心构件

随机推荐

  • Nginx下同域部署多个Vue项目(history路由模式),报404、500错误

    主要内容 一 环境 二 问题描述 三 问题解决 1 修改vue项目中的vue config js文件 2 修改Nginx的nginx conf配置文件 3 Nginx目录结构 一 环境 系统 windows nginx 1 20 2 nod
  • 整理 qt opengl,自己的基础框架 —— 绘制一个彩色三角形

    网上很多都是QGLWidget例子 而cube 虽然说明文档上说再简单不过了 但是对于一个0基础的来说 还是像看天书一样 opengl的例子还有一个hellgl2 看着比较简单 但是那个log生成的代码使用了QVector3D显得有点复杂
  • laravel 操作mysql数据库的三种方式

    一 使用DB门面操作 需要引入 DB类 Illuminate Support Facades DB 查询数据库记录 DB select SQL语句 DB select select from stu from 以数组形式返回结果 增加数据库
  • 使整个网页变黑白色(灰色)的特效代码

    全站CSS代码 html filter progid DXImageTransform Microsoft BasicImage grayscale 1 使用方法 这段代码可以变网页为黑白 将代码加到CSS最顶端就可以实现素装 建议全国站长
  • 到现在才理解高斯分布的均值与方差为什么是0和1

    问题的来源 如图所示 为什么标准正态分布的期望值0 方差为1呢 如果是针对x变量 期望值为0可以理解 那么方差为1怎么理解呢 显然不可能为1 如果针对y变量 显然所有值都大于0 怎么会期望值会大于0呢 先看数学期望的定义 期望值本身是对所有
  • 网络性能评估

    在Linux中常见的网络性能指标如下 l 带宽 表示链路的最大传输速率 单位是b s 比特 秒 在位服务器选网卡时 带宽就是最核心的参考指标 常用的带宽有1000M 10G 40G 100G等 网络带宽测试 测试的不是带宽 而是网络吞吐量
  • pycharm激活(JetBrains IDEA 系列产品通用xx方法(license server))

    http xclient info a f0b9738a 36fd 8a97 a966 0d3db497092d html 1 打开激活窗口 2 选择 Activate new license with License server 用li
  • es6 对象的解构用法

    const forms username 王五 password paassword gender 0 result token 1212dsfdasdasdfadasdasdasd id ididididiidid const usern
  • Unity StrangeIOC傻瓜式使用教程(dispatch用法)

    公司用的框架是StrangeIOC 开始完全不知道怎么用 打断点也跟踪不到代码 后来网上各种寻找详解 但是说的都过于高大上 全是专业名词 依赖注入等 完全不适合我这种新人小白理解 最后在自己的各种实践下 总算摸透了其中dispatch用法
  • all query identities do not appear in gallery

    问题描述 在reid strong baslline使用Market 1501数据集训练reid模型后 使用自己的数据集仿照Market 1501制作相同格式的数据集 训练时报如下错误 查看原因 Martet 1501中Query和gall
  • python中安装完virtualenv,创建虚拟环境时报错'virtualenv' 不是内部或外部命令,也不是可运行的程序

    创建虚拟环境包时会报 virtualenv 不是内部或外部命令 也不是可运行的程序 错误 首先排除是否是单词拼写错误 在网上查了好久都没有自己出现的那种情况 可以成功安装 通过pip list 查询时显示安装成功 但会有两行黄色字 大致意思
  • gradle各版本下载地址

    http blog csdn net wangqjpp article details 52218314 gradle各版本下载地址 http services gradle org distributions 以前都是手动下载gradle
  • C语言的整型溢出问题

    整型溢出有点老生常谈了 bla bla bla 但似乎没有引起多少人的重视 整型溢出会有可能导致缓冲区溢出 缓冲区溢出会导致各种黑客攻击 比如最近OpenSSL的heartbleed事件 就是一个buffer overread的事件 在这里
  • wx.getUserProfile使用方法

    1 单独使用 wx getUserProfile desc 展示用户信息 声明获取用户个人信息后的用途 后续会展示在弹窗中 请谨慎填写 success res gt console log res this setData userInfo
  • SymPy Tutorial(译)

    小记 2020 2 26 本文是翻译 官方SymPy手册指南 只是为了方便而自己翻译 前言 本教程假设读者已经了解Python编程语言的基础知识 如果您还没有掌握 建议学习官方的Python教程 本教程假设您具有良好的数学背景 大多数例子需
  • 学习pyqt (二)————信号/槽&主次界面&主次线程编程经验总结

    今天准备总结一下pyqt编写界面的经验 这样以后遇到同样问题就可以查看并且很快回忆起来 环境搭建 经过一周的研究 我发现使用pyqt编写界面最快的方式还是eric pycharm 使用eric6和pycharm同时打开你正在编写的程序 需要
  • Python数据分析(Pandas)

    pandas基础数据结构 有以下两种 Series 与array很像也和list相同 Series能保存不同的种数据类型 包括字符串 bool值 数字等等 DataFrame 二维的表格型数组结构 以下内容以DataFrame为主 Seri
  • 介绍 TensorFlow 的基本概念和使用场景

    TensorFlow 是一个开源的机器学习框架 由 Google 开发 它的核心是张量 tensor 计算 用于构建神经网络等深度学习模型 以下是 TensorFlow 的基本概念和使用场景 张量 Tensor TensorFlow 中的计
  • 随机产生六位数密码

    function randStr len 6 format ALL switch format case ALL chars ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234
  • jquery ajax无刷新跳转,jQuery+Ajax实现无刷新操作

    使用jQuery实现Ajax操作 想要实现Ajax页面无刷新效果 但是直接利用Ajax代码实在有些麻烦 所以就想用jQuery实现 jQuery很好的封装了Ajax的核心对象XMLHTTPRequest 所以用起来非常方便 首先 创建服务器