实习课知识整理5:在首页实现登录

项目情景:当我们未登录进入一个购物网站时,这是我们突然想要登录了,我们就可以使用首页上的登录按钮,直接登录

方法1:非常简单

直接将登录的接口放到action属性中,这边登录怎么实现的,可以参考:http://t.csdnimg.cn/Szvp2 

 

方法2:利用ajax实现局部刷新 

在这里的话,我就不用之前写的登录接口了,我重新写了一个,这边用到了DTO类来封装返回的信息 

DTO类

package com.example.shopping.entity;import java.io.Serializable;
import java.util.List;public class ResultDTO<T> implements Serializable {private int code;private String msg;private T data;private List<T> datas;public ResultDTO() {}public ResultDTO(int code, String msg, T data) {this.code = code;this.msg = msg;this.data = data;}public ResultDTO(int code, String msg, List<T> datas) {this.code = code;this.msg = msg;this.datas = datas;}// Getters and setterspublic int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public T getData() {return data;}public void setData(T data) {this.data = data;}public List<T> getDatas() {return datas;}public void setDatas(List<T> datas) {this.datas = datas;}
}

 

因为在之前已经写过登录的通过用户名来查询用户的方法了,这里就可以直接使用了 

html页面代码 

UserService.java接口

    // 登录业务逻辑使用DTO作为返回值ResultDTO<User> loginDTO(User user);

 UserServiceImpl实现类

    @Overridepublic ResultDTO<User> loginDTO(User user) {ResultDTO<User> loginResult = new ResultDTO<>();  // 首先实例化User userByName = userMapper.findUserByName(user.getUserName());if (null == userByName) {loginResult.setMsg("nameError");  /*用户名不存在*/loginResult.setCode(5000);} else {if (userByName.getPassWord().equals(user.getPassWord())) {if (1 == userByName.getState()) {if (1 == userByName.getRole()) {loginResult.setMsg("custom");;  /*普通用户*/loginResult.setCode(2000);loginResult.setData(userByName);} else if (8 == userByName.getRole()) {loginResult.setMsg("itemAdmin");   /*商品管理员*/loginResult.setCode(2000);} else if (9 == userByName.getRole()) {loginResult.setMsg("superAdmin");   /*超级管理员*/loginResult.setCode(2000);} else {loginResult.setMsg("otherError");loginResult.setCode(5000);}} else {loginResult.setMsg("stateError");  /*只有状态为 1 才可以登录*/loginResult.setCode(5000);}} else {loginResult.setMsg("passWordError");  /*密码错误*/loginResult.setCode(5000);}}return loginResult;}

 

 UserController

    // 登录功能的controller, 返回值使用json格式,配合ajax使用,实现局部刷新// http://localhost:8082/project/user/loginIndexDTO@RequestMapping("/loginIndexDTO")@ResponseBodypublic ResultDTO<User> loginIndexDTO(User user) throws Exception{System.out.println(user.toString());return userService.loginDTO(user);}

 

前端使用jQuery编写js文件 

$(function () {$("#btn").click(function () {// 考虑到登录功能完成const username = $("#userName").val();const password = $("#passWord").val();$.ajax({type: 'post',url: 'http://localhost:8082/project/user/loginIndexDTO?userName='+username+'&passWord='+password,  // 需要写上后台接受的地址contentType:'',     // 指定后端接受的类型, 如果后端不需要json格式,可以不填dataType: 'json',   // 指定后端返回前端的数据类型, 建议使用json格式success: function (data) {// ajax回调函数,根据结果,我们进行页面数据的处理console.log("data:",data)if (data.code == 2000){$("#showUserName").text(data.data.userName)$("#showImg").attr("src", data.data.userImage)$("#area1").css("display", "block");$("#area2").css("display", "none");} else {console.log("登录失败,请检查用户名和密码!")}},error: function (err) {console.log("e:",e)},})})})

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

超维空间S2无人机使用说明书——51、使用yolov8进行目标跟踪

引言&#xff1a;为了提高yolo识别的质量&#xff0c;提高了yolo的版本&#xff0c;改用yolov8进行物体识别&#xff0c;同时系统兼容了低版本的yolo&#xff0c;包括基于C的yolov3和yolov4&#xff0c;以及yolov7。 简介&#xff0c;为了提高识别速度&#xff0c;系统采用了G…

大数据----MapReduce实现统计单词

目录 一、简介二、实现单词统计数据准备编程MapReduceJob 三、运行四、结果 一、简介 Hadoop MapReduce 是一个编程框架&#xff0c;它可以轻松地编写应用程序&#xff0c;以可靠的、容错的方式处理大量的数据(数千个节点)。 正如其名&#xff0c;MapReduce 的工作模式主要分…

Python如何将图片转换成字符

PIL(Python Image Library)库是Python平台上一个功能强大的图像处理标准库&#xff0c;支持图像的存储、显示和处理&#xff0c;几乎可以处理所有图片格式&#xff0c;如图像的压缩、裁剪、叠加、添加文字等等。 安装PIL库:pip install pillow from PIL import Image ascii_cha…

Cross-Drone Transformer Network for Robust Single Object Tracking论文阅读笔记

Cross-Drone Transformer Network for Robust Single Object Tracking论文阅读笔记 Abstract 无人机在各种应用中得到了广泛使用&#xff0c;例如航拍和军事安全&#xff0c;这得益于它们与固定摄像机相比的高机动性和广阔视野。多无人机追踪系统可以通过从不同视角收集互补的…

Trinity软件对转录组进行无参比对教程

写在前面 2023年将结束&#xff0c;小杜的生信笔记分享个人学习笔记也有2年的时间。在这2年的时间中&#xff0c;分享算是成为工作、学习和生活中的一部分。自己为了运行和维护社群也算花费大量的时间和精力&#xff0c;自己认为还算满意吧。对于个人来说&#xff0c;自己一直…

vue 使用 html2canvas 截取图片保存

vue 使用 html2canvas 截取图片保存 好久没有写博文了&#xff0c;写够了&#xff0c;没啥想写的了&#xff0c;这个号算是废了&#xff0c;哎&#xff0c;气人啊&#xff01;越来越胖&#xff0c;越来越懒了。 html2canvas 简介 html2canvas是一个JavaScript库&#xff0c;它…

算法与数据结构--特殊有序集的线性时间排序算法

一.计数排序算法 基本思想&#xff1a;统计每个输入元素的个数&#xff0c;然后根据这些计数值重构原数组。 使用范围&#xff1a;需要知道元素大小范围&#xff0c;就是最大值是多少。 【排序算法】计数排序_哔哩哔哩_bilibili 二.基数排序 使用场景&#xff1a;只适用于…

策略模式(组件协作模式)

策略模式&#xff08;组件协作模式&#xff09; 策略模式实例代码 注解 目的 正常情况下&#xff0c;一个类/对象中会包含其所有可能会使用的内外方法&#xff0c;但是一般情况下&#xff0c;这些常使用的类都是由不同的父类继承、组合得来的&#xff0c;来实现代码的复用&…

2022第十二届PostgreSQL中国技术大会-核心PPT资料下载

一、峰会简介 本次大会以“突破•进化•共赢 —— 安全可靠&#xff0c;共建与机遇”为主题&#xff0c;助力中国数据库基础软件可掌控、可研究、可发展、可生产&#xff0c;并推动数据库生态的繁荣与发展。大会为数据库从业者、数据库相关企业、数据库行业及整个IT产业带来崭…

【English】水果单词小小汇总~~

废物研究生&#xff0c;只要不搞科研干啥都是开心的&#xff0c;啊啊啊啊啊科研要命。作为一个水果怪&#xff08;每天不吃水果就要命的那种哈哈哈哈&#xff09;突然发现竟然就知道什么apple、banana、orange&#xff01;惭愧惭愧&#xff0c;正好兴致正浓&#xff0c;来整理一…

Redis源码精读:字符串

文章目录 前言代码位置核心类型SDS结构获取sds字符串的元数据的宏获取字符串长度重新设置sds长度创建字符串感悟最后 前言 Redis中实现了sds&#xff08;simple dynamic string&#xff09;这种字符串&#xff0c;它比c语言标准库的char*字符串更加实用 代码位置 src/sdc.h …

Matlab仿真OOK、2FSK、2PSK、QPSK、4QAM在加性高斯白噪声信道中的误码率与归一化信噪比的关系

本文为学习所用&#xff0c;严禁转载。 本文参考链接 https://zhuanlan.zhihu.com/p/667382398 QPSK代码及高斯白噪声如何产生 https://ww2.mathworks.cn/help/signal/ref/butter.html 滤波器 https://www.python100.com/html/4LEF79KQK398.html 低通滤波器 本实验使用matlab仿…