11 2019 档案
摘要:一、概述1.1 缓存的意义1.2 mybatis持久层缓存二、一级缓存2.1 原理2.2 一级缓存配置一级缓存测试三、二级缓存3.1 原理3.2 mybatis二级缓存配置3.3 查询结果映射的pojo序列化3.4 二级缓存禁用3.5 刷新缓存3.6 测试代码3.7 mybatis的cache参数3.8 二级缓存的应用场景3.9 mybatis局限性一、概述1.1 缓存的意义将用户经常查询的数据放...
阅读全文
摘要:一、概述1.1 JDBC1.2 JDBC编程中问题1.3 MyBatis介绍1.4 Mybatis架构二、MyBatis入门程序2.1 需求2.2 引入MyBatis依赖2.3 配置 log4j.properties2.4 配置 SqlMapConfig.xml(公用文件)2.5 根据id查询用户pojo(User.java)配置映射文件编写Dao层测试2.6 根据用户名称模糊查询用户信息修改映射...
阅读全文
摘要:一、需求二、统一异常处理解决方案2.1 定义异常2.2 异常处理2.3 配置统一异常处理器2.4 异常处理逻辑一、需求一般项目中都需要作异常处理,基于系统架构的设计考虑,使用统一的异常处理方法。系统中异常类型有哪些?包括预期可能发生的异常、运行时异常(RuntimeException),运行时异常不是预期会发生的。针对预期可能发生的异常,在代码手动处理异常可以try/catch捕获,可以向上抛出。...
阅读全文
摘要:一、概述1.1 拦截器的异常场合1.2 拦截器中的方法二、示例2.1 定义两个拦截器2.2 配置拦截器2.3 执行顺序三、拦截器应用3.1 需求3.2 用户登陆及退出功能开发3.3 用户身份认证校验拦截器3.4 编写拦截器一、概述1.1 拦截器的异常场合用户请求到DispatherServlet中,DispatherServlet调用HandlerMapping查找Handler,HandlerM...
阅读全文
摘要:一、概述1.1 什么是RESTful1.2 URL的RESTful实现二、演示2.1 需求2.2 第一步更改DispatcherServlet配置2.3 第二步参数通过url传递2.4 设置静态资源解析一、概述1.1 什么是RESTfulRESTful软件开发理念,RESTful对http进行非常好的诠释。RESTful即Representational State Transfer的缩写。综合上...
阅读全文
摘要:一、post请求乱码二、get请求乱码一、post请求乱码在web.xml中加入CharacterEncodingFilterorg.springframework.web.filter.CharacterEncodingFilterencodingutf-8CharacterEncodingFilter/*以上可以解决post请求乱码问题。二、get请求乱码对于get请求中文参数出现乱码解决方法...
阅读全文
摘要:一、概述二、步骤2.1 引入 Hibernate Validator2.2 配置2.3 创建CustomValidationMessages2.4 校验规则2.5 捕获错误2.6 在页面上展示错误2.7 分组校验一、概述对前端的校验大多数通过js在页面校验,这种方法比较简单,如果对安全性考虑,还要在后台校验。springmvc使用JSR-303(javaEE6规范的一部分)校验规范,springm...
阅读全文
摘要:一、概述1.3 参数绑定过程1.2 @RequestParam二、自定义绑定使用属性编辑器2.1 使用WebDataBinder(了解)2.2 使用WebBindingInitializer(了解)三、自定义参数绑定使用转换器3.1 实现Converter接口3.2 配置转换器一、概述1.3 参数绑定过程1538051.2 @RequestParam如果request请求的参数名和controll...
阅读全文
摘要:一、概述1.1 SpringMVC是什么1.2 MVC在b/s系统的应用1.3 SpringMVC 原理二、入门程序2.1 需求2.2 引入依赖2.3 前端控制器2.4 springmvc.xml2.5 配置处理器映射器2.6 处理器适配器2.7 Handler编写2.8 配置Handler2.9 配置视图解析器三、其它非注解处理器映射器和适配器3.1 映射器1. BeanNameUrlHandl...
阅读全文
摘要:一、Hibernate的二级缓存 1.1 类缓存区特点 缓存的是对象的散装的数据. 1.2 集合缓存区的特点: 缓存的是对象的id.需要依赖类缓冲区的配置. 1.3 二级缓存数据到硬盘 更新时间戳区域 二、查询缓存:(三级缓存??) 比二级缓存功能更加强大,而且查询缓存必须依赖二级缓存. 二级缓存:
阅读全文
摘要:一、概述一、概述事务事务就是逻辑上的一组操作,要么全都成功,要么全都失败!!!事务特性原子性:事务一组操作不可分割.一致性:事务的执行前后,数据完整性要保持一致.隔离性:一个事务在执行的过程中不应该受到其他事务的干扰.持久性:一旦事务结束,数据就永久保存数据库.如果不考虑事务的隔离性引发一些安全性问题:5大类问题:3类读问题 2类写问题.读问题:脏读: 一个事务读到另一个事务未提交数据.不可重复读...
阅读全文
摘要:一、区分延迟和立即检索二、类级别检索和关联级别检索一、区分延迟和立即检索立即检索:当执行某行代码的时候,马上发出SQL语句进行查询.get()延迟检索:当执行某行代码的时候,不会马上发出SQL语句进行查询.当真正使用这个对象的时候才会发送SQL语句.load();二、类级别检索和关联级别检索类级别的检索:<class>标签上配置lazy关联级别的检索:/上面的lazy.查询某个对象的时候,是否需要...
阅读全文
摘要:一、概述二、HQL2.1 简介2.2 查询所有记录2.3 查询使用别名2.4 排序2.5 分页查询2.6 单个对象查询2.7 参数绑定2.8 投影操作2.9 模糊查询2.10 SQL多表查询2.11 HQL多表的查询三、QBC3.1 简介3.2 查询所有记录3.3 排序3.4分页3.5获取单个对象3.6 带参数的查询3.7 模糊查询四、SQL4.1 简介4.2 SQL语句查询所有记录一、概述检索方...
阅读全文
摘要:一、概述二、证明Hibernate的一级缓存的存在三、一级缓存中快照区四、管理一级缓存五、Hibernate一级缓存的刷出时机六、操作持久化对象的方法一、概述什么是缓存:缓存将数据库/硬盘上文件中数据,放入到缓存中(就是内存中一块空间).当再次使用的使用,可以直接从内存中获取.缓存的好处:提升程序运行的效率.缓存技术是Hibernate的一个优化的手段.Hibernate分成两个基本的缓存一级缓存...
阅读全文
摘要:一、实体之间的关系二、一对多的配置2.1 第一步创建两个实体2.2 第二步:配置映射文件2.3 第三步:将映射放到核心配置文件中三、级联3.1 Hibernate中级联保存的效果3.2 Hibernate中级联删除的效果3.3 Hibernate中的级联取值3.4 双向维护产生多余的SQL四、Hibernate的多对多的配置4.1 第一步:创建实体类4.2 第二步建立映射4.3 第三步:将映射文件...
阅读全文
摘要:一、持久化类状态1.1 三种持久化对象的状态1.2 区分三种状态1.3 三种状态对象转换1.瞬时态2.持久态3.脱管态4.持久态对象有自动更新数据库的能力一、持久化类状态1.1 三种持久化对象的状态持久化类:就是一个实体类与数据库表建立了映射Hibernate为了方便管理持久化类,将持久化类分成了三种状态瞬时态(临时态):transient持久态:persistent脱管态(离线态):detach...
阅读全文
摘要:一、Hibernate框架的概述1.1 什么是Hibernate1.2 Hibernate优点二、Hibernate的日志记录三、Hibernate 入门程序3.1 引入依赖(5.x版本)3.2 创建表(关系型数据库)3.3 创建一个实体类3.4 创建ORM的映射.3.5 创建一个核心配置文件.3.6 编写测试四、CRUD的操作4.1 保存记录:4.2 根据主键进行查询:4.3 修改记录4.4 删...
阅读全文
摘要:一、使用步骤1.1 引入依赖1.2 在struts.xml文件中配置一、使用步骤1.1 引入依赖 org.apache.struts struts2-json-plugin 2.3.16.31.2 在struts.xml文件中配置1.2.设置视图这样设置后,会将valueStack栈顶数据变成json。对于我们的程序,也就是会将action对象转换成json。p如果没有设置,可以...
阅读全文
摘要:一、概述二、Struts2中解决方案三、实现步骤一、概述regist.jsp----->RegistServlet表单重复提交 危害: 刷票、 重复注册、带来服务器访问压力(拒绝服务)解决方案:在页面上生成一个令牌(就是一个随机字符串),将其存储到session中,并在表单中携带.在服务器端,获取数据时,也将令牌获取,将它与session中存储的token对比,没问题,将session中令牌删除。...
阅读全文
摘要:一、OGNL1.1 概述1.2 OGNL 五大类功能1.3 演示二、ValueStack2.1 概述2.2 ValueStack结构2.3 结论2.3 一些问题三、OGNL表达式常见使用符号3.1 #号3.2 %号3.3 $号一、OGNL1.1 概述OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言.比el表达式功能强大。Struts2将...
阅读全文
摘要:一、上传1.1 Struts2实现步骤浏览器端服务器端1.2 关于Struts2中文件上传细节:1.3 示例jsp文件Action类struts.xml文件配置二、下载2.1 文件下载方式2.2 Struts2中文件下载示例代码jsp文件Action类struts.xml 文件配置一、上传1.1 Struts2实现步骤浏览器端上传文件的标签要满足下面三个条件: method=post encTy...
阅读全文
摘要:一、概述二、在Struts2中使用拦截器2.1 步骤2.2 分析拦截器原理2.3 关于interceptor与Filter区别:三、案例一、概述介绍拦截器:struts2拦截器使用的是AOP(面向切面编程)思想。AOP的底层实现就是动态代理。拦截器采用责任链模式 ,在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。责任链每一个节点,都可以继续调用下一个节点,也可以阻止流程继续...
阅读全文
摘要:一、概述二、Struts2中国际化:2.1 问题1全局局部2.2 问题22.3 问题32.4 问题4在Action中怎样使用在JSP页面上怎样使用一、概述同一款软件 可以为不同用户,提供不同语言界面 ---- 国际化软件需要一个语言资源包(很多properties文件,每个properties文件 针对一个国家或者语言,通过java程序根据来访者国家语言,自动读取不同properties文件 )...
阅读全文
摘要:一、Action处理请求参数1.1 属性驱动1.2 模型驱动1.3 扩展将数据封装到List集合将数据封装到Map集合二、类型转换2.1 自定义类型转换器:1.创建一个自定义类型转换器2.注册一个自定义类型转换器.三、数据校验3.1 手动校验3.2 配置校验(xml)一、Action处理请求参数在Struts2中获取请求参数:有两类方式(三种方法)1.1 属性驱动直接将action做一个model...
阅读全文
摘要:一、概述二、Struts2 快速入门程序2.1 开发流程比较2.2 引入依赖2.2 创建jsp页面2.3 在web.xml中配置前端控制器2.4 创建struts.xml配置文件2.4 创建一个HelloAction类2.5 在struts.xml文件中配置HelloAction2.6 在index.jsp中添加连接,测试2.7 测试三、对入门程序进行流程分析3.1 创建项目,引入Maven依赖3...
阅读全文
摘要:一、常见Web安全漏洞1.1 XSS攻击什么是XSS攻击手段如何防御XSS攻击1.2 SQL注入攻击什么是SQL注入SQL注入防攻击手段MyBatis #与$区别1.3 Http请求防盗链什么是防盗链如何实现防盗链1.4 CSRF攻击CSRF攻击产生的原因防御CSRF攻击手段1.5 忘记密码漏洞1.6 上传文件漏洞漏洞描述漏洞危害漏洞演示修复方案代码演示1.7 其他攻击和漏洞二、互联网API接口幂...
阅读全文