博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Springboot WEB项目前端表单使用AJAX发送数据到后台,后台查询数据库实现根据用户名更改密码并登陆功能!
阅读量:3959 次
发布时间:2019-05-24

本文共 3870 字,大约阅读时间需要 12 分钟。

Springboot WEB项目实现用户密码更改并成功登陆功能

一,介绍此次实现

介绍一下我们这次实现的功能,从标题就能知道,前端表单提交数据通过ajax发送数据到后台,后台接受到数据并查询用户是否存在,如果用户存在给予修改密码的权限,如果不存在返回无法修改信息给用户,简单的来说就是对数据库中的数据进行修改的问题,只不过通过前后端交互进行修改,SQL实现更改语句为update 表名 set 字段……,这里我通过Spring JPA自定义语句为 update UserInfo set password=:password where userName=:username

二,回顾WEB项目的创建,登陆实现,注册实现

1,如何快速搭建一个Springboot Web项目:
2,如何通过ajax发送数据实现后台数据库查询数据,并进行登录功能:
3,如何通过ajax发送数据实现后台判断用户存在,并进行注册功能:

三,实现更改密码的展示,先看效果再看具体代码实现

1,此时我们的数据库User_Info表中数据为这样的,如下图
在这里插入图片描述
2,验证表中存在数据能进行密码的更改,此时输入用户名:king 密码:999,我们把密码改为666
在这里插入图片描述
控制台打印
在这里插入图片描述

3,验证表中不存在数据不能进行密码的更改,此时输入用户名:andy 密码:122

在这里插入图片描述
同时控制台打印
在这里插入图片描述
四,前后端代码展示

1,前端的HTML ,js 代码,和后端的pojo实体类,就不展示了和上篇博客中注册时一样的,这里提供上篇博客的链接,需要可以去看哈,

2,dao层

package com.springboot.springboot.dao;import com.springboot.springboot.pojo.UserInfo;import org.springframework.data.jpa.repository.JpaRepository;import org.springframework.data.jpa.repository.Modifying;import org.springframework.data.jpa.repository.Query;import org.springframework.stereotype.Repository;import org.springframework.transaction.annotation.Transactional;import java.util.List;@Repositorypublic interface UserDao extends JpaRepository
{
//定义通过用户名密码查询数据 public UserInfo findByUserNameAndPassword(String username,String password); //定义通过用户查询 public List
findByUserName(String username); //定义根据用户名更改密码 @Modifying//自动清除实体里保存的数据。 @Transactional//解用于提交事务,若没有带上这句,会报事务异常提示。 @Query(value = "update UserInfo set password=:password where userName=:username") public void updateOne(String username,String password);}

3,controller

package com.springboot.springboot.controller;import com.springboot.springboot.dao.UserDao;import com.springboot.springboot.pojo.UserInfo;import com.springboot.springboot.service.UserServiceImpl;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import java.util.List;import java.util.Map;import com.alibaba.fastjson.JSON;import sun.plugin2.message.JavaReplyMessage;/** * @author ganxiang * IDE      IntelliJ IDEA * @project_name and filename Springboot UserController * @date 2020/04/08 0008 14:15 */@Controllerpublic class UserController {
@Autowired UserDao userDao; @RequestMapping("/userBackPwd") @ResponseBody public String userBackPwd(HttpServletRequest request,Map
map,HttpSession session){
//1,获取ajax传递过来的数据 String name =request.getParameter("username"); String password =request.getParameter("password"); String pwd =request.getParameter("pwd"); System.out.println(name+":"+password+":"+pwd); //2,根据用户名查询用户 List
list =userService.getUserName(name); System.out.println("根据用户名查询是否存在"+list); //3,通过判断用户是否为空,返回数据给前端 if (list.isEmpty()){
//3.1如果为空返回用户不存在无法修改 map.put("status","no"); map.put("message","查询得知,用户不存在"); System.out.println("查询得知,用户不存在"); } else {
//3.2如果用户存在则进行修改,并返回修改信息给前端 //3.2修改的前提是前后输入两次的密码相同 if (password.equals(pwd)){
//3.2.1修改的前后输入两次的密码相同 session.setAttribute("userInfo", name); //修改语句 userDao.updateOne(name,pwd); map.put("status","ok"); map.put("message","用户更改成功"); System.out.println(name+"用户更改密码成功,更改密码为:"+pwd); } else {
//3.2.2修改前后输入两次的密码不同 map.put("status","no"); map.put("message","前后输入的密码不一致,更改失败"); System.out.println("前后输入的密码不一致,更改失败"); } } return JSON.toJSONString(map); }}

到此完成用户的密码修改问题。

转载地址:http://deqzi.baihongyu.com/

你可能感兴趣的文章
wdcpv3升级到v3.2后,多PHP版本共存的安装方法
查看>>
centos tar压缩与解压缩
查看>>
Centos 7防火墙firewalld/iptables开放80端口
查看>>
centos 7 yum源文件配置详解及163 yum源更换
查看>>
PHP统计当前网站的访问人数,访问信息,被多少次访问。
查看>>
Windows10远程报错CredSSP加密oracle修正
查看>>
Windows server 2016 设置多用户登陆
查看>>
偶然发现的面包屑
查看>>
每天自动升级你的Centos
查看>>
WDCP v3版本的小工具集
查看>>
CentOS 7 下挂载NTFS文件系统磁盘并设置开机自动挂载
查看>>
Mysql修改最大连接数&重启
查看>>
华为交换机划分vlan
查看>>
CentOS 6.6 搭建Zabbix 3.4.8 过程
查看>>
make: *** No targets specified and no makefile found. Stop.解决方法
查看>>
安装zabbix 3.4版本编译报错configure: error: Unable to use libevent (libevent check failed) 解决办法
查看>>
一行代码更改密码
查看>>
非插件实现cookie版Typecho文章阅读次数统计功能
查看>>
非插件实现Typecho语法高亮
查看>>
windows 下 netsh 实现 端口映射(端口转发)
查看>>