当前位置: 首页 > news >正文

微头条项目实战:通过postman测试登录验证请求

1、CrosFilter

package com.csdn.headline.filters;
import jakarta.servlet.*;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
public class CrosFilter implements Filter {/*** 过滤器方法,用于处理HTTP请求* @param servletRequest  Servlet请求对象* @param servletResponse Servlet响应对象* @param filterChain     过滤器链* @throws IOException      如果发生IO异常* @throws ServletException 如果发生Servlet异常*/@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {// 将响应对象转换为HttpServletResponse类型HttpServletResponse response = (HttpServletResponse) servletResponse;// 设置Access-Control-Allow-Origin头部字段为"*",表示允许所有来源访问response.setHeader("Access-Control-Allow-Origin", "*");// 设置Access-Control-Allow-Methods头部字段为"POST, GET, OPTIONS, DELETE, HEAD",表示支持的请求方法response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, HEAD");// 设置Access-Control-Max-Age头部字段为"3600",表示预检请求的最大缓存时间response.setHeader("Access-Control-Max-Age", "3600");// 设置Access-Control-Allow-Headers头部字段为"access-control-allow-origin, authority, content-type, version-info, X-Requested-With",表示支持的请求头response.setHeader("Access-Control-Allow-Headers", "access-control-allow-origin, authority, content-type, version-info, X-Requested-With");// 调用过滤器链的doFilter方法,将请求和响应对象传入filterChain.doFilter(servletRequest, servletResponse);}
}

2、NewsUserController

package com.csdn.headline.controller;
import com.csdn.headline.common.Result;
import com.csdn.headline.common.ResultCodeEnum;
import com.csdn.headline.pojo.NewsUser;
import com.csdn.headline.service.NewsUserService;
import com.csdn.headline.util.MD5Util;
import com.csdn.mymvc.annotation.*;
@Controller
@RequestMapping("/user")
public class NewsUserController {@Autowireprivate NewsUserService newsUserService;/*** 登录方法* @param newsUser 用户信息* @return 登录结果*/@PostMapping("/login")public Result<NewsUser> login(@RequestBody NewsUser newsUser) {// 根据用户名从数据库中获取用户信息NewsUser newsUserFromDB = newsUserService.getNewsUserByUserName(newsUser.getUsername());// 如果数据库中没有找到对应用户名的用户信息,则返回登录失败的结果if (newsUserFromDB == null) {return Result.build(null, ResultCodeEnum.USERNAME_ERROR);} else {// 获取数据库中用户密码String pwdFromDB = newsUserFromDB.getUserPwd();// 对输入的密码进行加密String yourPwd = MD5Util.encrypt(newsUser.getUserPwd());// 如果加密后的密码与数据库中的密码不一致,则返回登录失败的结果if (!yourPwd.equals(pwdFromDB)) {return Result.build(null, ResultCodeEnum.PASSWORD_ERROR);} else {// 清空数据库中用户的密码,完成登录并返回用户信息newsUserFromDB.setUserPwd(null);return Result.ok(newsUserFromDB);}}}
}

3、NewsUserServiceImpl

package com.csdn.headline.service.impl;
import com.csdn.headline.dao.NewsUserDao;
import com.csdn.headline.pojo.NewsUser;
import com.csdn.headline.service.NewsUserService;
import com.csdn.mymvc.annotation.Autowire;
import com.csdn.mymvc.annotation.Service;
@Service
public class NewsUserServiceImpl implements NewsUserService {@Autowireprivate NewsUserDao newsUserDao;/*** 根据用户名获取对应的NewsUser对象* @param userName 用户名* @return 对应的NewsUser对象*/@Overridepublic NewsUser getNewsUserByUserName(String userName) {return newsUserDao.getNewsUserByUserName(userName);}
}

4、NewsUserDaoImpl

package com.csdn.headline.dao.impl;
import com.csdn.headline.dao.NewsUserDao;
import com.csdn.headline.pojo.NewsUser;
import com.csdn.mymvc.annotation.Repository;
import com.csdn.mymvc.dao.BaseDao;
@Repository
public class NewsUserDaoImpl extends BaseDao<NewsUser> implements NewsUserDao {@Overridepublic NewsUser getNewsUserByUserName(String userName) {// 根据用户名查询对应的NewsUser对象String sql = "select uid,username,user_pwd as userPwd,nick_name as nickName from news_user where username =?";return load(sql, userName);}
}

 

相关文章:

微头条项目实战:通过postman测试登录验证请求

1、CrosFilter package com.csdn.headline.filters; import jakarta.servlet.*; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; public class CrosFilter implements Filter {/*** 过滤器方法&#xff0c;用于处理HTTP请求* param servletReq…...

ARCGIS SERVER WMS、WFS服务添加过滤条件

我们知道geoserver中的wms&#xff0c;wfs过滤参数为cql_filter。比如过滤字段“mc”为"恒宇花园"的数据: cql_filtermc‘恒宇花园 但是arcgis server有所不同。具体可以看下它的标准&#xff1a;使用 WMS 请求中的 layerDefs 参数过滤要素—文档 | ArcGIS Enterpris…...

2013年108计网

第33题 在 OSI 参考模型中, 下列功能需由应用层的相邻层实现的是()A. 对话管理B. 数据格式转换C. 路由选择D. 可靠数据传输 很显然&#xff0c;题目所问的应用层的相邻层是表示层。该层实现与数据表示相关的功能。选项a中的对话管理属于会话层。选项c中的路由选择属于网络层。…...

【数据结构】单链表OJ题(一)

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 文章目录 前言一、移除链表元素二、寻找链表中间结点三、输出链表倒数第k个结点四、反转单链表五…...

2023年云计算发展趋势浅析

​​​​​​​ 云计算的概念 云计算是一种通过互联网提供计算资源和服务的模式。它允许用户通过网络访问和使用共享的计算资源&#xff0c;而无需拥有或管理这些资源的物理设备。云计算的核心理念是将计算能力、存储资源和应用程序提供给用户&#xff0c;以便随时随地根据需要…...

[极客大挑战 2019]Http1

打开题目 没有发现什么&#xff0c;我们查看源代码 在这里我们发现了提示 访问一下页面得到 提示说不能来自于https://Sycsecret.buuoj.cn&#xff0c;我们尝试访问一下这个url 发现访问不了 我们bp抓包一下 伪造个referer头 referer:https://Sycsecret.buuoj.cn 发包过去…...

C 语言 for循环

C 语言 for循环 在本教程中&#xff0c;您将借助示例学习在C语言编程中创建for循环。 在编程中&#xff0c;循环用于重复代码块&#xff0c;直到满足指定条件为止。 C语言编程具有三种循环类型&#xff1a; for 循环while 循环do… while 循环 我们将在本教程中学习for循环…...

浅谈数据结构之链表

链表是一种灵活的数据结构&#xff0c;有单向链表、双向链表和循环链表等多种形式。在本文中&#xff0c;我们将深入探讨单向链表、双向链表、循环链表的定义、Java实现方式、使用场景&#xff0c;同时比较它们的不同之处。我们还会介绍链表与队列之间的区别。 单向链表 定义…...

封装一个 虚拟列表渲染 组件

组件代码 <template><div ref"list" class"infinite-list-container" scroll"scrollEvent($event)"><div class"infinite-list-phantom" :style"{ height: listHeight px }"></div><div class…...

Spring中@Bean标注的方法是如何创建对象呢?

Bean 标注的方法如何创建对象呢&#xff1f; 参考文章&#xff1a;https://blog.csdn.net/qq_35971258/article/details/128241353 下边只讲一下 Bean 注解标注的方法&#xff0c;是如何去进行创建 bean&#xff0c;以及流程是怎样的&#xff0c;如果需要看源码具体执行流程&a…...

伦敦金股票代码是什么?

伦敦金是跟踪实时的现货黄金价格走势的差价合约交易&#xff0c;它的代码一般是LLG、GOLD&#xff0c;但也有一些货币交易平台会显示为XAU。伦敦金不是股票交易&#xff0c;因此没有四位数或六位数的股票代码&#xff0c;但伦敦金交易品种单一&#xff0c;投资者不用在数千支股…...

【环境装配】Anaconda在启动时闪现黑框,闪几次后仍能正常使用,解决黑框问题

anaconda闪黑框这个问题遇到好久了&#xff0c;也没找到相关资料来解决&#xff0c;今天做了两个更新&#xff0c;刚好可以不闪黑框了&#xff0c;记录一下。 更新anaconda 在界面右上角的位置点击更新&#xff0c;更新完后再打开时只闪现两个黑框了&#xff0c;之前好像有五…...

【Python】Python爬虫使用代理IP的实现

前言 在爬虫的过程中&#xff0c;我们经常会遇到需要使用代理IP的情况。比如&#xff0c;针对目标网站的反爬机制&#xff0c;需要通过使用代理IP来规避风险。因此&#xff0c;本文主要介绍如何在Python爬虫中使用代理IP。 一、代理IP的作用 代理IP&#xff0c;顾名思义&…...

盘点U-Mail邮件系统安全设计

在当今社会&#xff0c;电子邮件已经成企业沟通和信息传递重要的手段之一&#xff0c;是企业办公中不可或缺的一部分。但是由于企业邮件服务器端口对外开放、企业邮件安全管理能力不足、邮件内容敏感性高等特点&#xff0c;电子邮件也成为了网络攻击者进行网络钓鱼、恶意软件传…...

Webpack--动态 import 原理及源码分析

前言 在平时的开发中&#xff0c;我们经常使用 import()实现代码分割和懒加载。在低版本的浏览器中并不支持动态 import()&#xff0c;那 webpack 是如何实现 import() polyfill 的&#xff1f; 原理分析 我们先来看看下面的 demo function component() {const btn docume…...

创新无处不在的便利体验——基于智能视频和语音技术的安防监控系统EasyCVR

随着科技的迅猛发展&#xff0c;基于智能视频和语音技术的EasyCVR智能安防监控系统正以惊人的速度改变我们的生活。EasyCVR通过结合先进的视频分析、人工智能和大数据技术&#xff0c;为用户提供了更加智能、便利的安全保护体验&#xff0c;大大提升了安全性和便利性。本文将介…...

强化IP地址管理措施:确保网络安全与高效性

IP地址管理是网络安全和性能管理的关键组成部分。有效的IP地址管理可以帮助企业确保网络的可用性、安全性和高效性。本文将介绍一些强化IP地址管理的关键措施&#xff0c;以帮助企业提高其网络的安全性和效率。 1. IP地址规划 良好的IP地址规划是强化IP地址管理的基础。它涉及…...

Power Automate-创建审批流

提前在SharePoint上创建好对应的表 在创建中选择自动化云端流 选择当创建项时触发 选择站点和列表&#xff0c;再点击添加新步骤 搜索审批&#xff0c;点击进入 操作里的选项区别&#xff1a; 1&#xff09;创建审批&#xff1a;创建一个审批任务 2&#xff09;等待审批&…...

商越科技:渗透测试保障平台安全,推动线上采购高效运转

商越科技是数字化采购解决方案提供商&#xff0c;在同赛道企业中始终保持前列。商越科技通过自主研发的智能采购中台、SaaS应用及运营服务等为企业搭建专属的互联网采购平台&#xff0c;帮助企业实现采购数字化以及智能化转型&#xff0c;提高工作效率、降低采购成本。 打造数字…...

Java10新增特性

特性列表 Java 10是Java的一个主要版本更新&#xff0c;引入了许多新功能和改进。以下是一些Java 10的新增特性&#xff1a; 局部变量类型推断&#xff1a;Java 10引入了局部变量类型推断&#xff0c;允许开发者使用关键字"var"来声明局部变量&#xff0c;而无需指定…...

统计学习与不确定性量化在AI可靠性中的应用

1. 统计学习&#xff1a;AI系统可靠性的理论基石在2014年的ImageNet竞赛中&#xff0c;一个看似简单的实验震惊了整个AI社区——研究者们发现&#xff0c;只需对输入图像添加人眼无法察觉的微小扰动&#xff0c;就能让当时最先进的图像分类模型产生完全错误的预测。这个现象后来…...

如何免费解锁WeMod专业版功能:完整教程与实战指南

如何免费解锁WeMod专业版功能&#xff1a;完整教程与实战指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 还在为WeMod专业版的高昂订阅费而烦恼吗&a…...

golang如何实现项目错误码规范_golang项目错误码规范实现指南

...

一文读懂 MQTT:物联网时代最流行的消息传递协议

📢 作者留言:上一期讲了 OPC UA,那是工厂内部的"普通话"。但数据要上云、要和 APP 通讯、要被大数据平台采集——这时候 OPC UA 就不够用了。MQTT 才是那个让数据"飞上云端"的存在。而且这玩意儿简单得离谱,你看完这篇文章,10 分钟就能搭一个自己的物…...

K8s+Docker在智能灌溉系统中的轻量化部署,为什么73%的县域农业平台半年内完成容器迁移?

第一章&#xff1a;K8sDocker轻量化部署在智能灌溉系统中的战略价值在边缘计算与农业物联网深度融合的背景下&#xff0c;智能灌溉系统正从单机控制向分布式协同演进。传统嵌入式方案面临固件升级困难、多厂商设备兼容性差、算法模型迭代滞后等瓶颈&#xff0c;而 Kubernetes 与…...

寄存器置零:为何 xor 胜出而不是 sub?

微软开发博客导航 微软开发博客包含开发者相关、技术相关、编程语言相关、.NET 相关、平台开发相关、数据开发相关等多方面内容。开发者相关包括面向开发者的微软、Visual Studio、Visual Studio Code 等&#xff1b;技术相关有 DirectX、微软代理框架&#xff1b;编程语言相关…...

第 6 篇 Agent Skills 完全指南:从入门到进阶,手把手教你打造 Claude Skills

⚠️ Skills 过于火热,让我们也了解下。领导.skill、同事.skill 😁 Skills 概述 首先,我们需要了解下 Agent Skills 与 Claude Skills。 Agent Skills Agent Skills 是一种简单、开放的标准/规范,用于赋予 AI Agent 新的能力和专业知识。由 Anthropic 主导,在 GitHub …...

定制开发 vs 模板小程序

一、模板小程序现成成品&#xff0c;一键开通、上线快、初期价格低。功能固定无法深度修改&#xff0c;界面、流程、逻辑不能自定义。多为按年付费、账号租用&#xff0c;不含源码&#xff0c;版权不归自己。同质化严重&#xff0c;同行界面一模一样&#xff0c;无品牌差异化。…...

深度学习如何革新药物发现:从细胞图像到AI模型

1. 深度学习在药物发现中的革命性应用药物研发领域正经历一场由深度学习技术驱动的范式变革。传统药物研发平均需要14年时间和数十亿美元投入&#xff0c;而成功率却不足10%。这种"高投入、低产出"的困境主要源于生物系统的极端复杂性——人体包含约37万亿个细胞&…...

TranslucentTB启动失败?3步解决Microsoft.UI.Xaml.2.8缺失问题终极指南

TranslucentTB启动失败&#xff1f;3步解决Microsoft.UI.Xaml.2.8缺失问题终极指南 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB Trans…...