SSM-网站后台管理系统制作(4)---Ajax前后端交互
前提:Ajax本身就为前后端交互服务的,实现功能:用户输入信息,实时判断用户的情况,这也是现在登录界面普遍流行的做法。前端js通过注释识别Controller层,该层查询返回,和之前Google验证码有点像。
学习教程:http://how2j.cn/
菜鸟教程
Ajax的jar包下载:https://files.cnblogs.com/files/meditation5201314/ajax.rar
Html也要引入css与js
<link rel="stylesheet" href="${pwd}/bootstrap/bootstrap.min.css">
<link rel="stylesheet" href="${pwd}/bootstrap/bootstrapValidator.min.css">
<script src="${pwd}/bootstrap/jquery-1.10.2.min.js"></script>
<script src="${pwd}/bootstrap/bootstrap.min.js"></script>
<script src="${pwd}/bootstrap/bootstrapValidator.min.js"></script>
然后检查标签用div包起来即可
<div class="form-group">
<input type="text" id ="username" name="username"
autofocus="autofocus">
</div>
上面都有讲解,

前端Ajax代码
</script>
<script language="javascript" type="text/javascript">
$(function(){
$('form').bootstrapValidator({
message: 'This value is not valid',
feedbackIcons: {
valid:'glyphicon glyphicon-ok',
invalid:'glyphicon glyphicon-remove',
validating:'glyphicon glyphicon-refresh'
},
fields: {
loginname: {
message:'账号验证失败',
validators: {
remote: {
url: '${ctx}/checkUserExist.do',
message: '该账号已存在,请重新输入',
delay: 500,
type: 'POST'
},
notEmpty: {
message: '账号不能为空'
},
threshold:6,
regexp: {
regexp: /^[a-zA-Z0-9_]+$/,
message: '账号只能包含字母数字下划线'
}
}
},
username: {
message:'用户名验证失败',
validators: {
notEmpty: {
message: '用户名不能为空'
},
stringLength: {
min: 6,
max: 15,
message: '用户名长度在6~15位之间'
},
threshold:6,
regexp: {
regexp: /^[a-zA-Z0-9_]+$/,
message: '用户名只能包含字母数字下划线'
}
}
},
password: {
message:'密码验证失败',
validators: {
notEmpty: {
message: '密码不能为空'
},
stringLength: {
min: 6,
max: 15,
message: '密码长度在6~12位之间'
},
regexp: {
regexp: /^[a-zA-Z0-9_]+$/,
message: '密码只能包含字母数字下划线'
}
}
},
rpassword: {
message:'确认密码验证失败',
validators: {
notEmpty: {
message: '确认密码不能为空'
},
identical: {
field: 'password',
message: '两次输入密码不一致'
}
}
}
}
});
});
</script>
分析:form表单为需要提交的表单,loginname里面的url为 Controller层里面的注释,这也是SSM的特性之一。其余的password,username的检查只需要在form表单下<input name ="所给的属性">,然后就可以进行检查。
Controller层:可以看到,该注释和上述的url一样即可,只检查登录名是否重复,一般为了双重保险,后台数据库设计的时候也可以将loginname设置成unique。
@RequestMapping("/checkUserExist.do")
@ResponseBody
public String checkUserExist(String loginname) {
boolean flag = false;
String stringJson = null;
int count = hrmService.findUserByLoginname(loginname);
if(count == 0) { flag = true; }
Map<String, Boolean> map = new HashMap<String, Boolean>();
map.put("valid", flag);
ObjectMapper mapper = new ObjectMapper();
ObjectMapper objectMapper = new ObjectMapper();
try {
stringJson = objectMapper.writeValueAsString(map);
} catch (Exception e) { e.printStackTrace(); }
return stringJson;
}
到此,基本的登录ajax登录检查功能就弄完了。
拓展: 今天学了一个新东西。就是ssm刚加载主界面的时候,文章是如何被加载出来的。之前是直接拦截用户进入后台,所以用户需要向后台发送请求,但是现在博客平台一开始就需要向后台发送请求
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- 立即请求/desk -->
<jsp:forward page="res/index"/>
之前是index.jsp直接跳到所要界面,但是刚加载的时候就需要SSM的注释功能:res/index这里也是对应Controller层中的注释,然后Controller层处理, return "想要的界面",这里也算自己对SSM框架不太了解的原因吧。QAQ,好好学习,天天向上。。
SSM-网站后台管理系统制作(4)---Ajax前后端交互的更多相关文章
- thinkphp+jquery+ajax前后端交互注册验证
thinkphp+jquery+ajax前后端交互注册验证,界面如下 register.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1. ...
- JSON(及其在ajax前后端交互的过程)小识
一. json介绍 json是一种轻量级的数据交换格式,规则很简单: 并列的数据之间用逗号(,)分隔: 映射用冒号(:)表示: 并列数据的集合(数组)用方括号([])表示: 映射的集合(对象)用大括号 ...
- ajax前后端交互原理(1)
1.Node.js简介 1.1.前后台数据交互流程 在web开发中,我们经常听说前端和后台,他们分别是做什么具体工作的呢?他们怎样交互的呢?我们得把这些基础的问题都搞明白了,才有一个大致的学习方向,首 ...
- ajax前后端交互原理(6)
6.XMLHttpRequest对象 XMLHttpRequest 是一个 API,它为客户端提供了在客户端和服务器之间传输数据的功能.它提供了一个通过 URL 来获取数据的简单方式,并且不会使整个页 ...
- ajax前后端交互原理(5)
5.ajax简介 5.1.什么是ajax Asynchronous JavaScript and XML ,异步的javascript和XML 5.2.使用ajax有什么用 数据交互,可以从服务器获取 ...
- ajax前后端交互原理(3)
3.HTTP服务器 3.3.相关前置知识 1 什么是url? 统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址.互联网上的每个文件都有一个唯一的UR ...
- Ajax前后端交互——后端接收前端页面变量
核心代码: app.py from flask import Flask, render_template, request, jsonify app = Flask(__name__) @app.r ...
- AJAX 前后端交互 验证信息是否正确
1.前段: function checkPtCode(obj){ $.ajax({ type: "post", url: "xxxxxxx", data: {& ...
- ajax前后端交互原理(7)
7.ajax函数封装 7.1.实例引入 需求: 每秒钟请求一次服务器 获取到数据 实现: 把ajax进行封装 <!DOCTYPE html> <html> <head&g ...
随机推荐
- centos7上修改lv逻辑卷的大小
author:headsen chen date: 2019-03-18 15:24:22 1,查看 [root@localhost mnt]# df -h Filesystem Size Used ...
- [LeetCode] Bomb Enemy 炸弹人
Given a 2D grid, each cell is either a wall 'W', an enemy 'E' or empty '0' (the number zero), return ...
- Java课程寒假之开发记账本软件(网页版)之三
一.实现基础功能之一(查询)(补) 在上一篇中解释的不够详细,在本篇中补充一下指定日期查询,其实和查询没有什么区别,就是设置select下拉框来对于日期的起始与结束日期,然后就是一个简单的mysql语 ...
- 将 Entity Framework、LINQ 和 Model-First 用于 Oracle 数据库
目的 本教程介绍如何使用 Entity Framework.语言集成查询 (LINQ),以及如何对 Oracle 数据库使用 Model-First 以生成数据定义语言 (DDL) 脚本. 所需时间 ...
- java学习之路--面试之多线程基础
Java多线程面试问题1. 进程和线程之间有什么不同?一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运行环境是 ...
- 时时监控的rtsp流视频显示在前端与一些css;
不过试了下只兼容IE. <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- python3中报错AttributeError: module 'sys' has no attribute 'setdefaultencoding'
reload(sys) sys.setdefaultencoding("utf-8") f = open('.\\24.novel.txt','rb') str = f.read( ...
- MongoDB数据库去重
查询: db.patents_texts.aggregate([ { $group:{_id:{Patent_num:'$Patent_num',Patent_name:'$Patent_name'} ...
- 转载:MySQL EXPLAIN 命令详解学习
转载自:https://blog.csdn.net/mchdba/article/details/9190771 MySQL EXPLAIN 命令详解 MySQL的EXPLAIN命令用于SQL语句的查 ...
- Codeforces 584E - Anton and Ira - [贪心]
题目链接:https://codeforces.com/contest/584/problem/E 题意: 给两个 $1 \sim n$ 的排列 $p,s$,交换 $p_i,p_j$ 两个元素需要花费 ...