![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 54
he_qiao_2010
Make a dent in my notebook... not in the universe
展开
-
java实现打印某个目录的全部子文件名称
import java.io.*; //实现打印某个目录的全部子文件名称(包括子目录)import java.util.Scanner;public class Test { //命令行参数需要提供一个目录参数 public static void main(String[] args) throws Exception { if (args.length!=1原创 2013-01-17 13:35:25 · 1589 阅读 · 0 评论 -
如何将jar包发布到中央仓库
之前在github上开发了一个简单的项目,一直想把这个jar包发布到中央仓库。一直没有时间弄这个,今天抽出点时间,按照网上的例子,操作了一遍,顺便记录一下,一遍将来参考。我的开发环境是ubuntu18.04,maven3,整个过程还是比较顺利的。注册JIRA账号打开https://issues.sonatype.org/secure/Dashboard.jspa ,用邮箱注册即可。创建i...原创 2019-06-21 23:16:47 · 1341 阅读 · 0 评论 -
Freemarker中如何避免xss漏洞
什么是XSS漏洞试想一下,如果我们开发一个订单系统,订单名称如果没有做限制,允许用户输入任意字符,那么就有产生XSS的危险。攻击者可以很容易编写一个恶意JS脚本,然后将当前登录用户的cookie或者其他敏感信息抓取到,发送给攻击者自己,这就是XSS(跨站脚本)攻击。如何解决这个问题,首先我们想到的是在用户输入订单的时候,我们对订单名称做限制,不允许输入特殊字符。这样是可以避免的,不过对于一个大的...原创 2019-06-20 20:52:06 · 3233 阅读 · 3 评论 -
记一次重写RequestMappingHandlerMapping的经历
近期公司的产品做了一次安全审查,发现后端提供的接口有不安全的Http方法漏洞。不安全的HTTP方法一般包括:TRACE、PUT、DELETE、COPY 等。其中最常见的为TRACE方法可以回显服务器收到的请求,主要用于测试或诊断,恶意攻击者可以利用该方法进行跨站跟踪攻击(即XST攻击),从而进行网站钓鱼、盗取管理员cookie等。原因分析引起这个问题的原因其实很简单,因为开发人员开发接口的...原创 2019-06-20 09:34:26 · 4222 阅读 · 0 评论 -
如何从jar包中读取配置文件
今天开发的时候遇到一个问题——当程序以jar包运行的时候,有个txt配置文件无法获取到,但是本地测试无法复现.后来发现是因为以Jar包形式运行,文件无法访问到,这里记录一下。1. 如何判断当前进程是否以jar包形式运行的?/** * 是否以Jar包运行 * * @return */public static boolean isRunningInJar() ...原创 2018-08-05 14:14:06 · 3309 阅读 · 0 评论 -
异步线程池优化记录
转自: http://heqiao2010.com/articles/2018/06/22/1529662276856.html 目前在公司做的一个无线Wi-Fi认证系统,采用公有云模式,24小时不间断服务,而且在上班时间会有业务并发的高峰,目前高峰值能到4000多的qps,在这个领域来说,还是比较高的。在这种场景下需要将一些操作异步执行,以提高页面的响应速度,比如某些情况下将大对象入库,...转载 2018-06-25 08:51:24 · 830 阅读 · 0 评论 -
摘要认证客户端demo
摘要认证 目前对于对外的接口安全,采用的认证方式接触到最多的就是Basic认证和摘要认证;由于Basic认证安全性比较低,目前在项目中用的多的还是摘要认证;对于调用摘要认证接口,下面给出一个简单的测试demo。 其实对于给第三方提供接口,最理想最可控的方式还是走Oauth2.0。demo 代码:package com.github.heqiao2010;import java.net原创 2017-04-30 13:56:34 · 1432 阅读 · 0 评论 -
中国农历的Java实现
中国农历支持公历范围为:1900-01-31到2099-12-31范围内,农历日期和公历日期的转换。实现思路通过记录1900年-2099年间的农历信息到二维数组中,经过查询和相关计算就能实现公历日期和农历日期之间的转化。 例如: { 8, 131, 301, 331, 429, 528, 627, 726, 825, 924, 1023, 1122, 1222, 1320 }, // 1900原创 2015-09-07 22:14:06 · 5514 阅读 · 0 评论 -
Java实现基于百度地图的坐标拾取功能
功能用Java实现通过调用百度地图API,实现查找地点经纬度和范围的功能。注意百度地图地点搜索接口需要认证,且有访问限制:每天只能访问50万次。用法GeofencingDialog dialog = new GeofencingDialog(); dialog.setVisible(true); //显示对话框 String radius = dialog.getRadiusStr();原创 2015-08-05 15:35:21 · 5533 阅读 · 0 评论 -
Java Calendar的几个注意
Java中对日期的处理需要用到Calendar类,其中有几个方法在使用时需要新手注意。1. 在获取月份时,Calendar.MONTH + 1 的原因Java中的月份遵循了罗马历中的规则:当时一年中的月份数量是不固定的,第一个月是JANUARY。而Java中Calendar.MONTH返回的数值其实是当前月距离第一个月有多少个月份的数值,JANUARY在Java中返回“0”,所以我们需转载 2014-03-25 20:02:29 · 1394 阅读 · 0 评论 -
Eclipse编码设置
一般Java文件编码格式是UTF-8的。以下以默认GBK改为UTF-8为例。 1.改变整个工作空间的编码格式,这样以后新建的文件也是新设置的编码格式。 eclipse->window->preferences->General->workspaceTypes->Other->UTF-8->OK 汉化版:eclipse->窗口->首选项->常规->工作空间->其它->UTF-8-转载 2014-03-24 16:08:30 · 816 阅读 · 0 评论 -
Java实现表达式计算器
下午闲的没事,就用以前写的一个表达式计算器类,写了一个带界面的简单的计算器。界面如下:由于第一次使用Swing,不是很了解,界面元素没有布局,而是直接通过像素来定位的,-_-||例如加减乘除按钮:if (oJbadd == null) { oJbadd = new javax.swing.JButton(); oJbadd.setBounds(PAD原创 2013-12-15 17:02:53 · 2977 阅读 · 0 评论 -
对Java反射机制的认识
1. Java反射机制是动态语言的一种特质动态类型语言和静态类型语言的主要区别:在编译期检查变量类型还是在运行期检查编译类型,比如静态语言:C,C++ 动态语言:Shell,python,JS 等。而反射允许Java把对某些类的类型检查的过程推迟到运行时。 2. 反射的特点反射机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的c原创 2014-01-22 18:49:41 · 1371 阅读 · 0 评论 -
对控制反转的理解
1. 起源马丁·富勒:哪些方面的控制被反转了? 马丁·富勒:依赖对象的获得被反转了。 2. 什么是反转依赖对象:大多数应用程序都是由两个或是更多的类通过彼此的合作来实现业务逻辑,这使得每个对象都需要与其合作的对象的引用。例如Class A中用到了Class B的对象b,一般情况下,需要在A的代码中显式的new一个B的对象。而是用控制反转,则A的代码只原创 2014-01-22 19:08:53 · 1981 阅读 · 0 评论 -
Eclipse--java.lang.OutOfMemoryError: PermGen space
这一段时间,Eclipse总是死掉,几乎是稍微操作快一点就会死掉,几分钟一次,搞得人郁闷至极。浪费了不少时间,在网上搜了下,看到很多朋友也出现类似的情况,在网上求救,但是网上的办法都只是说通过修改eclipse.ini文件来加大Eclipse的内存。 自己试了下,发现不管用。今天,又死掉了,不过爆出一个经常出现的错误,大意是:permgen space导致内存溢出。实在忍无可忍,上转载 2013-12-17 14:12:39 · 948 阅读 · 0 评论 -
Apache axis2 + Eclipse 开发 WebService
参考这片文章:http://blog.csdn.net/xiaochunyong/article/details/7764683文章很详细,只是最后出了点问题:ECLIPSE报错:Access restriction: The type Resource is not accessible due to restriction on required library转载 2013-07-05 00:13:29 · 1976 阅读 · 0 评论 -
Java线程初步
线程基本概念线程是一个程序内部的顺序控制流,也可以将线程看做是一个程序中不同的执行路径。线程和进程的基本区别进程可以看做是静态的,在一个程序执行之前,在内存中会生成这个进程的代码空间和数据空间,并且一个进程的代码空间和数据空间一般情况下是独占的,不和其他进程共享(如果不进行交互的话);当这个程序开始执行,在这个进程中会产生一个主线程,然后这个主线程开始执行,如果有需要,这个主线程还原创 2013-05-19 22:24:40 · 1540 阅读 · 0 评论 -
JUC共享锁之Semaphore
Semaphore原意是指信号量,从API的注释:"Semaphores are often used to restrict the number of threads than can access some (physical or logical) resource"可以看出,Semaphore一般是用来限制线程能够使用的资源个数.应用场景在Web开发中,Semaphore可以用来...原创 2019-07-01 12:50:11 · 302 阅读 · 0 评论