- 博客(27)
- 资源 (1)
- 收藏
- 关注
转载 拦截器(Interceptor)和过滤器(Filter)的执行顺序和区别
一、引言本来想记录一下关于用户登陆和登陆之后的权限管理、菜单管理的问题,想到解决这个问题用到Interceptor,但想到了Interceptor,就想到了Filter,于是就想说一下它们的执行顺序和区别。关于Interceptor解决权限和菜单管理的问题,在放在下一篇写吧,就酱紫。二、区别1、过滤器(Filter)首先说一下Filter的使用地方,我们在配置web.xml时,总会配置下面...
2019-11-18 15:35:25
292
转载 mybatis使用pagehelper分页报错java.lang.ClassCastException: com.github.pagehelper.PageHelper cannot be cast
1.网上多数配置如下:<plugins> <!-- com.github.pagehelper.PageHelper为PageHelper类所在包名 --> <plugin interceptor="com.github.pagehelper.PageHelper"> <!-- 4.0.0以后版本可以不设置该参数 --&g...
2019-11-08 16:11:26
442
原创 Spring-Shiro整合
因为web项目的核心组件(Service,dao)都在spring工厂中管理,利用IOC和AOP,组建了关系松散,稳健的系统。shiro的诸多组件也需要由spring统一管理,进而可以更好的和其他组件协作,因为shiro中大多数组件都是pojo类,更方便管理我们可以很方便地把它们从shiro.ini中迁到Spring工厂中。pom文件<!-- 其他依赖和web集成中 一致 ,此处省略-...
2019-10-17 08:58:05
233
原创 shiro的作用和执行流程总结
1.shiro1.1 什么是shiro,我们为什么要用shiro?为什么要用shiro:1.项目中的密码是否可以明文存储?2.是否任意访客,无论是否登录都可以访问任何功能?3.项目中的各种功能操作,是否是所有用户都可以随意使用?综上,当项目中的某些功能被使用时,需要进行安全校验,进而保证整个系统的运行秩序。什么是shiro• Apache Shiro 是 Java 的一个安全(权...
2019-10-12 23:09:08
5573
转载 mybatis中#{ }和${ }的区别
一、结论#{}:占位符号,好处防止sql注入${}:sql拼接符号二、具体分析动态 SQL 是 mybatis 的强大特性之一,也是它优于其他 ORM 框架的一个重要原因。mybatis 在对 sql 语句进行预编译之前,会对 sql 进行动态解析,解析为一个 BoundSql 对象,也是在此处对动态 SQL 进行处理的。在动态 SQL 解析阶段, #{ } 和 ${ } 会有不同的表现。...
2019-09-19 17:30:02
170
原创 javaweb 实现数据的增删改查及其分页(使用数据库连接池和工具类)
创建数据库表字段如下:然后 创建实体类Student 与表中字段名对应 (domain包)public class Student { private Integer id; private String name; private String age; private String address; public Student() { ...
2019-09-08 22:15:56
1691
原创 过滤器的基本配置以及几个典型案例(实现自动登录,屏蔽脏词,禁止浏览器缓存动态页面,带缓存过滤器)
1.1 什么是过滤器Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态html文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。 Servlet API中提供了一个Filter接口,开发...
2019-09-06 23:17:22
843
原创 mysql的多表查询
1.1多表的关系多个表之间是有关系的,那么关系靠谁来维护?多表约束:外键约束。1.1.1 一对多关系客户和订单,分类和商品,部门和员工.一对多建表原则:在多的一方创建一个字段,字段作为外键指向一方的主键1.1.2 多对多关系学生和课程:一个学生可以选择多门课程,一门课程也可以被多个学生选择。多对多关系建表原则:需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一...
2019-08-30 23:17:36
1951
原创 IDEA创建配置Tomcat和创建web项目及其打war包
一.了解web应用1.1 C/S和B/S模式C/S:Client/Server或客户端/服务器模式优点:C/S的优点是能充分发挥客户端PC的处理能力缺点:对用户的电脑配置要求较高,更新升级比较麻烦常见的CS程序:QQ、微信、播放器等B/S:Browser/Server或浏览器/服务器模式优点:是用户使用简单,只要有浏览器和网络即可常见的程序:淘宝网、京东网等1.2 什么是w...
2019-08-30 21:27:18
992
原创 如何使用封装好的DBUtils工具类
1.1 DBUtils简介Commons DbUtils是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能。DBUtils是java编程中的数据库操作实用工具,小巧简单实用,1.对于数据表的读操作,可以把结果转换成List,Array,Set等java集合,便于程序员操作。2.对于数据表的写操作,也变得很简单(...
2019-08-30 08:51:38
701
原创 自定义数据库工具类,以及三种常用的连接池DBCP、C3p0、Druid
一.数据库工具类DbUtils1.1由于多个地方都需要使用数据库连接和释放,所以把功能封装到工具类中DbUtils四个功能:1注册驱动 2 获取连接 3 释放资源 4 执行命令 【5 执行查询】注册驱动 需要四个基本属性 url Driver user password1.为了代码更加的灵活 我们通常都是把 这些 配置在属性文件中 ,通常命名为db.pr...
2019-08-28 23:29:36
464
原创 JDBC的批处理和事务
一.JDBC批处理批量处理允许将相关的SQL语句分组到批处理中,并通过对数据库的一次调用提交它们。当需要一次向数据库发送多个SQL语句时,可以减少连接数据库的开销,从而提高性能。1.1 Statement批处理步骤:1 注册驱动获取连接2 使用createStatement()方法创建Statement对象。3 使用setAutoCommit()将auto-commit设置为fal...
2019-08-27 23:25:41
690
原创 mysql中基本sql语句操作
一.概述1.1 sql概述SQL:Structure Query Language(结构化查询语言),SQL被美国国家标准(ANSI)确定为关系型数据库语言的美国标准,后来被国际化标准组织(ISO)采纳为关系数据库语言的国际标准。SQL 是一种标准化的语言,它允许你在数据库上执行操作,如创建数据库、表等等,查询内容,更新内容,并删除条目等操作。Create, Read, Update, a...
2019-08-25 12:29:42
924
原创 利用Condition来实现多线程交替打印ABC
使用重入锁 ReentrantLock先来获得,.newCondition对象,Condition 可以用来指定队列,唤醒指定队列中的线程,这样在多线程环境下会有更高的效率;package morning;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import j...
2019-08-22 22:44:58
1837
原创 如何使用反射创建类对象、构造方法、调用方法和属性等
一.反射的概念1.1什么是反射?反射就是把Java类中的各种成分映射成一个个的Java对象。例如,一个类有:成员变量,方法,构造方法,包等等信息,利用反射技术可以对一个类进行解剖,把各个组成部分映射成一个个对象。1.2 反射常用类Class类—可获取类和类的成员信息Field类—可访问类的属性Method类—可调用类的方法Constructor类—可调用类的构造方法** ...
2019-08-16 23:24:16
2480
原创 Channel通道进行读写操作和文件的复制等操作
JAVA NIO中的一些主要Channel的实现:FileChannelDatagramChannelSocketChannelServerSocketChannel1.1:FileChannel基本使用Java NIO中的FileChannel是一个连接到文件的通道。可以通过文件通道读写文件。FileChannel无法设置为非阻塞模式,它总是运行在阻塞模式下。1.1.1创建F...
2019-08-14 22:49:49
1890
原创 同步工具类 CountDownLatch、CyclicBarrier、Semaphore的用法
1.CountDownLatch类CountDownLatch(闭锁)是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待,在构造方法中指定一组线程的数量,等待其完成后再继续执行。 构造方法:CountDownLatch cd=new CountDownLatch( 5);//指定组为5个线程。闭锁可以延迟线程的进度直到其到达终止状态,闭锁可以用来...
2019-08-14 20:46:51
123
原创 NIO中Buffer的各种方法详解及其作用
1.:NIO简介java.nio全称Java non-blocking IO或Java New IO,是从jdk1.4 开始引入的一套新的IO api(New IO) ,为所有的原始类型(boolean类型除外)提供缓存支持的数据容器,使用它可以提供非阻塞式的高伸缩性网络。 IO操作的模式: PIO(Programing IO): 所有的IO操作由CPU处理,CPU占用...
2019-08-14 08:46:54
5568
原创 基于UDP的网络编程,DatagramSocket和DatagramPacket
1.概念User Datagram Protocol的简称,用户数据包协议,提供面向事务的简单不可靠信息传送服务特点:a.不安全b.无连接c.效率高d.UDP传输数据时是有大小限制的,每个被传输的数据报必须限定在64KB之内2. DatagramSocket和DatagramPacketDatagramSocket: 数据报套接字,表示用来发送和接收数据报包的套接字。D...
2019-08-13 23:11:24
589
原创 基于TCP的网络编程 基于TCP的Scoket通讯模型
1.概念TCP:Transmission Control Protocol,传输控制协议,基于字节流的传输层通信协议。 特点: 1.面向连接 2.安全、可靠 3.传输数据大小限制,一旦连接建立,双方可以按统一的格式传输任意多的数据。 4.效率低TCP的三次握手a.客户端向服务端发送一个请求b.服务端收到请求后,回客户端一个响应c.客户端向收到服务端的响应...
2019-08-12 22:14:16
384
转载 详细的java单例模式线程安全问题详解
关于单例模式的文章,其实网上早就已经泛滥了。但一个小小的单例,里面却是有着许多的变化。网上的文章大多也是提到了其中的一个或几个点,很少有比较全面且脉络清晰的文章,于是,我便萌生了写这篇文章的念头。企图把这个单例说透,说深入。但愿我不会做的太差。首先来看一个典型的实现:/** * 基础的单例模式,Lazy模式,非线程安全 * 优点:lazy,初次使用时实例化单例,避免资源浪费 * 缺点:1...
2019-08-11 17:22:08
1102
原创 线程安全问题的三种解决方案
关于线程安全问题:1.什么是线程安全问题?.为什么会出现线程安全问题?首先我们需要了解一个概念,临界资源:即多个线程同时访问的资源(共享资源)。当多个线程同时操作临界资源的时候,就容易出现线程安全问题,线程安全问题只会影响到线程对同一个共享的全局变量的写操作。》接下来来演示一下出现线程安全问题的案例:窗口售票public class Ticket implements Runnabl...
2019-08-11 14:54:23
1533
原创 IO中的各种流简介及其代码演示
一.缓冲流作用:主要是为了增强基础流的功能而存在的,提高了流的工作效率【读写效率】注意:如果使用记事本创建的文件,文件是utf-8或者unicode编码,文件的前面有一个BOM(Byte Order Mark)头,BOM作用指定文件使用的编码类型。GBK编码没有添加bom头。utf-8:EF BB BFunicode 小端: FF FE 66 00unicode 大端 :FE F...
2019-08-09 23:06:54
135
原创 InputStreamReader和OutputStreamWriter 的区别和用法简介
一.InputStreamReaderInputStreamReader 将字节流转换为字符流。是字节流通向字符流的桥梁。如果不指定字符集编码,该解码过程将使用平台默认的字符编码,如:GBK。构造方法:InputStreamReader isr = new InputStreamReader(InputStream in); //构造默认编码的类InputStreamReader isr ...
2019-08-09 20:37:25
4234
原创 关于File类中常用方法和知识点
关于File类中常用方法和知识点File中的List()方法和ListFile()方法的区别和使用返回值类型元素内容List()方法中的返回值是String[]数组类型string类型的【文件名】(包含后缀名)Listfile()方法的返回值类型是File[]对象数组File对象类型的【完整路径】因此,遍历文件夹中所有文件,包括子文件夹中的文件时,最好用l...
2019-08-08 16:11:17
435
原创 TreeSet/map的去重和排序
TreeSet/map的去重和排序TreeSet集合TreeSet集合是可以给元素进行重新排序的一个Set接口的实现。使用元素的自然顺序对元素进行排序,或者根据创建 set 时提供的Comparator进行排序,具体取决于使用的构造方法。存储特点:无序存储,排重,通过红黑树实现的集合,可以给元素进行重新排序我们知道Set集合中的元素都是无序不重复的,而TreeSet中的元素却是...
2019-08-08 11:02:57
939
原创 HashSet的去重
HashSet的去重HashSetHashSet存储的数据结构是哈希表,也就是数组和链表的组合物。此类实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。Hash:哈希——实际含义散列,就是一种算法,把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。哈希表:数组加链表...
2019-08-08 08:46:38
3545
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人