
java
文章平均质量分 90
乐之者java
个人主页:http://www.roadjava.com/
展开
-
xstream操作xml
一、基本使用(1)Xstream介绍 Xstream是一种OXMapping 技术,是用来处理XML文件序列化的框架,在将JavaBean序列化,或将XML文件反序列化的时候,不需要其它辅助类和映射文件,使得XML序列化不再繁索。Xstream也可以将JavaBean序列化成Json或反序列化,使用非常方便。(2)Xstream的简单例子pom.xml中引入xstream的依赖: <dependency> <groupId>com.thought...原创 2021-01-16 18:58:12 · 2675 阅读 · 1 评论 -
webservice,搞懂它
一. 简介一、WebService是什么WebService是一种跨编程语言和跨操作系统平台的远程调用技术跨编程语言:就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然!跨操作系统平台:服务端程序和客户端程序可以在不同的操作系统上运行。远程调用:就是一台计算机a上的一个程序可以调用到另外一台计算机b上的一个程序的接口方法,譬如,银联提供给商场的pos刷卡系统,商场的POS机转账调用的转账方法的代码其实是跑在银行服务器上。再比如,amazon,天气预报系统,淘原创 2021-01-16 18:12:22 · 3196 阅读 · 0 评论 -
java中的加密与解密算法
对称加密、非对称加密、摘要算法的区别在哪里?一、对称加密技术对称加密特点是加密和解密的过程使用相同的密钥(也叫做key),也就是说加密的时候使用的秘钥,在解密的时候也要用这个密钥,这种方法在密码学中叫做对称加密算法,对称加密算法使用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密性好,而且对计算机功能要求也没有那么高。对称加密算法在电子商务交易过程中存在几个问题: 1、要求提供一条安...原创 2020-10-31 14:08:17 · 1533 阅读 · 2 评论 -
java解决跨域问题
项目要做前后端分离,前端一律采用html使用ajax与后端交互,前端和后端是分开的项目,前端开发人员请求后台网址往往就要解决跨域的问题。现在模拟一下,说明如何解决这个问题,比如,http://localhost:8888/b.html,其代码如下:<scriptsrc="jquery-1.12.4.min.js"></script><script>$.ajax({type:"POST",url:"http://localhost/back...原创 2020-10-23 13:35:20 · 212 阅读 · 0 评论 -
解锁swing技术新姿势,坦克大战游戏-java swing项目再实战
这,这是一个围绕Java swing技术趣味级的学习,助你解锁swing技术新姿势,更给力的项目,更用心的创作。除了可以巩固swing必备的基础之外,尤其涉及swing绘图技术、多线程操作、线程安全,io流的实际应用场景,分析透彻,说实话,不看,你亏大发了!!! 来看看界面和游戏功能。1.欢迎界面:2.游戏界面3.菜单功能新鲜不新鲜?作为程序员,是不是想一探究竟,我相信,你是你这个好奇心的,GO!第一种方法:http://www.roadjava.com/...原创 2020-09-20 20:54:45 · 918 阅读 · 1 评论 -
lucene报错:IndexNotFoundException: no segments* file found in
lucene报错:org.apache.lucene.index.IndexNotFoundException: no segments* file found in MMapDirectory@D:\workspace2\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\lzzcms\WEB-INF\indeies\tmp lockFactory=org.apache.lucene.store.NativeFSLockFact原创 2020-07-31 13:08:41 · 3233 阅读 · 0 评论 -
dubbo出现的背景
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构(即把action层、service层、dao层分开成单独的应用)已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。单一应用架构(all in one)当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键,什么都是在一个工程中,就叫“all in one”了,部署起来就...原创 2020-07-21 22:19:30 · 178 阅读 · 0 评论 -
nginx和dubbo都是针对高并发、负载均衡,怎么看待它们的区别?
dubbo的负载均衡是基于服务层面的,是一个中间件,而nginx的负载均衡是在http请求层面,是一个软件。两者所处的位置是不同的,至于二者哪个优秀,感觉没办法去比较。不过,如果没要去比较,也能说出个一二三来。dubbo具备了server服务的注册,发现、路由、负载均衡的功能,在所有实现了这些功能的服务治理组件中,dubbo的性能与高效率是毋庸置疑的,毕竟dubbo撑起了阿里的很多业务,跟阿里内部使用的tddl(头都大了),hsf(好师傅、好舒服(别理解错了哦))都是...原创 2020-07-21 22:18:32 · 737 阅读 · 0 评论 -
maven依赖的jar包不在repository中
今天在使用maven编译打包一个web应用的时候,碰到一个问题:项目中使用到了一个在maven中央仓库无法搜索到的jar包,怎么办呢?我把这个jar包下载下来之后,放在了WEB-INF/lib目录下,并通过buildpath中将web libariary导入。 在eclipse中开发没有问题,但是使用maven编译插件开始便宜总是报找不到WEB-INF/lib这个jar包中的类。 显然实在编译的时候WEB-INF/lib并没有配置到maven-complier-plugin插件src目录中去, 于是将.原创 2020-07-17 19:34:53 · 807 阅读 · 0 评论 -
eclipse中maven依赖的jar源码中文注释乱码解决
使用mybatis plus,在使用maven下载了source之后,在eclipse中查看com.baomidou.mybatisplus.entity.GlobalConfiguration类的源码时,因为这个mp是中国人开发的,里面的中文注释在eclipse中显示是乱码,怎么解决呢?通过maven下载源代码,在eclipse中浏览源代码时,发现中文注释为乱码的问题。eclipse默认编码造成的问题。可以通过以下方法解决:1.修改Eclipse中文本文件的默认编码:wi...原创 2020-07-17 19:32:03 · 393 阅读 · 0 评论 -
IntelliJ IDEA里找不到javax.servlet的jar包
在初次使用 IntelliJ IDEA 中,当你使用javax.servlet包下的类时(例:javax.servlet.http.HttpServlet), 在你会发现在IntelliJ IDEA里无法成功编译这个程序。解决方案如下:1、选中项目(在IntelliJ中称为Module);2、点击右键,选择open modual settings(或者直接按F4);3、在弹出的窗口左端选择Libraries;4、点击顶端的一个类似加号“+”的图标;5、在右端选择第一项(Atta.原创 2020-07-17 19:30:31 · 359 阅读 · 0 评论 -
Maven - error in opening zip file
Maven项目运行报错 - error in opening zip file,ant-1.7.0.jar,这种错误一般都是由于这个jar包没有成功下载导致的,可以在maven仓库中把jar包删除之后再重新下载即可解决这类问题。原创 2020-07-17 19:28:38 · 304 阅读 · 0 评论 -
distributionManagement
distributionManagement的作用是"分发构件至远程仓库": mvn install 会将项目生成的构件安装到本地Maven仓库,mvn deploy 用来将项目生成的构件分发到远程Maven仓库。本地Maven仓库的构件只能供当前用户使用,在分发到远程Maven仓库之后,所有能访问该仓库的用户都能使用你的构件。我们需要配置POM的distributionManagement来指定Maven分发构件的位置。一、Maven项目的POM中,环境配置<distribu...原创 2020-07-21 22:14:07 · 18291 阅读 · 0 评论 -
设置maven默认使用jdk1.8
在新建maven项目的时候,一般的自动引入的jre都是jdk1.5,我们可以在我们使用的settings.xml中配置如下内容,就可以让新建的maven项目引入的jre默认是1.8了:<profile><id>jdk-1.8</id><activation><activeByDefault>true</activeByDefault><jdk>1.8</jdk>...原创 2020-07-17 19:35:41 · 884 阅读 · 0 评论 -
配置tomcat
配置tomcat启动的jvm参数:vi/usr/tomcat/apache-tomcat-7.0.78/bin/catalina.sh在cygwin=false上边加入:JAVA_OPTS="-Xms512m-Xmx512m-Xss512K-XX:PermSize=256m-XX:MaxPermSize=256m"配置tomcat7管理界面:vi tomcat-users.xml:<rolerolename="admin-gui"/><...原创 2020-07-21 22:13:57 · 115 阅读 · 0 评论 -
maven中dependencyManagement 和pluginManagement的使用
前边说了maven的modules,要明确的一点是:只有你的项目分成了若干个模块(可能是基于功能分模块,比如action模块,service模块,dao模块;也可能是基于业务分模块,比如user模块,order模块等),才有使用modules的必要。一个大中型Java项目中,一般由若干个module组成,各个module各司其职,担任整个工程中不同角色。大多数情况下,大多数module都会用到相同的jar包,或者插件。如果每个module中都引入自己喜欢的jar、插件,不...原创 2020-07-17 19:36:37 · 1411 阅读 · 0 评论 -
maven的常用命令
平常我们都是把maven以插件的方式集成到ide里面去,使用的时候呢,自然也是插件结合ide提供了gui界面啦,究其本质,都是执行的maven命令,而对maven命令你又知道多少呢?创建一个简单的Java工程:mvnarchetype:create-DgroupId=com.mycompany.example-DartifactId=Example创建一个java的web工程:mvnarchetype:create-DarchetypeGroupId=org....原创 2020-07-17 19:36:09 · 95 阅读 · 0 评论 -
maven web项目引入servlet-api和jsp-api
maven构建的web项目如果要使用HttpServletRequest或者PageContext等servlet或者jsp的api时,需要引入servlet-api和jsp-api,为什么我们之前的dynamic web project不需要引入呢?因为以前的dynamic web project run as 在server之上,server里面本来就有这两个jar包呀,比如tomcat:使用maven开发web项目就需要自己引入这两个jar包了,<scope>...原创 2020-07-16 20:18:38 · 5586 阅读 · 0 评论 -
maven报编码GBK的不可映射字符的错误
maven运行项目的时候报错:........[ERROR] /D:/workspace3/lzz-services/src/main/java/com/roadjava/service/impl/TextServiceImpl.java:[326,47] 编码GBK的不可映射字符[ERROR] /D:/workspace3/lzz-services/src/main/java/com/roadjava/service/impl/TextServiceImpl.java:[326,33] 未结束原创 2020-07-16 20:18:20 · 446 阅读 · 0 评论 -
autoconfig-maven-plugin的使用
我们的java应用需要可能部署在开发dev环境、测试test环境、uat环境、生产prd环境上,举个例子,加入我们的java应用需要连接mysql数据库的话,那么这四种环境的数据库地址一般也要使用不同的;日志级别各个环境也不一样;缓存配置等都可能不一样,为了避免在不同的环境下我们使用相同配置文件需要修改的麻烦,我们可以给每一种环境使用不同名字的配置文件,打war包时使用对应的配置文件打包上到对应环境就行了,autoconfig-maven-plugin这个maven插件就是干这件事的。一...原创 2020-07-16 20:00:37 · 1885 阅读 · 0 评论 -
HttpClient4.5.2 HttpClientBuilder配置使用连接池
先看示例代码,代码有点长,不过大家理清思路来看应该不是问题:importjava.io.IOException;importjava.security.cert.X509Certificate;importjava.util.ArrayList;importjava.util.List;importjavax.net.ssl.SSLContext;importjavax.net.ssl.TrustManager;importjavax.net.ssl.X509TrustMa...原创 2020-07-15 18:29:40 · 7724 阅读 · 0 评论 -
HttpClient4.5.2连接池的使用及注意事项
一、为什么要用Http连接池1、降低延迟:如果不采用连接池,每次连接发起Http请求的时候都会重新建立TCP连接(经历3次握手),用完就会关闭连接(4次挥手),如果采用连接池则减少了这部分时间损耗,别小看这几次握手,本人经过测试发现,基本上3倍的时间延迟2、支持更大的并发:如果不采用连接池,每次连接都会打开一个端口,在大并发的情况下系统的端口资源很快就会被用完,导致无法建立新的连接二、代码01、自定义一个HttpConnectionManager.java连接池管理类,支持https协议,并原创 2020-06-30 20:59:21 · 933 阅读 · 0 评论 -
httpclient请求返回403
使用httpclient访问网络url做爬虫时,出现403的情况:查了查403的几种可能性:403禁止访问:访问被拒绝403.1禁止访问:执行访问被拒绝403.2禁止访问:读取访问被拒绝403.3禁止访问:写入访问被拒绝403.4禁止访问:需要使用SSL查看该资源403.5禁止访问:需要使用SSL128查看该资源403.6禁止访问:客户端的IP地址被拒绝403.7禁止访问:需要SSL客户端证书403.8禁止访问:客户端的DN...原创 2020-06-30 20:48:52 · 2602 阅读 · 0 评论 -
为什么需要消息中间件?mq最初的设计是为了解决什么问题?
消息中间件,常见的有activemq,oracle aq,ibm websphere mq,rabbitmq,阿里的rocketmq等等把,不一而足,这么多的mq为什么要出现呢?大家有没有思考过?或者是了解过。其实,最最初,是这样的:拿上面这个图举例来说,a系统需要不停的给b系统推送数据,假设每秒推送100条大的json串,而b系统需要对每一条json串进行校验、解析之后再入库等等其他操作,假设b系统每秒能处理10条json串,那么两秒过后,在b系统这里将会堆积1...原创 2020-06-30 20:59:01 · 301 阅读 · 0 评论 -
java中使用jsoup解析html
在爬虫技术中,可以分为两个阶段:一、获取到目标地址url的html内容二、解析获取到的html内容并选择想要的片段,比如标题、作者、内容等信息第一个阶段,我们在java里面可以使用httpclient来实现,通过httpclient可以获取到目标地址的html内容,这我们在之前已经说过很多了,如何从获取到的html内容中摘取自己想要的片段呢?使用到的技术可以有很多种,我们在这里介绍一个,叫做jsoup的东西。引入jsoup:<dependency> <groupId原创 2020-06-30 20:58:40 · 804 阅读 · 0 评论 -
idea 检出svn项目报不是工作副本(working copy)
idea 检出svn项目报不是工作副本(working copy),这是因为idea在检出svn项目的时候,有一个界面是让你选择 1.6 format,1.7 format,1.8 format,我之前以为这里是选择jdk,就选择了本机上安装的1.7,其实这里是指的svn版本,idea支持这三个版本,我项目svn使用的是1。8,这里如果我使用1.7 format的话就会报错:17:42Problems while loading file history: File F:/Program...原创 2020-06-30 20:33:18 · 1683 阅读 · 0 评论 -
postman如何发送application/json类的post请求
当接口类型限制为只接受application/json类型的请求,我们使用postman测试的时候怎么选择呢?如下图:我们需要先在postman上选择POST请求方法,后边输入要请求的地址即可。在Body选项卡选择raw,然后再后边的下拉选项中选择application/json,此时postman会自动帮你设置响应头Content-Type:application/json,不需要你自己去手动再选择Headers去设置了,之后在下边的文本区域输入你要发送的文本即可;最后点击po...原创 2020-06-30 20:34:53 · 10210 阅读 · 1 评论 -
eclipse git插件提示cannot open git-upload-pack怎么回事
使用eclipse keepler通过git 拉取项目时报错:eclipsegit插件提示cannot open git-upload-pack,怎么回事呢?why?如图:解决:依次选择eclipse的windows-->Preferences-->Team-->Git-->Configuration-->User Settings.然后点Add Entry新建一个键值对,输入http.sslVerify=false,如下图:...原创 2020-06-30 20:34:42 · 298 阅读 · 0 评论 -
如何修改eclipse中新建的jsp的模板
默认的,使用eclipse新建的jsp是下面这个样子的:<%@pagelanguage="java"contentType="text/html;charset=ISO-8859-1"pageEncoding="ISO-8859-1"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">&...原创 2020-06-30 20:34:29 · 1888 阅读 · 0 评论 -
使用request接受不到httpclient post提交的参数
下面的httpclient代码用于远程修改一个bug,需要提交给接口两个参数,最后等待老半天执行完成之后,发现并没有修改成功,最后经过本地调试发现接口里根本没有接受到httpclient发送的post 请求里面的参数(接口里面是使用request.getParameter("id")的方式),代码是这样的:Stringurl="http://localhost/back/toggleItem";HttpPosthttpPost=newHttpPost(url);http...原创 2020-06-30 20:21:46 · 1556 阅读 · 0 评论 -
httpclient请求需要登录的url被302重定向
使用httpclient请求一些需要登录才能访问的url的时候,如果不做任何设置,对方系统有拦截判断用户是否登录的话,你的请求将会失败,或者被重定向到登录页面,这样就不能完成请求,如何解决呢?此时需要设置httpclient的cookie信息。当然,前提是你需要有一个账号,然后把这个账号的cookie信息放入httpclient中就行了。如何获取一个用户的cookie信息呢,可以在浏览器中按f12,任意找一个请求,即可看到类似如下的信息:在httpclient中如...原创 2020-06-29 19:18:13 · 765 阅读 · 0 评论 -
HttpClient可以直接请求https,为何要绕过ssl证书验证?
本程序使用的HttpClient版本: httpclient4.5.2一个有意思的现象,看下面这段获取百度首页代码的HttpClient请求:importjava.io.IOException;importorg.apache.http.HttpEntity;importorg.apache.http.client.methods.CloseableHttpResponse;importorg.apache.http.client.methods.HttpGet;im...原创 2020-06-29 19:16:47 · 1935 阅读 · 3 评论 -
什么是ssl,以及与https的关系,还有ca、pki等相关概念的解释
什么是HTTPS?HTTPS(即Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。这个系统的最初研发由网景公司(Netscape)进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。HTTPS和HTTP的区别有哪些?一、https协议需要到ca申请证书,收费的。二、http没有https安全。三、端口不同,h...原创 2020-06-29 19:11:03 · 5207 阅读 · 0 评论 -
httpclient使用的一般步骤总结
这里我总结的httpclient的使用步骤是基于httpclient4.5的,请知悉:01、创建CloseableHttpClient对象。02、创建请求方法的实例,并指定请求URL。如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建HttpPost对象。03、如果需要发送请求参数,可可调用setEntity(HttpEntity entity)方法来设置请求参数。setParams方法已过时(4.4.1版本)。...原创 2020-06-29 19:09:22 · 748 阅读 · 0 评论 -
java获取http请求头和设置http响应头
request得到请求header,request.getHeaderNames();response设置响应头。response.setHeader(name,value);//通用的设置响应头的方法//有些响应头比较常用,如果使用response.setHeader(name,value);的方式,你需要正确的写出其name,因此java有单独把这些重要的//常用的响应头拎出来封装成了方法,省的你去记name了//注:设置应答头应该在发送任何文档内容之前进行。 respo...原创 2020-06-29 19:08:39 · 3487 阅读 · 0 评论 -
利用swt获取系统所支持的扩展名以及系统中所有的安装程序
@TestpublicvoidsystemApp(){String[]extensions=Program.getExtensions();System.out.println("系统中所有支持的扩展名:");for(inti=0;i<extensions.length;i++){System.out.println(extensions[i]);}...原创 2020-06-02 23:49:09 · 172 阅读 · 0 评论 -
swt使用系统资源文件
swt中使用系统的资源文件,比如图片,跟在web中方法是类似的,我们都需要先找到这个资源,之后才能谈得上去使用它。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 @Test publicvoidsystemResouce(){ ...原创 2020-06-02 23:49:00 · 171 阅读 · 1 评论 -
swt里面的线程处理
packageswt;importorg.eclipse.swt.SWT;importorg.eclipse.swt.events.SelectionAdapter;importorg.eclipse.swt.events.SelectionEvent;importorg.eclipse.swt.layout.GridLayout;importorg.eclipse.swt.widgets.Button;importorg.eclipse.swt.widgets....原创 2020-06-02 23:48:53 · 166 阅读 · 0 评论 -
swt的菜单栏Menu的使用
@TestpublicvoidtestMenu(){//负责和操作系统交互,如读取底层事件等Displaydisplay=newDisplay();//窗口ShelltopShell=newShell(display,SWT.SHELL_TRIM|SWT.BORDER);topShell.setText("testMenu...原创 2020-06-02 23:48:45 · 887 阅读 · 0 评论 -
swt之ToolBar详解
ToolBar一般用来做窗口的工具条,如下的效果:、实现java代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31原创 2020-06-02 23:48:39 · 857 阅读 · 0 评论