6 Mrs陶

尚未进行身份认证

虽然路程很痛苦,但是依然坚持前行。。。

等级
TA的排名 1w+

Servlet的request.getInputStream()只能读取一次问题

1、问题描述: spring-boot环境下部分接口使用@RequestBody接收前端传递的复杂json格式数据,在controller中处理完业务逻辑之后,会通过request从流中读取初始请求数据,保存到用户访问日志记录中;当请求进入@RequestBody注解标注的方法之后,一切正常,被标注的复杂对象也获取到了前端传递的数据,但是在后面记录日志读取request输入流时,发现:...

2019-10-12 17:02:50

HttpURLConnection中获得重定向的地址

当使用HttpURLConnection访问A地址,但是A地址内部会自动重定向到B地址,因为我们是会HttpURLConnection方式访问接口,故我们应用无法直接重定向到B地址,此时需要我们通过HttpURLConnection获取重定向后的B地址返回给前端,让前端去访问B地址,达到跳转的目的。(对于页面表单访问A地址的话,浏览器会自动帮我们重定向到B地址,完成重定向过程)一、该方式可以获...

2019-09-19 17:38:08

Vue动态路由:登录后首次点击侧边栏,显示白屏,手动刷新后能正常跳转

经过漫长的debug,发现在全局路由拦截中,当前路径没有匹配动态路由,路由缓存中只有可怜的8个记录,并没有我自己动态路由菜单数据由此怀疑,此时要么是动态路由没有加载完成,要么是路由丢失。既然是路由数据缺失导致没有匹配到动态路由,那么就在全局守卫中匹配路由为0的情况下,再加载下动态路由好了,代码如下:再运行项目,顺利解决,不知各位是否有其他解决办法,总感觉这样不是太好...

2019-09-11 14:37:20

mybatis调用存储过程,获取返回值(单参数返回值)

service业务层调用dao层注意:返回值直接从对象里获取不需要拿对象接收再获取dao.uspGetUser(userPO);//对象封装了存储过程的入参和出参count=userPO.getCount();//count是存储过程的返回值:从对象在获取返回值dao层接口publicinterfaceuserDao{...

2019-07-18 16:06:08

Java多线程下载原理

我们把服务器的上的文件看作水缸的水,要想取走水缸里面的水的话,那么多线程下载就相当于用多条管子抽水一样。多线程下载大约可以分为以下几个步骤:1.要知道服务端资源的大小。2、在本地创建一个与服务器资源同样大小的一个文件,主要是用来占位;Paste_Image.png//file : 文件; mode:文件的模式,rwd:直接写到底层设备,硬盘RandomAccessFile ...

2019-07-15 14:19:22

js 判断是否为 Android IOS IPAD IPHONE 等移动设备访问

<script type="text/javascript"> var browser={ versions:function(){ var u = navigator.userAgent, app = navigator.appVersion; return {...

2019-06-19 09:35:11

iphone中访问带有iframe的网页无法显示全部内容

今天在解决公司平台网页在手机端访问兼容性问题时,遇到index页面通过iframe嵌入右边内容页面在anroid显示正常(主要为:页面内容超过iframe高度、宽度,可以正常显示滚动条,也可以滑动显示),但是在iphone自带的浏览器或者在iphone下载其他浏览器访问,iframe内容均无法全部显示,主要表现为:1、iframe只显示了嵌入内容的部分,无法显示全部,感觉内容被截掉了...

2019-06-14 18:38:25

Java中设置classpath、path、java_home的作用

之前jdk的安装和配置一直是通过txt记录步骤,一直没有去理解过几个参数的作用,今天看《深入理解java虚拟机》,使用JConsole工具突然发现cmd中提示没有该命令,于是乎仔细查了下,现将搜索结果编辑记录下,留给后来的学习者(Tip:不要一味的光会配置,配置之余最好还是理解其含义) 以下是引用谷雨对该内容的总结: Java 解释器的工作程序如下(Thinkin...

2019-05-30 10:40:08

MySQL行级锁、表级锁、页级锁

页级:引擎 BDB。表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行行级:引擎 INNODB , 单独的一行记录加锁表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写操作。如果你是写锁,则其它进程则读也不允许行级,,仅对指定的记录进行加锁,这样其它进程还是可以对同一个表中的其它记录进行操作。页级,表级锁速度快,但冲突多,行级冲突少,但速度慢。所以取了折衷的页...

2019-02-13 17:19:13

并发策略-CAS算法

       对于并发控制而言,我们平时用的锁(synchronized,Lock)是一种悲观的策略。它总是假设每一次临界区操作会产生冲突,因此,必须对每次操作都小心翼翼。如果多个线程同时访问临界区资源,就宁可牺牲性能让线程进行等待,所以锁会阻塞线程执行。  与之相对的有一种乐观的策略,它会假设对资源的访问是没有冲突的。既然没有冲突也就无需等待了,所有的线程都在不停顿的状态下持续执行。那如果遇...

2019-02-13 16:44:21

java并发编程-ThreadLocal本地线程副本变量工具类

ThreadLocal是什么ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不通的变量值完成操作的场景。从数据结构入手下图为ThreadLocal的内部结构图ThreadLocal结构内部从上面的结构图,我们已经窥见ThreadLo...

2018-11-29 13:56:37

Java并发编程-synchronized同步方法、同步块、脏读、锁重入、死琐

一、同步注意事项1、方法内的变量为线程安全“非线程安全”问题存在于“实例变量”中,如果是方法内部的私有变量,则不存在“非线程安全”问题(这是方法内部的变量是私有的特性造成的,所得结果也就是“线程安全”的了,方法的变量存放在JVM里的虚拟机栈里)。2、实例变量非线程安全如果多个线程共同访问1个对象中的实例变量,则可能出现”非线程安全“问题。如果对象仅有1个实例变量,则有可能出现覆盖的情...

2018-11-28 14:03:15

java高级:Thread之ScheduledExecutorService的使用

一:简单说明ScheduleExecutorService接口中有四个重要的方法,其中scheduleAtFixedRate和scheduleWithFixedDelay在实现定时程序时比较方便。下面是该接口的原型定义java.util.concurrent.ScheduleExecutorService extends ExecutorService extends Executor...

2018-11-26 13:56:01

Spring事务处理

事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。 数据库向用户提供保存当前程序状态的方法,叫事务提交(commit);当事务执行过程中,使数据库忽略当前的状态并回到前面保存的状态的方法叫事务回滚(rollback)事务特性(ACID)原子性(atomicity):将事务中所做...

2018-11-19 15:04:35

SQL查询速度优化

1、使用leftjoin比直接使用where速度快参考:使用leftjoin比直接使用where速度快的原因多表使用leftjoin只是把主表里的所有数据查询出来,其他表只查询表中的符合条件的某一条记录,所以速度非常快;而多表使用where内联,是把所有表的数据全查出来,然后进行比对,所以速度非常慢。使用leftjoin要注意确定哪一张表是主表,如果无法确定主表,则选择哪张表查...

2018-10-22 19:51:56

wicket框架下如何将表格数据导出Excel

将页面一的表格导出Excel,需要专门写一个Excel类和几个附属操作类,同时,在页面一的java代码里面写一个方法,此过程比较复杂,不过大部分代码copy就可以用,只需要改自己要替换的内容就可以了。java代码如下:首先是方法的创建public void createExcel(){//创建Excel类的对象,可以自定义带参构造,传入参数//我的项目里传入了三个参数,大家可以...

2018-10-10 17:14:09

Excel表格中两列数据对比,找出异同的数据

问题的起源是这样的:两列数字,A列是一组数字;B列是另外一组数字,如下图所示:我想得到的结果是:B列中的每一行数据是否在A列中出现?如果10行,直接肉眼比对即可,加入是65535,全满列,那岂不是累死宝宝了!考虑到excel函数也能实现这个功能,比手工比对要省事很多,于是借助强大的Internet,搜集了网上的一些方法,亲自验证,确实方便。现在,汇总如下:我们以下表的数...

2018-09-05 11:02:46

RabbitMQ的应用场景以及基本原理介绍

1.背景RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现。2.应用场景2.1异步处理场景说明:用户注册后,需要发注册邮件和注册短信,传统的做法有两种1.串行的方式;2.并行的方式 (1)串行方式:将注册信息写入数据库后,发送注册邮件,再发送注册短信,以上三个任务全部完成后才返回给客户端。 这有一个问题是,邮件,短信并不是必须的,它只是一个...

2018-03-16 18:18:38

修改Eclipse导入Android项目的默认工程名

在Eclipse中导入工程时,有时候导入的工程名不是我们想要的工程名,还需要手动修改,如果同时导入多个工程,还有可能存在多个工程名重复的情况导致不能一次性导入工程,eg,这里的New Project Name显然不是我们想要在Eclipse中显示的工程名:Eclipse_Import_Project  解决这个问题最好的方式是,在需要导入的工程中新建一个".project"隐藏文件,并在这个文件中...

2018-03-07 15:31:15

Wicket简介01

什么是Wicket    什么是Wicket,假设你用谷歌或其它搜索引擎搜索一番之后,就会发现wicket是Java平台下一个面向组件的web应用程序开源框架。它不像基于Action/Request的Struts、WebWork和SpringMVC这类表单提交终于转换为一个单一动作的框架。    Wicket採用类似于Asp.NET、Tapestry和JSF这类通过用户触发表单组件从而触发

2018-02-01 17:59:28

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。