![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 71
spkettas
天道酬勤
展开
-
springboot 发布到tomcat
springboot 框架内置tomcat,以jar包发布,可直接运行。本文展示通过idea 导出war包。一. 编辑pom.xml打包为war<!-- war --> <packaging>war</packaging> <properties> <java.version>1.8<...原创 2019-12-07 13:46:38 · 158 阅读 · 0 评论 -
springboot get/post参数
一.通过@RequestParam@RequestMapping(value = "/get", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")public String getJson(@RequestParam("name") String param) {...原创 2019-12-06 21:08:19 · 240 阅读 · 0 评论 -
springboot 使用
spring 功能非常强大,已经是java web开发标配,但是配置较为复杂繁琐。直到spring boot的出现,彻底改变这种现状。基于spring boot可以用极简的配置,极少的代码,快速开发web应用。一.创建springboot工程File --> New注:Idea comunity没有 spring Initializr组件,需使用Idea Ul...原创 2019-12-06 20:23:35 · 303 阅读 · 0 评论 -
Thrift 使用
Thrift 是apache开源的rpc框架,支持多种语言绑定。相对protobuf,提供server,序列化等一站式解决方案。 一. 下载 http://thrift.apache.org/download 二. 编写IDLnamespace java org.sun.service service SimpleThriftService{ s...原创 2017-08-01 18:09:46 · 159 阅读 · 0 评论 -
thrift servlet
Thrift通常以独立服务存在,也支持HTTP协议,以servlet方式在Tomcat中运行。 一. 服务端Servlet实现比较简单,只需实现TExtensibleServlet,并在getProcessor()中填充实现类。/** * Thrift servlet */@WebServlet(name="thrifttest",value="/thriftt...原创 2017-08-01 19:35:44 · 202 阅读 · 0 评论 -
DES加密
DES 对称加密方式,在通信过程中经常用到。DES有四种加密模式: 1. ECBElectronic Codebook最古老简单的模式,加密数据长度必须为8的倍数(不足8位添加padding),密钥必须为8位。不依赖向量,易受到字典攻击。不推荐。2. CBCCipher Block Chaining引入初始化vector,可以使用不同的Vector产生不同的密文。缺...原创 2017-01-25 10:13:09 · 310 阅读 · 0 评论 -
Java 动态代理
Spring框架两大核心原理:AOP和IOC,IOC Inversion of control 用来解决依赖关系,通过工厂模式实现。AOP Aspect of programming 通过动态代理实现。 1. 定义接口/** * 用户服务接口 * @author lingsun * */public interface UserService { p...原创 2017-12-11 15:25:43 · 100 阅读 · 0 评论 -
Java Lambda
该语法糖在jvm脚本语言Groovy/Scale已有很好的支持,Java从8.0才开始支持该特性。 /** * 基础Lambda表达式 * */public static void testLambda() { String[] ss = { "hello", "world", "sun" }; List<String> list = Arra...原创 2017-12-11 15:35:03 · 187 阅读 · 0 评论 -
原子操作
一. Java volatilevolatile关键字可保证变量可见性,但是无法保证原子性,下面演示多线程修改共享变量Count场景。/** * 共享变量在多线程下修改测试 */public class NonAtomicTest extends Thread { public static volatile int count = 0; pub...原创 2018-05-15 14:29:21 · 145 阅读 · 0 评论 -
设计模式之观察者模式
观察者模式在对象间定义一对多的依赖,当一个对象改变状态,依赖它的对象都会收到通知。类图: 一. java swingswing 注册事件监听器过程,就是观察者模式。// 注册监听事件button.addActionListener( new ActionListener(){ @Override public void actionPerformed(A...原创 2018-05-17 13:43:31 · 131 阅读 · 0 评论 -
Scala 使用
一. 安装环境wget https://downloads.lightbend.com/scala/2.12.6/scala-2.12.6.tgzvi ~/.bash_profileexport PATH=$SCALA_HOME/bin:$PATH 二. 运行Scala是解释性JVM语言,编译后会生成*.class。也可在交互式CLI上编码。ling-Pro:~ s...原创 2018-06-10 17:09:22 · 134 阅读 · 0 评论 -
Scada 使用二
1. var & valvar 变量,可变val 类似常量,不可变 2. map/reduceval list = List(1,2,3,4,5,6)list.map( f => println(s"val: $f") ) // val:1 xxx val:6val sum = list.reduce( (sum, n) => sum+n ...原创 2018-06-11 20:19:08 · 469 阅读 · 0 评论 -
java 反射攻击
Java反射机制指的是程序在运行时能够获取自身的信息;它能动态截获或改写程序的行为。 1. 单例模式漏洞/** * 懒汉式单例模式 */public class Singleton { private static Singleton instance = null; private Singleton() { } public stat...原创 2017-06-18 22:11:26 · 602 阅读 · 0 评论 -
基于http的protobuf服务实现
通常webapi实现通过http get/post请求,返回文本型的json,xml等字符串。本文以Tomcat8为web服务器,借助protobuf框架,响应二进制数据。由于protobuf协议能跨语言,我们可以用java servlet实现服务端,C/C++实现客户端,达到各模块解耦目的。双方需设置ContentType为application/x-protobuf。 1...原创 2017-05-28 10:34:35 · 3895 阅读 · 0 评论 -
Tomcat 启用gzip
1. 配置启用gzip vi conf/server.xml<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" compression="on" compressionMinSiz..原创 2017-05-27 11:21:41 · 126 阅读 · 0 评论 -
QT读取和修改配置文件
对于配置文件不仅要读取里面信息,可能还会修改; 前不久看到一篇文章,那小伙来修改配置文件时, 首先通过QTextStream加载所有内容后,去更换里面字符串后再写入文件, 每次这样效率得多低了; 其实QT中提供了很好的修改配置文件接口,直接使用就行,这点比java也要方便多了. /** * QT读取和修改配置文件,当执行setValue后查看配置文件,发现内容变化了...原创 2012-08-01 10:03:04 · 1489 阅读 · 0 评论 -
Cannot run program "videostore: Too many open files
java.io.IOException: Cannot run program "videostore": java.io.IOException: error=24, Too many open files Javadoc says:The parent process uses these streams to feed input to and get output fr...原创 2012-08-01 10:40:05 · 2626 阅读 · 0 评论 -
tomcat 不能访问中文名称文件
Tomcat 6.0 下下载中文名称的文件,会报404错误 根据错误发现中文名称被转化了,因此必然找不到%E5%AE....xls这样的文件 解决方案: 在server.xml 加入URIEncoding="UTF-8"就行了 <Connector port="8080" protocol="HTTP/1.1" ...原创 2012-12-04 10:24:12 · 608 阅读 · 1 评论 -
Structure array elements must use contiguous memory (bad backing address at Stru
JNA以结构体数组为参数进行调用: ////// C++// student 结构体定义typedef struct { int age; char name[20];}Student;// 修改java对象的属性值JNAAPI bool changeObjs(Student stu[],int size){ for(int i=0;i<...原创 2012-08-28 17:42:01 · 1090 阅读 · 1 评论 -
JNA修改结构体
JNA返回结构体: 在C++中返回一个大结构体比较耗资源的,不可取.一般可以通过传入指针或变量引用值, 在方法中修改达到返回结果的目的。 java对象默认的是传地址引用,那么我们就可以在C中修改java对象后返回,减少对象传递时的性能损耗。 // 结构体定义typedef struct _Point{ int x; int y;}Point;/*...原创 2012-08-28 18:13:15 · 218 阅读 · 0 评论 -
java2chm [Errno 3]: 'index-files/*.*'
最近找到两个能将java API文档打包成chm的小工具,用起来不错,分享一下; 终于结束用浏览器打开API文档,用肉眼不停的搜索类库的历史了. 1. java2chm 安装之前必须先安装 htmlhelp.exe,然后直接在API文档目录下运行java2chm命令,成功后,即在当前目录下生成*.chm,方便快捷. 刚开始使用时,就报如下错误:...原创 2012-09-07 17:32:44 · 124 阅读 · 0 评论 -
正则表达式
一. 基础^$只指示位置,不占用空间\b只指示位置,匹配单词边界;包括:中文/空格/换行 元字符:\xNNN16进制,\x08f \uNNNN16进制unicode字符,中文范围[\u4e00-\u9fa5] 分组:/(ha){1,2}/ha分组当作一个字符单元,匹配hahawen // js比较怪异,/xx/表示RegExp对象/(ha...原创 2013-07-01 17:44:22 · 110 阅读 · 0 评论 -
有趣的if else
看下面java代码,调用getString(1)时输出?class Test { public String getString(int a) { String str = "by sea"; if(a>0) if(a>1) str = "by land"; else str = ""; return str; }}...原创 2014-09-20 12:44:43 · 168 阅读 · 0 评论 -
zookeeper Session Expired
zookeeper 客户端封装比较优雅,当服务器中断或网络超时时,会自动重连服务器。但是当某些其它未知原因出现,例如网络超时导致的客户端报错:Session Expired,导致重连失败。 zookeeper客户端与服务器维持一个长连接,每个连接拥有唯一的session id。Session连接通常是一直有效,如果因为网络原因断开了连接,客户端会使用相同的session id进行重...原创 2016-08-07 21:53:41 · 2205 阅读 · 0 评论 -
Java http get
一般在java处理Get/Post请求,用的比较多是apache的commons-httpclient.jar库,封装比较彻底,使用比较简单。有些简单应用场合,不需要使用httpclient库,可以直接使用Java内置URLConnection类。 客户端:public String getInfoFromServ( String path ){ BufferedReader ...原创 2015-12-11 12:30:37 · 122 阅读 · 0 评论 -
Zookeeper
Zookeeper是一个高性能,分布式的,开源分布式应用协调服务。它提供了简单原始的功能,分布式应用可以基于它实现更高级 的服务,比如同步,配置管理,集群管理,名空间。 集群搭建zookeeper集群组建需最少提供3台服务器,其中一台充当leader,负责写和数据同步,剩下的为follower,提供读服务。 数据存储zookeeper数据以key,value方式存储...原创 2016-02-27 16:09:35 · 87 阅读 · 0 评论 -
MINA 2.0.1 异常: line is too long
1. MINA传递大文本时, 会出现异常: org.apache.mina.common.BufferDataException: Line is too long: 1531 原因是MINA设置的行解码器长度太小,默认的才1024,必须增大其长度; 代码如下. TextLineCodecFactory lineCodec=new TextLineCodecFactory(Chars...2012-05-31 09:49:12 · 325 阅读 · 0 评论