使用wait()和notify()方法实现生产者消费者模式

以下总结只是个人理解,如有错误,敬请指正。 一、wait()和notify()作用 wait()和notify()方法是Object类的方法,因为Object类是所有类的根类,因此所有类都有这两个方法。 当调用对象的wait()方法时会释放获取的该对象的锁。 既然是释放锁,我们首先要有锁才...

2019-01-25 16:40:48

阅读数 34

评论数 0

Java获取Excel中链接的文件

一、需求 有这样一个需求,需要将用户上传的Excel中链接的文件上传到服务器,用户会保证Excel中内容按照模板上传,第一列是省份,第二列是省份对应的上传的文件,比如下面的例子: 第二列就是链接的用户本地文件,因此服务端需要根据上传的Excel内容解析出第二列的用户本地文件的路径,然后返回...

2019-01-23 14:55:03

阅读数 47

评论数 0

手动安装sublime插件babel-sublime

在开发reactjs开发使用sublime时,想要代码高亮显示,需要安装babel-sublime插件,在Preferences中的Package Control菜单搜索Install Package安装插件。 结果无法连接到https://packagecontrol.io网站,无奈只...

2019-01-18 16:53:04

阅读数 54

评论数 0

浏览器设置跨域

由于项目前端使用8001端口,后端使用的8080端口,因此前端调用后端接口时需要跨域,在浏览器中需要设置跨域,否则会由于跨域安全性导致请求失败。比如chrome中,需要新建一个chrome浏览器的快捷方式,右键选择属性: 添加--disable-web-security --user-dat...

2019-01-18 16:23:35

阅读数 15

评论数 0

使用Netty进行文件传输

一、简介 使用Netty进行文件传输主要涉及到FileChannel文件通道,它用来连接文件,可以通过这个通道读写文件。在使用FileChannel之前必须先打开它,FileChannel无法直接打开,可以通过InputStream、OutputStream或RandomAccessFile来获...

2019-01-16 17:09:13

阅读数 17

评论数 0

安装npm和cnpm

一、简介 npm是nodejs的包管理工具,用于node插件管理。cnpm是淘宝在中国做的nodejs镜像,避免访问国外的nodejs网站出现异常。 二、安装nodejs 1、安装 有两种选择一种是安装文件安装,一种是免安装的zip包。这里我选择的是.zip文件,下载完成后解压到想要放...

2019-01-16 09:46:42

阅读数 29

评论数 0

使用Netty进行UDP协议开发

UDP是一种无连接协议,相对于TCP协议而言,简单高效,适用于传输视频、音频等及时性要求高,但是准确率要求低的数据。Netty对UDP传输数据也进行了封装,实现起来特别简单。 首先是编写服务端启动类: import io.netty.bootstrap.Bootstrap; import i...

2019-01-14 17:29:32

阅读数 28

评论数 0

使用Netty进行WebSocket协议开发

一、简介 WebSocket协议是HTML5新增的协议,解决了HTTP请求只能通过浏览器发起,服务端被动接收的问题,HTTP协议是半双工协议,数据可以在客户端和服务端两个方向上传输,但是不能同时传输,而WebSocket是全双工协议,一旦建立连接就可以两个方向同时传输数据。WebSocket连接...

2019-01-14 16:35:13

阅读数 20

评论数 0

Netty开发HTTP文件服务器

开发HTTP协议的服务端涉及到请求和响应,使用的类io.netty.handler.codec.http.HttpHeaderNames和io.netty.handler.codec.http.HttpHeaderUtil在netty-all-5.0.0.Alpha2.jar包中才有在netty-...

2019-01-11 16:41:02

阅读数 35

评论数 0

JBoss Marshalling编解码

一、简介 JBoss Marshalling是一个Java对象序列化包,对JDK默认的序列化框架进行了优化,但又保持和java.io.Serializable接口的兼容。 二、Marshalling开发环境准备 1、下载类库 由于只涉及到Marshalling的序列化类库,因此只需要下载j...

2019-01-10 14:54:11

阅读数 22

评论数 0

Google ProtoBuf用法

一、简介 Google Protobuf是Netty中常用的编解码工具,Protobuf支持数据结构化一次可以到处使用,且可以跨语言使用,通过代码生成工具可以生成不同语言版本的源代码,还可以在使用不同版本的数据结构进程间进行数据传递,实现数据结构向前兼容。这个序列化框架相对于Java本身的序列化...

2019-01-10 10:57:40

阅读数 34

评论数 0

Oracle修改用户密码过期时间

部署的Web应用突然无法登录系统,后台尝试重新启动看能不能恢复,发现启动时在数据库连接池部分报错,怀疑无法连接数据库。使用的是oracle数据库,通过plsql发现也无法连接,从报错可以看出应该是用户密码过期了,因此需要要修改用户密码。通过sysdba身份登录,修改用户密码: alter us...

2019-01-09 15:03:39

阅读数 50

评论数 0

使用DelimiterBasedFrameDecoder进行消息分隔

在使用Netty进行TCP消息传输时,为了上层协议能够对消息正确区分,避免粘包和拆包导致的问题,一般可以通过消息定长、将回车换行符作为消息结束符、将特殊的分隔符作为消息的结束标志或者在消息头中定义长度字段来标识消息的总长度。其中常用的通过分隔符作为消息的结束标志就涉及到Netty的Delimite...

2019-01-08 17:02:21

阅读数 43

评论数 0

Firefox上实现鼠标滚轮事件时隐藏滚动条

在Chrome上实现了页面的鼠标滚轮事件,但是在Firefox上会出先横向和纵向滚动条,如果设置存放内容的容器overflow:hidden;会导致滚轮事件失效,因此不能通过这种方式直接实现。想到一个间接实现的方式,就是将width设置的超出范围比如103%,这样就可以将纵向滚动条顶出页面,就变相...

2019-01-02 10:50:43

阅读数 30

评论数 0

Firefox下代码触发a标签的click事件无效

在页面中通过document.createElement('a');创建一个a标签,然后给a标签的href属性赋url,通过代码触发a标签的click事件请求后台,在Chrome浏览器中请求正常,但是在Firefox中始终无效,debugger发现代码也走到了a.click()方法,但是就是没反应...

2018-12-28 17:33:43

阅读数 193

评论数 2

CSS兼容Chrome和Firefox

在做页面兼容Chrome和Firefox浏览器时,有时候会由于css样式导致两者显示不一致,比如在Chrome上显示正常,而在Firefox上可能就会出现纵向滚动条,这时候就要针对不同类型浏览器应用不同的css样式了,下面是不同的浏览器CSS hank。 比如一个css样式如下: .cons...

2018-12-28 11:00:21

阅读数 123

评论数 0

Xshell free license

https://www.netsarang.com/download/free_license.html

2018-12-27 08:35:59

阅读数 30

评论数 2

FireFox刷新浏览器不清空隐藏域

使用ajax循环调用服务器方法实现长轮询,通过页面的一个隐藏域传递参数判断后台方法是否继续执行业务逻辑还是直接返回,并将后台获取的数据更新隐藏域。 在Chrome测试成功,但是在Firefox测试发现当刷新页面后,返回的数据总是异常,第一次访问系统没有问题。后台断点检查发现隐藏域的方法在刷新浏览器...

2018-12-25 16:18:03

阅读数 45

评论数 0

避免使用查询参数在浏览器地址栏暴露敏感信息

通常在登录系统时会传递用户名、密码到服务器,服务器接收到数据验证通过后,再重定向到主页面。比如下面的返回参数就重定向到index映射的方法: return "redirect:/index.action?loginId=" + ...

2018-12-25 11:24:56

阅读数 23

评论数 0

XML 解析错误:格式不佳

问题描述:在Firefox浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。 因为ajax请求指定了数据类型是json,后台返回数据如果不指定内容类型是文本,默认就是html类型,这样返回到前端就会自动调用html的解析器对文件进行解析,因此报这个异常(在Chrome...

2018-12-20 15:54:06

阅读数 349

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭