自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(106)
  • 收藏
  • 关注

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.4.11)

调用原始方法,在方法形参中声明ProceedingJoinPoint joinPoint这个形参,然后调用方法 joinPoint.proceed(),原始方法的返回值用Object类型,第一个*是指返回值,第二个指接口第三个指方法,(..)代表方法的形参任意,这个代表运行com.itheima这个包下所有的接口或类当中所有的方法时,都会运行这段公共代码。一旦进行了AOP程序开发,最终运行的就不再是原始目标对象,而是基于目标对象生成的代理对象。13.3 事务管理-事务进阶-propagation属性。

2025-05-22 18:54:51 246

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.4.10)

Transacyional注解一般放在执行多次数据访问操作的业务方法上。13.2 事务管理-事务进阶-rollbackFor属性。13.3 事务管理-事务进阶-propagation属性。13.1 事务管理-事务回顾-spring事务管理。需要进行事务管理的yml配置。

2025-05-22 18:54:15 278

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.4.9)

response.setContentType(MIME)设置发送到客户端的响应的内容类型,在getWrite()之前可以设置,之后不行,response.getWriter()获取输出流,使用writer(json)将字符串响应给浏览器。在令牌不存在,返回错误信息时,转为JSON调用给的是阿里巴巴的toJSONString,后面设置返回类型,返回信息时,都是用的response的方法。完成Filter、interceptor、异常处理代码实操。12.16 异常处理。

2025-05-21 20:50:22 287

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.4.8)

Tomcat不识别controller程序,但是识别serverlet程序,因为tomcat是一个serverlet容器,springweb中提供了一个serverlet 前端控制器,教DispatcherServlet。登陆操作之后不需要再往下执行,所以方法最后需要加一个return,如果是登录直接放行,因为是请求登录,所以会被放行到登录功能。过滤器链及其执行顺序,一个Filter一个过滤器链,类名排名越靠前(按照ABC这样的顺序),就先执行谁。12.14 登录校验-Interceptor-详解。

2025-05-21 20:49:31 521

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.4.7)

Filter是JavaWeb三大组件,不是SpringBoot提供的,要在SpringBoot里面使用JavaWeb,则需要加上@ServletComponentScan注解。过滤器链及其执行顺序,一个Filter一个过滤器链,类名排名越靠前(按照ABC这样的顺序),就先执行谁。/*代表所有,@WebFilter(urlPatterns = “/*”)代表拦截所有请求。12.10 登录校验-Filter-详解(执行流程-拦截路径)12.11 登录校验-Filter-详解(过滤器链)

2025-05-17 21:01:05 277

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.4.6)

基于Java解析JWT,直接调用Jwts.parser,第一个方法设置密钥;username = #{username},当传入的是一个对象,可以直接用对象里面的属性名,但是#{}里面的值必须与传入的参数一致。简洁是指JWT是一个简单字符串,自包含指的是JWT令牌,看似是一个随机字符串,但是可以根据需要,自定义存储内容。Header是JSON数据格式,原始JSON变成字符串,需要经过base64编码。12.8 登录校验-JWT令牌-登录后下发令牌。先引入依赖,调用api。数字签名确定安全可靠。

2025-05-17 21:00:10 798

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.4.5)

Session存储在服务器端,浏览器第一次请求服务器时,可以在服务器端获取session,session会在服务器端自动创造,session有id,服务器会把id响应给浏览器,其实就是在响应头中增加一个setCookie响应头,浏览器把session存储到本地。获取到会话对象session,需要在方法中声明一个HttpSession session类型的形参,不存在则创建,存在则获取。服务器拿到浏览器请求cookie中的SESSIONID之后,会在里面找对应的id。是端口号,100是ip地址。

2025-05-15 14:45:53 682

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.4.4)

在后续的请求中,浏览器会自动的将cookie携带到服务器端。一切自动化进行的原因是因为cookie是http协议当中所支持的技术,cookie请求头就是给服务器端传递数据,cookie响应头传递服务器端向浏览器发送的cookie数据。Set-cookie响应头返回给浏览器,浏览器自动解析响应头,响应头对应的数据部分,也就是cookie,将cookie存储在浏览器本地,之后再每一次的请求中,都会将浏览器存储对应的cookie值,直接在请求头中,通过cookie携带到服务端。

2025-05-15 14:44:54 290

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.4.3)

Login是登录,是一个业务方法,mapper接口是持久层,是用来操作数据库,所以方法名用login这个业务方法名并不合适,所以可以用getByUsernameAndPassword来作为方法名。逻辑是在controller层,员工管理方法中的查询方法,删除方法等等所有方法都用一个if-else进行校验,登录则使用该方法,不登录则返回错误,进入登录页,其他功能都是这样,但是代码会繁琐。不登录,但是复制登录之后的网址就可以直接跳过登录这一步,但是这是不对的,需要登录校验。12.2 登录校验-概述。

2025-05-12 19:12:51 309

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.4.2)

根据用户名和密码查询员工,查询到了,说明用户名和密码正确,可以登录。对于登录,需要再开一个controller。12.1 基础登录功能。

2025-05-12 19:12:12 111

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.4.1)

但是因为只有后缀一样,所以不能进行自动注入,需要指定前缀,使用@ConfingurationProperties这个注解并通过prefix这个属性来指定前缀,引入之后,会有警告,是因为在配置文件中进行相应配置,引入依赖,这个依赖可以在配置的时候有提示。配置项自动注入,需要保持KEY的属性名一样,需要在文件中加上@Data注解,要将这个类交给IOC容器管理,使其成为IOC容器的Bean对象,所以需要再加上一个注解@Component。11.10 案例-配置文件-yml配置文件。

2025-05-09 19:52:00 307

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.3.31)

和老师给的代码比了一下,是@PutMapping("/emps/{id}"),动态id这里,多加了一个#,变成了/#{id},所以报错了,应该是用法不对。引用外部工具,需要硬编码赋值的多,而且过于分散,不太合适,把赋值写到properties中,并且在工具类中使用@Value(spring里面的)赋值。怀疑是username或者是name重复了,这里可能设置了一个唯一约束,所以将这两项进行修改,成功。Yml格式的配置文件的后缀可以是yml,也可以是yaml,不同配置方式对应不同格式。

2025-05-09 19:51:18 893

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.3.30)

数据查询回显之后,在表单中展示原有的数据,在原有的数据基础上修改员工的基本信息,修改完毕之后点击保存,将修改后的数据提交到服务端,最终修改数据库表中的数据。在接口里面只需要完成一个操作,调用阿里云OSS的工具类,将接收到的文件上传到阿里云OSS对象存储服务中,交给OSS来管理,再将获取到的URL返回给前端。在服务层,需要补充基本信息,也就是更新时间,在Mapper层,使用动态SQL,动态SQL解决多余逗号的问题,把set关键字替换成<set>标签。11.7 案例-修改员工-修改员工。

2025-05-07 22:13:12 612

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.3.29)

接收到上传的文件之后,需要将文件存储,交给阿里云OSS进行管理,需要调用OSS的api完成文件上传,将文件交给阿里云OSS来存储,在阿里云OSS存储中,每一个文件都要归属于某一个存储空间Bucket,所以在上传的时候,需要指定上传存储到哪一个存储空间Bucket当中。怀疑是没有开OSS权限,检查阿里云,访问控制 -> 用户 -> 权限管理 -> 添加权限,添加AliyunOSSFullAccess权限,重新运行代码,再次检查阿里云,上传成功!11.5 案例-文件上传-阿里云OSS-入门。

2025-05-07 22:12:21 510

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.3.28)

运行main方法之后,出现了报错:Process exited with an error: 1 (Exit value: 1)。在阿里云的文件列表里也没有看见上传的图片,说明有问题。11.5 案例-文件上传-阿里云OSS-入门。

2025-04-25 20:21:39 167

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.3.27)

11.5 案例-文件上传-阿里云OSS-入门。

2025-04-25 20:21:06 152

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.3.26)

上传文件代码中,需要根据自己情况修改的点。11.5 案例-文件上传-阿里云OSS-入门。

2025-04-22 20:38:46 157

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.3.25)

文件名后缀解决,找到文件最后一个点的位置,截取点及其后面的字符,得到扩展名。代码实现,找到最后一个点的位置,使用方法originalFilename.lastIndexOf(“.”),括号里面是指定最后一个点的位置,这样就获取到了位置的数值;接下来构建文件名,将UUID和扩展名拼接,直接用+号就可以。使用阿里云的准备工作。Bucket是阿里云OSS中的存储空间,存储空间是用户用于存储对象(0bject,就是文件)的容器,所有的对象都必须隶属于某个存储空间。11.4 案例-文件上传-阿里云OSS-准备。

2025-04-22 20:38:00 455

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.3.24)

代码优化,上传同名文件时,会被覆盖,问题在于是使用原始文件名直接存储的,为了保证不被覆盖,应该构造唯一的文件名,采用uuid解决。在输出日志代码处打了一个断点,看服务端接收到的数据,在上传文件的保存地址中,可以看到,有三个临时文件(.tmp),分别对应三个提交的表单项。放行之后,再看,三个临时文件不见了,只要文件上传请求响应完毕之后,临时文件会被自动删除,所以除了上传文件,还需要保存文件。通过postman完成文件上传,网址正常写,但是选择Body中的from-data,在下面指定表单项的内容。

2025-04-20 20:35:53 331

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.3.23)

普通的表单项以前怎么接收,现在就怎么接收,就是通过传参的方式接收。提交上来的文件,用MultipartFile这个api来接收,但是需要保持表单上的名称和方法形参上的名称保持一致;表单上的名字和方法形参的名字不一样,可以用注解@RequestParam来进行绑定,其中指定的value属性是前端传递的参数名。文件上传的前端页面的代码需要放到springboot项目的static里面,也就是resource文件夹下面的static文件夹里面。11.2 案例-文件上传-简介。

2025-04-20 20:33:58 294

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.3.22)

把delete方法注释掉之后,程序没有报错了,应该是在DeptContrller和EmpController里面都有一个@DeleteMapping("/#{id}"),所以bean容器就不知道谁是谁,按道理不应该出现这个问题,因为在前面已经用@RequestMapping("/emps")规定了前面的网址,也不知道是不是版本和这个注解的用法发生了变化。找不到依赖项 'org.projectlombok:lombok:1.18.30'11.1 案例-员工管理-新增员工。

2025-03-22 21:15:53 790

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.3.22)

RequeBody注解来通过实体类封装Json格式的数据。复习:@PostMapping注解用来接收Post方式的数据。11.1 案例-员工管理-新增员工。

2025-03-22 21:15:15 92

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.3.21)

Foreach标签中,collection代表要遍历的集合,item代表遍历出来的每一个元素的名字,separator代表分割符,open代表前面拼接什么,close代表后面拼接什么。前端中有两个删除按键,一个是删除员工,一个是批量删除,我们只需要将删除员工作为特殊的批量删除,就是只删除一个,开发一个接口就行。用id in ()来批量删除,使用动态sql标签<foreach>来遍历。一个xml文件里只要写一个<mapper>标签。Id使用list接收。

2025-03-21 21:11:09 319

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.3.21)

插件会自动的获取到要执行的sql语句,将要执行的sql语句换成count(*),自动执行这条sql语句,还会对该sql语句进行改造,在后面加上limit关键字,而limit的两个参数,PageHelper会自动根据传递上来的两个参数,来计算起始索引核每一页展示的记录数,之后就获得了分页查询的数据,将分页查询的数据封装到Page<Emp>对象中,最终获取Page对象中封装的分页查询结果。对于map层的修改,要使用where进行筛选,但是查询条件是动态的,所以要使用动态sql,动态sql使用xml文件来定义。

2025-03-21 21:10:03 473

原创 学习笔记:黑马程序员JavaWeb开发教程(2025.3.17)

出现报错:Process exited with an error: 1 (Exit value: 1),点击exec那一行,出现错误原因:Command execution failed.怀疑是没有开OSS权限,检查阿里云,访问控制 -> 用户 -> 权限管理 -> 添加权限,添加AliyunOSSFullAccess权限,重新运行代码,再次检查阿里云,上传成功!11.5 案例-文件上传-阿里云OSS-入门。

2025-03-17 16:09:56 393

原创 黑马JavaWeb课程的TliasWeb项目

写黑马JavaWeb课程的TliasWeb项目出现了问题,之前都没有问题,也不知道是不是隔了一个月再打开有问题了,或者是装了docker出现了环境问题。

2025-02-07 14:42:32 173

原创 学习笔记:黑马程序员JavaWeb开发教程(2024.11.30)

在mysql中,通过limit来实现分页。

2024-11-30 18:00:00 279

原创 学习笔记:黑马程序员JavaWeb开发教程(2024.11.29)

如何接收来自前端的数据: 接收到json数据之后,利用@RequestBody注解,将前端响应回来的json格式的数据封装到实体类中。发现路径中都有/depts,可以将每个方法对应请求路径中的/depts抽取到类上注解的@RequestMapping上。对代码中Controller层的优化。

2024-11-29 18:00:00 178

原创 学习笔记:黑马程序员JavaWeb开发教程(2024.11.28)

前面学过的,有点忘了,@PathVariable来获取请求路径参数(前面的知识:后端:使用{…}来标识该路径参数,需要使用@PathVariable获取路径参数),下面的代码中,@PathVariable来绑定和路径的id绑定。接口文档:阅读接口文档,在接口文档中规定了当前接口的请求路径、请求方式、在请求的时候传递的参数、最终需要响应回去的数据。在前端中id和序号不一样,差点以为删除失败了,要删的没删,不要删的删了。思路分析:分析要实现这个功能,具体的流程,该怎么实现。接口开发:要遵守开发文档。

2024-11-28 18:00:00 261

原创 学习笔记:黑马程序员JavaWeb开发教程(2024.11.29)

发现编辑部门和新增部门的ui是一样的,因此怀疑前端没有做更新部门的部分,也就是说当使用编辑的时候,实际走的是和新增一样的请求,输入的参数也是一样的,所以在前后端联调时,看起来就是编辑功能变成了新增功能。检查发现,在DeptController的add()方法中,使用接收参数的注解是@PathVariable,但是@PathVariable的作用是将URL中的占位符参数绑定到控制器处理方法的参数中,但是这里传的是Json格式的数据。前后端联调链接: http://localhost:90。

2024-11-28 11:14:37 460 2

原创 学习笔记:黑马程序员JavaWeb开发教程(2024.11.28)

发现路径中都有/depts,可以将每个方法对应请求路径中的/depts抽取到类上注解的@RequestMapping(这个注解是为了简化路径请求新加的)上。如何接收来自前端的数据: 接收到json数据之后,利用@RequestBody注解,将前端响应回来的json格式的数据封装到实体类中。对代码中Controller层的优化。

2024-11-28 11:11:45 470

原创 Tlias智能辅助学习系统-部门管理

包括查询、新增、删除、修改功能。

2024-11-28 11:06:16 222

原创 学习笔记:黑马程序员JavaWeb开发教程(2024.11.27)

看了网上的经验贴,有说到目录问题,题主的目录是把controller文件和application文件放到了两个不同的文件中,之后尝试了,将application文件放到和controller文件夹一个目录下,controller文件和application文件放到一个目录下,均失败。怀疑还是目录结构的错,也就是说,回到了问题一,直接重新在在外面写了一个application类,测试成功。

2024-11-27 18:00:00 226

原创 学习笔记:黑马程序员JavaWeb开发教程(2024.11.26)

同时在前面我们学过依赖注入,@Controller注解是用于控制反转(用于Controller层),也就是将对象的控制权交给容器,再和@Autowied配合,完成依赖注入,实现分层解耦。写代码的时候,IDEA联想到的是XSlf4j,不是Slf4j,因为没有在pom.Xml文件中加上lombok的依赖,当然也有可能是因为没有导入包,因为输入@Slf4j的时候爆红了,后面用art+enter解决,就是自动的导入包,就好了。是因为多态,父类引用指向子类对象,父类(接口)的引用就能够直接调用子类(实现类)的方法。

2024-11-26 18:00:00 466

原创 学习笔记:黑马程序员JavaWeb开发教程(2024.11.25)

因为请求文档中要求,请求方式必须是GET,但是目前的代码使用所有的请求方式都是可以的,所以,要在@GetMapping上加上method=RequestMethod.GET,其中,RequestMethod是应该枚举类,里面有所有的请求方式。但是这样又太麻烦了,所有可以使用@RequestMapping1的衍生注解,@GetMapping,再在里面加上请求路径就可以了,代表使用该路径,且请求方式是GET。这里面select…部分,在代码中重复的很多,如果要改,就非常麻烦,也就是复用性差。

2024-11-25 18:00:00 474

原创 学习笔记:黑马程序员JavaWeb开发教程(2024.11.19)

第一点,因为配置文件必须放在resources目录下,又要保持同包同名,所以我们应该在resources目录下创建一个和Mapper所在包名名字一样的目录,把配置文件放在里面。这里有点不太理解,相同包应该是指位置一样的包,但是这个最开始的位置一个是java一个是resources,这里指的名字一样,应该只是包的名字,最开始的位置应该不算。Resources中只能创建directory不能创建包,directory要创建分层结构,之间分隔应该用/而不是.,自己觉得可以参考文件夹的地址。

2024-11-19 18:00:00 200

原创 学习笔记:黑马程序员JavaWeb开发教程(2024.11.18)

需要模糊查询,根据要求,我们需要在关键词前后都加上%,但是我们不能使用‘%#{内容}%’的形式,因为#{内容}最终会变成?不能放在‘’之中,老师给出的解决方法是使用${}的方式,就是不用预编译。自己的问题是,为什么不能把%张%都写到#{}中去,因为#{}只能写输入的内容,%是本来就写好的。但是使用${}会存在性能低,sql注入的问题,因此采用concat拼接函数来解决。9.8 Mybatis-基础操作-查询(条件查询)@param注解的作用。

2024-11-18 20:50:55 307

原创 学习笔记:黑马程序员JavaWeb开发教程(2024.11.9)

为了提高效率,MySQL会将优化编译过的sql缓存起来,缓存就是一块内存区域,就是用来存储数据的,下次执行sql语句的时候,会先检查缓存,看缓存当中有没有编译好的sql语句,有则直接执行,没有则走流程。在编写的delete方法中,是没有返回值的,但是实际上是有的,就是返回方法影响语句的条数,其他crud语句也是有一样的返回值(int类型),但是一般不需要返回值。在测试过程中,出现了像deptId这样没有封装到的属性,原因是因为,实体类中的属性名和数据库表中的属性名不一致。

2024-11-09 19:46:44 510

原创 学习笔记:黑马程序员JavaWeb开发教程(2024.11.8)

Mybatis是在Java中编写sql语句,将sql语句发送到数据库执行在springboot中配置Mybatis,需要对springboot的默认配置文件application.properties中配置数据库的四要素:驱动类的全类名、数据库连接的url、数据库的用户名、数据库连接的密码。

2024-11-08 21:58:12 1486

原创 学习笔记:黑马程序员JavaWeb开发教程(2024.11.7)

5.9 分层解耦-三层架构 三层架构:

2024-11-07 21:14:26 232

电子密码锁-6位密码1 (2).zip

功能介绍: 1.采用AT24C02芯片可以实现存储的密码掉电保存。密码为6位,只有在开锁时密码可更改,更改时要输入两遍确认; 2.采用矩阵按键输入、1602液晶显示、继电器模拟开锁,有开锁指示灯。继电器有常开常闭触点可外接电磁锁等负载; 3.输入密码错误会提示错误次数,当次数大于3时,密码锁定; 4.忘记密码时可按密码还原键,默认密码111111; 矩阵键盘按键说明 1 2 3 确认键 4 5 6 手动关闭锁 7 8 9 修改密码 还原 0 删除键 X

2024-10-02

STM32矩阵电子密码锁

STM32矩阵电子密码锁

2024-10-02

基于STM32F103C8T6电子密码锁

基于STM32F103C8T6电子密码锁

2024-10-02

单片机课设程序,用的是51单片机

进入信息社会以来,随着人们生活水平和自身防范意识的提高,个人财产安全和人身安全的问题也越来越受到人们的重视,人们对于锁具的要求也越来越高,拥有一把能够有效保证居民财产安全和人身安全的锁具也越发重要。对于用户私人财产安全的问题的需求,基于单片机的电子密码锁应运而生。 本课设需要完成基于单片机的电子密码锁设计,同时根据设计要求,该电子密码锁需要完成以下功能:  通过矩阵键盘设置密码  矩阵键盘输入密码在LCD1602屏幕上显示,密码正确则启动继电器实现开锁  密码不正确将提示重新输入,三次输入错误报警并锁定键盘3分钟  输入密码过程中可选择重新输入密码  断电保存数据  可以休眠和唤醒 同时笔者根据对日常生活的观察,在已有功能的基础上进行改进,增加或修改功能,使密码锁更便于使用:  手动关锁  还原密码 在进行课设的过程中,不仅仅只是单纯的实现目标药球。在过程中我们需要用到单片机,微机原理等知识。通过课设的设计与完成来巩固之前所学的有关知识,同时将所学知识运用于实践,走出课本。

2024-10-02

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除