
java
文章平均质量分 88
hengliang_
这个作者很懒,什么都没留下…
展开
-
csrf攻击原理与解决方法
0x01前言因为现代浏览器的工作机制原因,造成一种WEB攻击形态的存在, 这种攻击形式叫做CSRF攻击,以往我们是从攻击角度分析这种攻击的原理和操作。这次我们给出攻击原理同时,给出CSRF在服务器端的防御的解决方案。CSRF是现代WEB程序要面对的共通性问题,在很多流行的WEB框架中,都会将CSRF的问题直接在WEB框架层面解决。我们先抛出CSRF这个问题,然后介绍基于时间与签名的防护手段,并且给出的这种防御手段的具体代码实现。过程中使用了Lua语言进行实现功能, LUA是一种容易理解的脚本语言,大原创 2021-09-10 16:01:39 · 5845 阅读 · 0 评论 -
springboot异步执任务
1.同步方式controller/** * 同步处理 * @return */ @RequestMapping(value = "test2",method = RequestMethod.GET) public String test2(){ loginService.getTest2(); logger.info(Thread.currentThread().getName()+"==========主线程名");...原创 2021-07-27 10:29:46 · 848 阅读 · 0 评论 -
spring事务机制
1 Spring事务管理机制1.1 Spring框架的介绍Spring框架是开发人员使用的最流行的一个框架.1.2 Spring事务管理的优点 提供统一的API接口支持不同的数据源Sring本身没有提供任何事务支持,只是对外提供统一的编程API接口,让数据源驱动方来对Spring事务进行实现,Spring事务的核心是PlatformTransactionManager接口. 提供了声明式的事务管理Spring的事务实现可以是编程式和声明式,声明式的事务管理运用的是...原创 2020-11-11 14:34:04 · 252 阅读 · 0 评论 -
Java微服务下的分布式事务介绍及其解决方案2
1.前言本文将详细介绍分布式的解决方案–消息队列实现分布式事务的解决方案,需要大家对我第一篇对分布式事务的介绍来了解下,会更清楚一点哦,第一篇博客的地址分布式事务的介绍2.业务场景介绍我们模拟慕课网付费课程的下单,你在慕课网买了视频后,你的学习列表要订单服务要更新你支付的状态,此外,学习服务要有你的添加选课信息3.解决方案下面我详细介绍下,这个解决方案1、支付成功后,订单服务向本地数据库更新订单状态并向消息表写入“添加选课消息”,通过本地数据库保证订单状态和添加选课消息的转载 2020-11-02 13:33:53 · 272 阅读 · 0 评论 -
Java微服务下的分布式事务介绍及其解决方案
1.前言1.由于最近在学习springcloud的项目,现在互联网下,分布式,微服务横行,难免会遇到分布式下的事务问题,这是一个难点,也是面试经常问的,别面试官一看你简历,都是微服务项目,问你了解啥是分布式事务不,你来句没有,这就很尴尬了,当然微服务下可能没有分布式事务,但是很多场景是需要分布式事务的,下面我就来介绍下什么是分布式事务,和分布式事务的解决方案2 问题描述在介绍分布式事务下,下面我们先来了解一个常见应用场景,这个场景(类似慕课网购买付费课程)也是我后面要讲的分布式事务的解决方转载 2020-11-02 10:24:44 · 413 阅读 · 0 评论 -
使用Spring @DependsOn控制bean加载顺序
使用Spring @DependsOn控制bean加载顺序spring容器载入bean顺序是不确定的,spring框架没有约定特定顺序逻辑规范。但spring保证如果A依赖B(如beanA中有@Autowired B的变量),那么B将先于A被加载。但如果beanA不直接依赖B,我们如何让B仍先加载呢?控制bean初始化顺序可能有些场景中,bean A 间接依赖 bean B。如Bean B应该需要更新一些全局缓存,可能通过单例模式实现且没有在spring容器注册,bean A需要使用该缓存;因此转载 2020-10-20 13:45:38 · 155 阅读 · 0 评论 -
页面跳转的两种方式(转发和重定向)区别 简单介绍
RequestDispathcher.forward方法只能将请求转发给同一个WEB应用中的组件;而HttpServletResponse.Redirect不仅可以重定向到当前应用程序中的其他资源,还可以重定向到同一个站点应用程序上的其他资源,甚至是使用绝对URL重定向到其他站点上的资源。如果传递给HttpServletResponse.Redirect 相对URL以 "/" 开头,那么他是相对...原创 2019-10-23 10:35:26 · 720 阅读 · 0 评论 -
Windows下Nginx+Tomcat群集
NginxNginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。———来自百度百科互联网飞速发展的今天,大用户量高并发已经成为互联网的主体,怎样能...原创 2018-11-26 09:38:18 · 200 阅读 · 0 评论 -
Java实现冒泡排序
1.算法概念2.算法原理3.算法稳定性4.算法实现1.算法概念冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端。2.算法原理冒泡排序算法的运作如下:(从后...转载 2018-11-28 10:47:32 · 254 阅读 · 0 评论 -
SSM集成webservice-绝对能用
ssm集成webservice,我这里用的是CXF,因为对于Axis和Afire来说CXF算是非常好的,这里就不对他们的区别多说了,首先:1、加入相应的依赖:<!--webServiceCxf --> <!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-core --> ...原创 2019-01-16 14:57:38 · 1048 阅读 · 1 评论 -
JDK JRE JVM三者之间的关系
JAVA程序必须进行编译,实际上任何编程语言都需要一个切实有用的编译器。编译器是一种将程序源代码转换成可执行格式(可以是字节码,本机代码或者其他代码)的程序。在开始java编程之前,需要先下载一个java编译器,它是一个名为javac的程序,这个名称是JAVA compiler的缩写。 虽然javac可以把Java源代码编译成字节码,但是要运行字节码还需要一个Java虚拟机,此外,由于总...原创 2019-03-26 11:20:31 · 439 阅读 · 0 评论 -
Oracle分页和MySql分页区别
转载地址:https://www.cnblogs.com/xuelu/p/3770738.html如果我们是通过JDBC的方式访问数据库,那么就有必要根据数据库类型采取不同的SQL分页语句,对于MySql数据库,我们可以采用limit语句进行分页,对于Oracle数据库,我们可以采用rownum的方式进行分页.一、MySQL使用limit分页select * from table_n...转载 2019-04-02 17:32:54 · 5490 阅读 · 0 评论 -
java IO流学习
Java流操作有关的类或接口:Java流类图结构:流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。IO流的分类 根据处理数据类型的不同分为:字符流和字节流 </li>...转载 2019-05-04 12:00:10 · 194 阅读 · 0 评论 -
JAVA IO流
JavaIO的一般使用原则: 一、按数据来源(去向)分类: 1、是文件:FileInputStream,FileOutputStream,FileReader,FileWriter 2、是byte[]:ByteArrayInputStream,ByteArrayOutputStream 3、是Char[]:CharArrayRe...转载 2019-05-04 12:55:59 · 187 阅读 · 0 评论 -
CKEDITOR自定义按钮上传图片
zh前端时间需要用到富文本编辑器,经理推荐了这个ckeditor,开发过程中有上传图片的功能,由于业务需要,我们不存图片路径,只好把图片转成base64当成标签存到数据库,编辑器自带的上传图片功能都是存储路径的(也有可能是学艺不精)我们需要转成base64.只好自定义一个上传图片的功能。在ckeidtor的目录下有个plugins文件夹,我们要做的就在这个文件夹里在plugins下新建一个文...原创 2019-04-25 13:54:02 · 1225 阅读 · 0 评论 -
java 图片Base64转成文件流,直接在浏览器访问图片
因为业务,需要把图片base64转成文件流,然后直接在浏览器访问就可以看见图片 /** * 回显图片 * @author liuhengliang * @return ModelAndView */ @RequestMapping(value = "/image") private void getImageById(Htt...原创 2019-04-25 17:40:54 · 10301 阅读 · 1 评论 -
Tomcat优化
Tomcat在各位JavaWeb从业者常常就是默认的开发环境,但是Tomcat的默认配置作为生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈.幸好Tomcat还有很多的提升空间.下文介绍一下Tomcat优化,可以分为内存,线程,IO.一:Tomcat内存优化,启动时告诉JVM我要一块大内存(调优内存是最直接的方式)Windows 下的catalina.batLinux...原创 2018-10-25 15:53:15 · 172 阅读 · 0 评论 -
SQL注入
原文地址:http://www.cnblogs.com/rush/archive/2011/12/31/2309203.html1.1.1 摘要日前,国内最大的程序员社区优快云网站的用户数据库被黑客公开发布,600万用户的登录名及密码被公开泄露,随后又有多家网站的用户密码被流传于网络,连日来引发众多网民对自己账号、密码等互联网信息被盗取的普遍担忧。网络安全成为了现在互联网的焦点,这也...转载 2018-10-25 11:02:39 · 219 阅读 · 1 评论 -
java创建数组
public static void main(String[] args) {//创建数组的第一种方法int[] arr=new int[6];int intValue=arr[5];//System.out.println(intValue);//创建数组的第二种方法int[] x={1,2,3,4};//System.out.println(x[1]);//创建数组的第三种方法。int[] ...原创 2018-02-08 10:28:20 · 236 阅读 · 0 评论 -
Oracle存储过程
转载:http://blog.youkuaiyun.com/u013057786/article/details/171656231、定义所谓存储过程(Stored Procedure),就是一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过编译后存储在数据库系统中。在使用时候,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数来调用并执行它,从而完成一个或一系列的数据库操作。2、存储过程的...转载 2018-02-23 10:37:31 · 689 阅读 · 0 评论 -
Java Web Session管理
Session 管理是Web应用开发中的一个重要的内容,其实每天我们浏览网站,网站的后台都是通过这门技术来记录我们的浏览状态,最典型的就是登录,每次你在网站上登录一次,当跳转到该网站的任何其他页面都不会再次要求你登录,这就是使用了Session管理技术。那么问题来了我们为什么需要这门技术?这是因为Http协议是无状态的,什么是无状态?简单来说就是Web服务器不能区分请求是否来自一个人,也就是说每个...原创 2018-02-23 14:51:14 · 276 阅读 · 0 评论 -
关于跨域,以及跨域的几种方式
转载:https://www.cnblogs.com/chenshishuo/p/4919224.html首先我们来想一想 为什么会有跨域这个名词的出现呢? 跨域又是什么呢?为何要跨域? 浏览器的同源策略又是什么?怎么解决? jsonp又是什么? 跨域的原理又是什么呢?...转载 2018-02-23 16:26:12 · 293 阅读 · 0 评论 -
java 通过开始结束时间,得到中间的所有时间
private static List<Date> getBetweenDates(Date start,Date end){ List<Date> result = new ArrayList<Date>(); Calendar tempStart = Calendar.getInstance(); tempStart.setTime...原创 2018-04-27 15:41:38 · 2478 阅读 · 0 评论 -
java 字符串转时间,时间转字符串
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");// 字符串转时间Date d1= formatter.parse("2018-4-13");Date d2= formatter.parse("2018-5-2");System.out.println(d1+"时间格式");System.out.println(d2+...原创 2018-04-27 15:46:04 · 10283 阅读 · 2 评论 -
java通过一个时间,得出本时间所在月份的所有时间
public static void main(String[] args) { List<Date> list = getAllTheDateOftheMonth(new Date()); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); for(Date date: list){ Strin...原创 2018-04-27 15:50:15 · 813 阅读 · 0 评论 -
java String字符串与Ascii互相转换
最近和老外讨论ERP集成数据老外要求把数据转换成ASCII如下:1、字符串转Asciipublic static voidConvertToASCII(){ String string = "193521.641"; StringBuilder sb = new StringBuilder(); char[] ch = string.toCharArray(); fo...原创 2018-05-29 15:01:19 · 46304 阅读 · 6 评论 -
java web操作Access数据库
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点,是 Microsoft Office 的系统程序之一。JDK1.8增加了很多新特性,但不再包含access桥接驱动,因此在连接Access数据库时有所变化[和JDK1.6相比]. 所以需要我们自己 创建连接方式1、UCanAc...原创 2018-05-29 15:27:03 · 4489 阅读 · 0 评论 -
java生成txt文件并且读写
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");String currentTime = formatter.format(System.currentTimeMillis());// 当前时间作为文件名字System.out.println(currentTime);//String path = "D...原创 2018-05-29 15:31:59 · 12949 阅读 · 0 评论 -
WebService解释
一、WebService到底是什么?先来看下标准的定义:Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。其实,一言以蔽之:WebService是一种跨编程语言和跨操作系统平...原创 2018-06-21 14:20:58 · 448 阅读 · 0 评论 -
ActibeMq基本详解及总结
ActiveMQ基本详解与总结MQ简介: MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了...转载 2018-06-22 16:23:44 · 973 阅读 · 0 评论 -
SpringBoot并发执行定时任务
刚刚看了下Spring Boot实现定时任务的文章,感觉还不错。Spring Boot 使用Spring自带的Schedule来实现定时任务变得非常简单和方便。在这里个大家分享下。开启缓存注解@SpringBootApplication@EnableScheduling //开启定时任务public class Application { public static void main(S...转载 2018-06-29 15:13:39 · 17712 阅读 · 5 评论 -
oracle中INSTR函数的用法
INSTR(C1,C2,I,J) 在一个字符串中搜索指定的字符,返回发现指定的字符的位置; C1被搜索的字符串 C2希望搜索的字符串 我搜索的开始位置,默认为1 Ĵ出现的位置,默认为1个 SQL>选择INSTR(预言教育训练,RA,1,2)从双instring; INSTRING --------- 9 他的位置搜索是从1开始的也就是说ö的位置是1,这点要分清楚。...原创 2018-06-27 10:19:46 · 2700 阅读 · 1 评论 -
面试题
1、简述一下JSP的运行原理答案:JSP的运行原理(1)WEB容器JSP页面的访问请求时,它将把该访问请求交给JSP引擎去处理。Tomcat中的JSP引擎就是一个Servlet程序,它负责解释和执行JSP页面。(2)每个JSP页面在第一次被访问时,JSP引擎先将它翻译成一个Servlet源程序,接着再把这个Servlet源程序编译成Servlet的class类文件,然后再由WEB容器像调...转载 2018-10-15 11:22:10 · 586 阅读 · 0 评论 -
sql语句left join和inner join、right join区别
sql之left join、right join、inner join的区别left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只返回两个表中联结字段相等的行举例如下: --------------------------原创 2017-11-27 09:38:53 · 215 阅读 · 0 评论