- 博客(144)
- 收藏
- 关注
原创 spider-flow初步使用
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-10-05 01:47:15 18484 20
原创 Springboot整合Shiro框架入门
Springboot中集成Shiro框架1、快速开始demo2、Springboot集成Shiro2.1、环境搭建2.2、shiro的拦截2.3、shiro的认证2.4、整合mybatis2.5、shiro进行授权2.6、shiro整合thymeleaf1、快速开始demo来到shiro的官网:shiro官方网站:下载官方在git仓库上提供的源码,下载后解压:官方提供了在多种场景下使用的demo,等一下会用到sample里面的东西。下面直接按官方推荐的10分钟入门demo进行测试。创建一
2021-09-25 21:32:46 1778 3
原创 Shiro入门
Shiro入门1、前提2、Shiro简介3、Shiro的功能4、Shiro架构4.1、从外部看4.2、从内部看5、快速开始demo1、前提本篇内容算是记录,是在观看了其他一些视频教程的基础上写的,我们每个人都可以是学习者,看到好的东西,跟着学习,然后记录,再进行归纳总结,最终成为自己的一部分。2、Shiro简介Apache Shiro是Java的一个安全(权限)框架。Shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境。Shiro可以完成:认证、授权
2021-09-20 19:56:16 1166
原创 前端页面中的全选和反选
在前端html页面的数据列表展示中,基本都是在table中进行数据展示的,从数据库中查询到的每条记录,基本对应着table中的一个tr行记录。经常有那种全选和反选的功能,如下:想要实现的效果是:勾选全选框,下面所有行记录的复选框也自动勾选,取消全选框,下面的复选框也全部取消。并且逐个勾选行记录的复选框时,如果没有勾选全部行记录,则上面的全选框是未勾选状态,如果全部勾选了,那么全选框是勾选状态。主要还是在JS中实现。所有代码如下:(1)实体类public class User { priva
2021-07-11 13:38:06 2101
原创 java将字符串生成图片
java将字符串保存为图片因为最近接触到的需求是要将指定的字符串内容保存为图片,我知道肯定要用awt相关的东西,但是以前没有接触过awt,所以只能去网上学习相关的东西和找有关的资料,好在最后可以解决,直接上代码:/** * @Description 通用工具类 * @ClassName CommonUtil * @Author yanchengzhi * @date 2021.06.22 21:19 */public final class CommonUtil { /*
2021-06-27 20:37:44 2141 1
原创 JS中查询数组指定元素的个数
在JS中,有时我们需要查询某个数组中指定元素的个数,并没有方法可以直接统计指定元素个数的,我们可以借助JS数组提供的filter()方法来间接实现。先来看看这个方法,代码如下:<script> var myArrays = new Array(); for(var i=1;i<=10;i++) { myArrays.push(i); } console.log(myArrays); // filter方法过滤,返回数组,并不会影响原数组 var newArrays
2021-06-27 20:03:49 16371
原创 JS中的定时器函数
JS中的定时器函数1、setTimeout()方法2、clearTimeout()方法3、setInterval()方法4、clearInterval()方法有时候希望代码不是马上执行,而是在一个特定的时间间隔后执行,或者是每隔一段时间后执行,这在java中可以用定时任务来实现,同样的在前端的JS中,也可以通过Window对象提供的方法来实现。1、setTimeout()方法实际上,这是Window对象提供的方法,这里只说最常见的用法。代码如下:<!DOCTYPE html><h
2021-06-27 19:31:20 4120 1
原创 单选按钮、复选框、下拉框的回显
单选按钮、复选框、下拉框的回显1、单选按钮radio的回显2、复选框checkbox的回显3、下拉框select的option回显在前端页面中,经常需要根据需要来进行信息的回显,如果是普通的文本,那么用input框进行回显好就好了,有时会有单选按钮radio、复选框checkbox、下拉框select和option,需要根据特定的情况来自动选中单选按钮,自动勾选复选框,自动设置好下拉框的option等。其实主要是在html的js代码,弄过好几次了,老是忘记,所以在这里记录一下。1、单选按钮radio的回
2021-06-20 22:24:05 8091 1
原创 mysql中替换字段的部分内容
如果想替换表中所有记录的某一个字段的指定字符串内容,可以使用mysql提供的replace()函数来实现。表记录如下:我想将address字段的湖北这部分内容替换成拼音hubei,那么sql语句如下:update user set address = replace(address,'湖北','hubei');执行后的结果:可以看到替换是成功的。再将email字段的qq邮箱全部替换为163邮箱,那么同理,sql语句:update user set email = replace(email,
2021-06-20 16:07:15 4463
原创 jsp中判断List空和非空
这个非常简单,只是长时间不用jsp,有些东西忘了,所以这里单独记录一下。判断为空使用empty,判断非空使用not empty,如下: <div id="auth_schools"> <span>已授权学校:</span> <c:if test="${not empty requestScope.authSchools}"> <c:forEach items="${requestScope.a
2021-06-14 18:42:59 1610
原创 物理删除和逻辑删除
物理删除和逻辑删除1、物理删除2、逻辑删除以前一直就以为数据库中的删除就是指delete语句(纯小白的认知),现在知道数据库中的删除主要有物理删除和逻辑删除,物理删除是从数据表中真的将记录剔除掉,不会再保留,无法再查询到,也就是通过delete语句删除。而逻辑删除并不会真的从表中剔除数据,而是使用一个标记字段,进行逻辑删除时只需更新这个标记字段的值就行了,查询时附带这个字段值作为限制就可以达到删除的目的。1、物理删除delete from people where id = 13;执行后的表:
2021-06-14 18:34:29 4273 2
原创 jsp中发送Ajax请求及Servlet中响应
jsp页面发送Ajax请求,和html中其实一样,jsp代码如下:<%-- Created by IntelliJ IDEA. User: 17605 Date: 2021/6/6 Time: 19:10 To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %&g
2021-06-14 18:15:56 3528
原创 一个Servlet处理多个请求
Servlet处理多个请求1、servlet层2、dao层代码3、web.xml以前我一直以为一个Servlet只能处理一个请求,后来发现是自己太菜了,可以借助携带一个参数来完成多个请求的处理,根据参数的不同,在核心的service方法中调用不同的业务方法,来实现处理多个servlet请求的目的,废话不多说,直接上代码。1、servlet层package com.ycz.controller;import com.alibaba.fastjson.JSON;import com.ycz.dao.
2021-06-14 17:59:31 897
原创 MySQL中int和date的相互转换
int和date的互转1、业务场景2、Date转int(添加 / 修改时)3、int转Date(查询时)4、小结1、业务场景因为我的实体类中有个Date类型的属性,但是数据表中对应字段的类型却是int类型的,所以才会有这么一个需求,要求添加或修改记录的时候将Date类型转换成Int存进表,查询的时候将int转换为Date类型展示出来,如果不转换的话,进行增删或查询的时候一定会报错。2、Date转int(添加 / 修改时)需要借助MySQL提供的UNIX_TIMESTAMP()函数来转换。代码如下:
2021-06-14 17:45:58 5799
原创 MySQL中的随机查询
MySQL中的随机查询1、单表随机查询2、多表随机查询1、单表随机查询这个以前不知道,也是最近遇到的,需要从数据记录中随机取出指定条目的数据,于是上网查了一下,才知道还有这个用法,记录一下。需要查询的表如下:现在表中一共有8条数据,我只想取5条,且要求每次是随机取5条,没有固定顺序。SQL语句如下:SELECT * FROMUSER ORDER BY rand() LIMIT 5;执行查询语句3次,结果如下:可以看到,3次取的结果是随机的,并没有什么固定顺序,是完全随机
2021-06-14 17:18:43 1290
原创 MySQL中查询和删除重复行
关于MySQL中的重复行1、重复行的定义2、单字段重复2.1、查询重复记录2.2、删除多余行3、多字段重复3.1、查询重复记录3.2、删除多余行4、小结1、重复行的定义在不同的业务场景中,可能我们对重复行的定义不一样,比如以下的表记录:在某些场景下,我们把name字段重复的记录称为重复行,而在另一些场景下,我们把name和address都重复的记录称为重复行,或者把name,sex,birth,address这4个字段都重复的记录称为重复行,具体可区分为两大类:单字段重复和多字段重复,无论是哪一种,
2021-06-14 16:58:39 6706 1
原创 享元模式
1、享元模式的概念享元模式,英文Flyweight Pattern,属于结构型模式。主要用来减少创建对象的数量,进而减少内存占用来提高系统性能。我们都知道,创建出来的对象基本都会存放在JVM的堆中,堆中存在着大量的对象,也是GC回收的主要区域,内存中对象过多会影响系统性能,而享元模式的根本目的就是减少对象的创建,在一定程度上可以提高系统的性能。享元模式尝试重用现有的同类对象,如果没有的话,再创建,如果已经存在着这样的对象,直接用而不是创建。2、享元模式的特点重用现有的同类对象,没有再创建,尽量减少
2021-04-06 00:25:13 199 3
原创 外观模式
1、外观模式的概念外观模式,英文Facade Pattern,属于结构型模式。该模式会隐藏系统的复杂性,对外提供一个可以访问系统的简单接口。该模式涉及到一个类,该类中提供了客户端请求的简化方法和对现有系统方法的一种委托调用。2、外观模式的特点向现有系统添加一个接口,来隐藏系统的复杂性。3、关于外观模式使用目的:为子系统中的一组接口提供一个一致的界面,定义一个高层接口,使得系统更加容易使用。解决问题:降低访问系统的复杂度,简化客户端和系统之间的接口。使用时机:客户端不必知道系统内部的复
2021-04-05 18:07:22 324
原创 装饰器模式
1、装饰器模式的概念装饰器模式,英文Decorator Pattern,属于结构型模式。它允许我们在不改变现有对象结构的基础上,添加新的功能,可以说是对现有类的一种包装。该模式提供一个装饰类,用来包装原类,在保持原类方法不变的情况下,来添加新的功能。2、装饰器模式的特点提供包装类,对原类进行包装。保持原类方法不变,额外添加新功能。3、关于装饰器模式使用目的:动态的给对象添加新功能,这样其实比生成子类更加灵活方便。解决问题:使用继承来扩展父类时,如果功能很多,那么子类内部代码会膨胀,这时可
2021-04-05 17:26:44 189
原创 组合模式
1、组合模式的概念组合模式,英文Composite Pattern,也称为部分整体模式,属于结构型模式。该模式将一组相似对象当成一个整体对象,使用树形结构来组合对象,来表示部分以及整体层次。该模式创建一个包含自己对象组的类,然后在该类中提供修改相同对象组的方法。2、组合模式的特点使用树形结构来组合对象。将相似对象组合成一个整体,表示整体和部分层次。3、关于组合模式使用目的:将对象组合成树形结构来表示整体和部分层次。解决问题:在树形结构中,模糊了简单元素和复杂元素,可以让我们像处理简单元素
2021-04-05 16:17:22 365 1
原创 关于克隆
关于克隆1、前言2、克隆3、浅克隆3、深克隆1、前言因为最近在了解设计模式,其中创建型模式中有一种原型模式,该模式采用克隆的方式,克隆原型实例,来生成一个克隆对象,提供给调用者。关于克隆,以前在看Object类源码时,看到有一个clone方法,但是没太在意,所以也不太了解,看来需要有一些了解了。2、克隆什么是克隆?可以简单的理解为复制,我们在电脑上进行文件复制的时候,实际上就是属于克隆。但是有时候克隆和复制并不是完全等同的。Java中的克隆主要指对象的克隆,即我new出来一个对象,然后通过clone
2021-04-04 19:20:45 465 1
原创 原型模式
1、原型模式的概念原型模式,英文Prototype Pattern,属于创建型模式。这种模式用于创建可重复的对象,同时又能保证其性能。该模式实现了一个原型接口,该接口用于创建当前对象的克隆,如果直接创建一个对象需要花费的代价比较大时,那么可以采用原型模式进行创建。举个例子,如果一个对象需要在数据库操作之后被创建,我们都知道,数据库的连接是昂贵的资源,频繁的创建和销毁非常不好,那么此时可以先缓存这个对象,在需要该对象时直接返回它的克隆,这样就不用每次在需要这个对象时都频繁的调用数据库了,在一定程度上可以说提
2021-04-04 17:28:11 192
原创 建造者模式
1、建造者模式的概念建造者模式,英文Builder Pattern,属于创建型模式,该模式组合多个简单的对象来构造一个复杂的对象。会有一个Builder类,而该类负责构造最终的复杂对象。2、建造者模式的特点组合多个简单对象,构造复杂对象。由构造类Builder来构造最终的对象。3、关于建造者模式使用目的:将一个复杂的构建与其表示分离,使得同样的构建能产生不同的组合。解决问题:在开发时,有时候需要创建一个复杂的对象,而这个对象是由多个简单的子对象组合而成的。有时候需要有一点变化,所以希望组
2021-04-02 14:48:35 173
原创 SpringBoot入门
SpringBoot入门1、SpringBoot简介2、SpringBoot特点3、SpringBoot使用场景4、SpringBoot的使用4.1、下载安装STS4.2、创建SpringBoot应用4.3、项目启动类4.4、全局配置文件4.5、测试类4.6、pom依赖4.7、热部署devtools4.8、资源文件属性的获取4.8.1、获取yml属性4.8.2、获取properties文件属性4.9、server配置4.10、整合模板引擎4.10.1、整合Freemarker模板引擎4.10.2、整合Thy
2021-03-19 23:27:16 313
原创 SpringMVC中的拦截器Interceptor
拦截器的使用1、拦截器的使用时机2、拦截器的原理3、拦截器的使用4、测试拦截器Intercaptor和过滤器Filter1、拦截器的使用时机SpringMVC中提供了一个拦截器Interceptor,其功能类似于Servlet中的过滤器Filter,但是拦截器只能拦截请求,并不能拦截响应。常用拦截器进行用户的权限验证,以及判断用户是否登录系统,未登录的进行拦截等。当你需要对用户的某些请求进行拦截时,比如非法请求,那么就可以使用拦截器来实现。2、拦截器的原理SpringMVC中提供了拦截器Handle
2021-03-15 18:56:58 1580
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人