java ajax

1.ajax定义:异步刷新技术

2.ajax语法

 3.ajax实战

在不需要点击刷新按钮时达到局部刷新显示,如下图所示

 

 

 

 

 步骤一:创建工程/包/js

 步骤二:数据库/表创建

步骤三:实体类

步骤四:UserDao

package cn.kgc.dao;

import cn.kgc.entity.User;

public interface UserDao {
    //1.判断用户名称是否存在
    public User findByUserName(String username);

    //2.通过用户名和密码判断是否正确
    public  User findUser(User user);
}

步骤五:UserDaoImpl

package cn.kgc.dao;

import cn.kgc.entity.User;
import cn.kgc.util.BaseDao;

import java.sql.SQLException;

public class UserDaoImpl extends BaseDao implements UserDao {
    public User findByUserName(String username) {
        User user = null;
        rs = super.executeQuery("select * from t_user where username = ?",
                new Object[]{username});
        try {
            while (rs.next()){
                user = new User();
                user.setId(rs.getInt("id"));
                user.setUsername(rs.getString("username"));
                user.setUserpwd(rs.getString("userpwd"));
            }

        } catch (SQLException e) {
            throw new RuntimeException(e);
        } finally {
            super.closeConn();
        }
        return user;
    }

    public User findUser(User u) {
        User user = null;
        rs = super.executeQuery("select * from t_user where username = ? and userpwd=?",
                new Object[]{u.getUsername(),u.getUserpwd()});
        try {
            while (rs.next()){
                user = new User();
                user.setId(rs.getInt("id"));
                user.setUsername(rs.getString("username"));
                user.setUserpwd(rs.getString("userpwd"));
            }

        } catch (SQLException e) {
            throw new RuntimeException(e);
        } finally {
            super.closeConn();
        }
        return user;
    }
}

步骤六:UserService

package cn.kgc.service;

import cn.kgc.entity.User;

public interface UserService {
    public String validate(User user);
}

步骤七:UserServiceImpl

package cn.kgc.service;

import cn.kgc.dao.UserDaoImpl;
import cn.kgc.entity.User;

public class UserServiceImpl implements UserService{
    UserDaoImpl userDao = new UserDaoImpl();
    public String validate(User user) {
        String message="";

        //判断如果输入用户的名称存在
        if (user.getUsername()!=null &&!"".equals(user.getUsername())){
            //通过输入的用户名称 判断是否存在于数据库中
            User u = userDao.findByUserName(user.getUsername());
            //如果数据库中不存在当前的用户名称,则返回操作码1000
            if (u==null){
                message = "1000";
            }else {
                User u2 = userDao.findUser(user);
                //如果数据库中用户名或密码错误,则返回操作码2000
                if (u2==null){
                    message = "2000";
                }
            }
        }
        return message;
    }
}

步骤八:UserServlet

package cn.kgc.servlet;

import cn.kgc.entity.User;
import cn.kgc.service.UserServiceImpl;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;

public class UserServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String action = request.getParameter("action");
        UserServiceImpl userService = new UserServiceImpl();
        if (action.equals("validate")){
            String username = request.getParameter("username");
            String userpwd = request.getParameter("userpwd");
            User user = new User();
            user.setUsername(username);
            user.setUserpwd(userpwd);
            String validate = userService.validate(user);
            //以流的形式将操作码返回到客户端
            response.getWriter().write(validate);
        }
    }
}

步骤9:login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
    <script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
    <script type="text/javascript">
        function validate(){
            var flag = true;
            var username = $("[name=\"username\"]").val();
            var userpwd = $("[name=\"userpwd\"]").val();
            $.ajax({
                url:"UserServlet?action=validate",
                type:"post" ,
                data: {"username":username,"userpwd":userpwd},
                dataType: "text",
                async:false,
                success:function (data){
                    $("#message1").empty();
                    $("#message2").empty();
                    if (data=="1000"){
                        $("#message1").text("用户名不存在")
                        flag = false;
                    }else if (data=="2000"){
                        $("#message2").text("用户名或密码错误")
                        flag = false;
                    }
                },
                error:function (){}
            })
            return flag;
        }

        function validateLogin() {
            var username = $("[name=\"username\"]").val();
            var userpwd = $("[name=\"userpwd\"]").val();
            if (username==""){
                alert("用户名不能为空");
                return false;
            }
            if (userpwd==""){
                alert("用户密码不能为空");
                return false;
            }
            var flag = validate();
            if (flag){
                window.location.href="index.jsp";
            }
        }
    </script>
</head>
<body>
    <table>
        <tr>
            <td>用户名称</td>
            <td><input type="text" name="username" onblur="validate()"><span id="message1" style="color: red"></span></td>
        </tr>
        <tr>
            <td>用户密码</td>
            <td><input type="text" name="userpwd" onblur="validate()" ><span id="message2" style="color: red"></span></td>
        </tr>
        <tr>
            <td><input id="loginButton" type="button" value="登录" onclick="validateLogin()"></td>
        </tr>
    </table>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/37538.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux下JDK版本与安装版本不一致问题

目录 一. &#x1f981; 前言二. &#x1f981; 操作流程三. &#x1f981; 总结四. &#x1f981; Happy Ending 一. &#x1f981; 前言 最近重新安装了centos7.9,针对以前遇到的Java版本不一致的情况, 提出了另一种方法,该方法简单易行,容易理解。 二. &#x1f981; 操作…

银行安全用电监管平台可行性研究及解决方案

2017年4月26日&#xff0c;国务院安全生产委员会印发《国务院安全生产委员会关于开展电气火灾综合治理工作的通知》&#xff08;安委〔2017〕4号&#xff09;&#xff0c;强调用三年时间综合治理电气火灾工作&#xff0c;提高社会单位发现和处置消防电气安全隐患能力&#xff0…

vue2 element-ui el-cascader地址省市区分开单独写

使用 npm 或 yarn 安装 element-china-area-data 包&#xff1a; npm install element-china-area-data 在你的代码中导入 element-china-area-data import { regionData } from element-china-area-data let that; 完整代码 <template><div><el-form ref&quo…

【http-server】http-server的安装、前端使用http-server启动本地dist文件服务:

文章目录 一、http-server 简介:二、安装node.js:[https://nodejs.org/en](https://nodejs.org/en)三、安装http-server:[https://www.npmjs.com/package/http-server](https://www.npmjs.com/package/http-server)四、开启服务&#xff1a;五、http-server参数&#xff1a;【1…

Redis 优惠卷秒杀(二) 异步秒杀、基于Stream的消息队列处理

目录 基于Stream的消息队列 Redis优化秒杀 登录头 改进秒杀业务&#xff0c;调高并发性能 Redis消息队列实现异步秒杀 ​编辑基于List结构模拟消息队列 基于PuSub的消息队列 ​编辑 基于Stream的消息队列 Redis消息队列 基于Stream的消息队列 Redis优化秒杀 登录头 改…

LeetCode 142.环形链表II

142. 环形链表 II - 力扣&#xff08;LeetCode&#xff09; /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/ class Solution { public:ListNode *detectCycle(ListNode …

【微信小程序创作之路】- 小程序窗口整体配置(导航栏、标题)

【微信小程序创作之路】- 小程序窗口导航栏配置 第五章 微信小程序窗口导航栏配置 文章目录 【微信小程序创作之路】- 小程序窗口导航栏配置前言一、入口文件的配置二、页面配置三、全局默认窗口配置1.navigationBarTitleText&#xff1a;导航栏标题文字2.navigationBarBackgr…

【UE4 C++】02-编译、生成当前的C++程序

一、编译 编译快捷键&#xff1a; CtrlF7 如果不使用快捷键&#xff0c;可以点击顶部菜单栏中的下拉按钮&#xff0c;然后选择自定义 点击添加命令 点击“生成”&#xff0c;选择编译“”&#xff0c;点击“确定” 此时可以看到顶部菜单栏多了一个用于编译的按钮 二、生成 鼠…

TypeScript学习笔记

TypeScript学习笔记 1、运行环境 1.1、初始化 npm init -y npm i -D webpack webpack-cli webpack-dev-server typescript ts-loader html-webpack-plugin1.2、webpack.config.js const path require(path) const htmlWebpackPlugin require("html-webpack-plugin&…

Todo-List案例版本五

安装库npm i pubsub-js 消息的订阅与发布 src/App.vue <template><div class"app"><h1>{{ msg }}</h1><School/><Student/></div> </template><script> import Student from ./components/Student import …

【unity之IMGUI实践】单例模式管理数据存储【二】

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…

安卓UI:SearchView

目录 一、SearchView介绍 二、常用方法 &#xff08;一&#xff09;、监听器&#xff1a; (二)、常用方法&#xff1a; (三)、其他常用方法 三、例子&#xff1a; MainActivity2 &#xff1a; ChatListAdapter &#xff1a; item_people_view: activity_main2: 运行结果…

Java支付SDK接口远程调试 - 支付宝沙箱环境【公网地址调试】

文章目录 1.测试环境2.本地配置3. 内网穿透3.1 下载安装cpolar内网穿透3.2 创建隧道 4. 测试公网访问5. 配置固定二级子域名5.1 保留一个二级子域名5.2 配置二级子域名 6. 使用固定二级子域名进行访问 转载自cpolar极点云文章&#xff1a;Java支付宝沙箱环境支付&#xff0c;SD…

详解 ➾【FTP服务工作原理及连接模式】

详解 ➾【FTP服务工作原理及连接模式】 &#x1f53b; 前言&#x1f53b; 一、FTP服务简介&#x1f6a5; 1.1 FTP工作原理&#x1f6a5; 1.2 匿名用户访问的产生&#x1f6a5; 1.3 FTP服务的连接模式&#x1f6a5; 1.4 几种流行的FTP服务器软件 &#x1f53b; 总结—温故知新 &…

QTranslator语言转换

//appname的格式 例如通常为&#xff08;QQ为应用的名称&#xff09; QQ_en.ts或QQ_zh_CN.ts QString qmName"zh_CN"; QTranslator trans ; QString qm QString(":/translatoin/qt/appname_%1.qm").arg(qmName); auto ret trans.load(qm); Q_UNUSED(ret)…

WebSocket理解

WebSocket理解 WebSocket定义与HTTP关系相同点:不同点&#xff1a;联系总体过程 HTTP问题长轮询Ajax轮询 WebSocket特点 WebSocket 定义 本质上是TCP的协议 持久化的协议 实现了浏览器和服务器的全双工通信&#xff0c;能更好的节省服务器资源和带宽 与HTTP关系 相同点: 基于…

小白到运维工程师自学之路 第五十三集 (rsync+inotify备份)

一、概述 Rsync是一个用于在不同计算机之间同步文件和文件夹的工具。它可以在本地计算机和远程服务器之间复制、更新和备份文件。rsync通过比较源和目标文件的差异来最小化传输的数据量&#xff0c;从而提供高效的文件同步功能。 Inotify是Linux内核提供的一种机制&#xff0…

web中引入live2d的moc3模型

文章目录 前言下载官方sdk文件使用ide编译项目&#xff08;vsCode&#xff09;项目初始化使用vsCode项目树介绍使用live server运行index页面 演示导入自己的模型并显示modelDir文件resources文件夾案例模型修改modelDir然後重新打包項目運行 前言 先跟着官方sdk调试一遍&…

【状态估计】基于卡尔曼滤波器和扩展卡尔曼滤波器用于 INS/GNSS 导航、目标跟踪和地形参考导航研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Windows VScode如何配置与使用git?

当我们在VScode中编写代码后&#xff0c;需要提交到git仓库时&#xff0c;但是我们又不想切换到git的命令行窗口&#xff0c;我们可以在VScode中配置git&#xff0c;然后就可以很方便快捷的把代码提交到仓库中。 1. 官网下载安装Git命令行工具 根据自己的电脑系统&#xff0c…