Java EE
文章平均质量分 75
z2012c
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
关于IDEA的debug阻塞模式的一个坑
-----------------------20180504更新-------------------------------------今天用idea的maven compile时,发现虽然idea的设置已经将Java compile设置成1.8(我本机的jdk版本),且maven项目的project settings也是1.8,但一直是出现如下情况:[ERROR] Failed ...2018-05-03 17:28:42 · 5419 阅读 · 0 评论 -
进一步理解get和set
做CRUD的功能时,我们常常会定义一个和表对应的实体类信息,然后这个实体类信息的属性和表中的字段一一对应,然后加上每个属性的get和set方法;更规范的做法是,在此基础上再加一个DTO类,它与实体类长得几乎一样,但是这个类不直接和表关联。 之前一直不明白为何要再定义一个dto类,也觉得get和set方法不外乎是:public String getEmail() { ret...2016-11-17 17:23:31 · 378 阅读 · 0 评论 -
将Java Project (非web项目)打成Jar包并实现相关功能
【若要转载,请标明出处,谢谢~~】http://raising.iteye.com/admin/blogs/2259209 在实际项目中,很常见的是,会把一个web项目打成war包部署到tomcat或者weblogic服务器上来运行。但相对而言用的较少的是,把某一个java项目(非web项目)打成jar包作为一些功能的进程,这种是比较巧妙和实用的做法。 比如本人最近接触...2015-11-25 17:21:42 · 489 阅读 · 0 评论 -
使用Hessian来进行远程调用
Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能. Spring也对Hessian进行了支持,以下就用一个简单的例子来说明下如何在Spring中使用Hessian吧。 Hessian的服务端配置:在服务端的某个applicationContext-*.xml(命名不限)创建HessianServiceExporter来暴露你的服务接口(...2016-11-03 09:39:07 · 330 阅读 · 0 评论 -
webService的初步认识和简单用例
一、什么是webService?Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。几个基本概念:SOAP:简单对象存取协议,是webService的通信协议,...2015-10-19 18:19:51 · 229 阅读 · 0 评论 -
单例模式在高并发情形下造成的访问覆盖问题
好吧,最近我特么是跟高并发杠上了。。单例模式想必很很常见,而往往单例模式跟static相关。单例模式的初衷是为了在任何条件下我只得到一个实例,包括类和变量。而往往需要我们用static关键字去修饰达到单例的效果。最近高并发接触得比较多,使用缓存就需要用单例。因为你针对某一个key的缓存只可能定义成“一份”。所以缓存类的实例需要用到单例模式。但是在高并发的条件下,控制不好的话,很容易出问题。下...2015-09-25 11:29:18 · 891 阅读 · 0 评论 -
oscache之刷新缓存flushEntry的使用
========================== 困扰和痛苦多时的oscache刷新缓存start =======================Everyday都不同于2015-9-19 周六15:30 【前言】一般而言,oscache缓存常用于在高并发的情形下。当你初次调用缓存的方法时,如果缓存中还没有响应的key,则会去执行底层的sql语句,并把结果缓存起来。等到【...2015-09-19 15:12:18 · 237 阅读 · 0 评论 -
多线程 & 异步调用 的理解
最近做项目,高并发的情况比较常见,因此常常需要用到多线程。而之前一直对多线程处于一个比较模糊的状态,这次终于清晰了点儿。其实理解多线程可以和异步调用结合起来理解会比较好。 对于同步调用和异步调用,可以用以下伪代码来粗略的看一下: 同步调用:public void test() { //某段代码 //这里是入db的操作 this.saveDat...2015-09-17 11:52:10 · 711 阅读 · 0 评论 -
ServeltContext的理解和一种使用场景
最近做项目,用到了一个比较不熟悉的东西,但我自己又觉得很有用。所以记录下吧…… 1.ServletContext 的使用ServletContext对象是在Web应用程序装载时初始化的,它的生命周期是随着服务器启动而开始,服务器关闭而结束。即只要你的web应用程序处于启动状态,它就是一直存活的。而当你关闭web应用程序时,它也会被回收。ServletContext对象之set...2015-09-17 11:12:33 · 251 阅读 · 0 评论 -
【总结】关于List的一些容易出错的地方
1.关于list.isEmpty只要有list.add操作。即使是list.add("") (1次或若干次),list.isEmpty也是返回false; 如果你仅仅是声明一个List,而没有add操作,则list.size=0 并且list.isEmpty才会返回true; 2.list转Array(数组)拿List<String>集合转String[]数组来说,...2015-09-07 17:19:14 · 292 阅读 · 0 评论 -
测试redis+keepalived实现简单的主备切换
keepalived是一个是集群管理中保证集群高可用的一个服务软件,它具备心跳检测的功能。运用在redis上,则是具备主备切换的控制功能。keepalived的主备切换方案的设计思想如下:当 Master 与 Slave 均运作正常时, Master负责服务,Slave负责Standby; 当 Master 挂掉,Slave 正常时, Slave接管服务,同时关闭主从复制功能;...2016-07-17 18:23:45 · 436 阅读 · 0 评论 -
利用Netty进行客户端和服务端交互的入门示例
Netty是基于事件驱动的、异步的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。是一种NIO框架,下面从最简单的Hello World示例开始,演示服务端和客户端交互进行Netty交互。1.首先,创建服务端[code="java"]public class DiscardServer { private int port; pub...原创 2014-11-04 11:20:39 · 280 阅读 · 0 评论 -
用Ajax技术和dwr框架两种方式实现下拉列表的级联效果
在开发web页面时,常常需要达到某一个文本输入框,更多的是下拉框随另一个下拉框的改变而改变值的"联动"效果。实现这种效果,往往需要我们跟后台进行交互。这里,我将分别介绍如何使用ajax技术和dwr框架,实现下拉列表的联动效果。需要实现级联效果的下拉列表:[code="html"]业务 ...原创 2014-11-12 11:12:31 · 172 阅读 · 0 评论 -
多线程:如何确定所有任务都执行完成了?
--------------------20180502更新-----------------------------今天学习到了一个比较强大的类:ExecutorCompletionService,它是将 Executor和BlockQueue结合的jdk类,其实现的主要目的是:提交任务线程,每一个线程任务直线完成后,将返回值放在阻塞队列中,然后可以通过阻塞队列的take()方法返回 对...2018-04-02 15:30:27 · 7993 阅读 · 1 评论 -
多线程写同一个excel文件(导出)
今天是2018.03.22,已经很久没有更新博客了。。这段时间一直挺忙的,也收获很多。最近一个excel导出的任务让我搞了好久,想想踩过的坑,就想上来小结一番。------------------------------------------------------分割线------------------------------------------------------ ...2018-03-22 15:14:17 · 11025 阅读 · 2 评论 -
No qualifying bean of type is defined: expected single matching bean but found 2
最近在Spring的注解中,尝试获取一个Bean出现了如题所示的错误。NoUniqueBeanDefinitionException: No qualifying bean of type is defined: expected single matching bean but found 2:sysRoleManage, sysRoleManageImpl 我有2个类,1个是...2016-03-28 18:59:16 · 1016 阅读 · 0 评论 -
一种解决在Linux环境下发送短信中文乱码问题的方案
这几天在折腾短信的发送问题。其实最令人苦恼的是,你明明在windows环境下一切都测试成功,能成功发送中文短信了,但偏偏你把项目部署到Linux环境的时候,却发现中文短信发出来是避之不及的乱码~~其实能知道这是由于编码的问题,但要解决它还不太容易呢。 首先,看在windows环境下正常显示中文的原因:打开cmd窗口,输入:chcp你会发现输出活动代码页: 936查阅936的...2016-03-10 19:15:11 · 521 阅读 · 0 评论 -
jQuery的局部刷新——get、post和ajax方法写法小结
在前台页面的编写中,为了考虑到业务的科学性和用户的体验性,常常需要验证用户的输入数据是否合理有效。一般来讲,普通的js即可以做到,但更多时候往往需要跟后台进行交互。例如用户注册,判断用户所输入的用户名是否已经存在。下面用jQuery的get、post和ajax方法来实现判断,同时对这三种常见的局部刷新技术做一个小结: 注册页面: <tr bgcolor="#FFFFFF">...原创 2014-12-19 11:10:14 · 208 阅读 · 0 评论 -
zTree插件在struts2中构建树状分支结构
在常见的管理系统中,一般会用到树状分支结构——把某些属于同一范畴的功能放在同一个“树枝”上,“树枝”上有一些不同的功能节点,点击功能节点则会弹出相应的处理页面。而这些节点通常不是写死的,而是从数据库中读取出来的。下面就如何在struts2中利用zTree插件,来实现这种结构做一个小结。 首先,实现效果如下: 1.数据库中对应建立一个t_node的表,包含一些id, pare...原创 2014-12-18 14:34:34 · 249 阅读 · 0 评论 -
解决struts2接收不到页面传递过来的对象VO的问题
本人最近利用struts2+ibatis+spring框架搭建web项目,需要写一个登录页面。众所周知,需要把JSP中输入的用户名、密码传递给后台action处理,判断用户名密码是否正确。其中会遇到很多action接收不到JSP页面传值而无法完成交互的问题,因此可以进行一一排查: LoginAction:private PortalUserVO portalUserVO; pr...原创 2014-12-15 10:58:45 · 250 阅读 · 0 评论 -
【反ajax】webSocket实现实时推送功能
额。前天就说有时间要研究下webSocket这种实时推技术。已经用Comet实现了一个结合redis发布/订阅功能的小功能,其实还是有点复杂度的。今天有时间,遂了解了下webSocket,发现也没有想象中那么难!但我研究webSocket做东西还是饶了一大圈,有一种用spring+webSocket做的,略复杂(可能容错性和健壮性更高?),最后卡在404连接上了,用的jar包是spring...2016-01-21 18:28:10 · 443 阅读 · 0 评论 -
运用Comet技术实现服务端往客户端主动推送数据(结合redis发布/订阅)
记得我之前写过 redis主动向页面push数据 的文章,但文中所描述的方法要应用到J2EE的项目中还是比较困难的(还需用到nodejs什么的)。于是本文来探究下比较适合web项目的主动推技术。Comet是一种用于web的推送技术,能使服务器能实时地将更新的信息传送到客户端,而无须客户端发出请求,目前有两种实现方式:长轮询(long-polling)和iframe流(streaming...2016-01-18 21:00:45 · 443 阅读 · 0 评论 -
根据用户查询选择动态显示表的数据列
有的时候,当用户选择查询条件时碰到查询结果列表字段太多时,常常会想要[color=red]选择性地只显示部分由自己选择的字段[/color].现在为了达到根据用户选择动态显示查询结果的列的效果,可以在查询条件上构建一个checkboxlist,当[color=blue]用户勾选某几个字段时,查询结果的列只显示用户选中的这几个字段[/color].另外,为了达到友好的用户体验,如果用户一个字段都没选...原创 2014-11-24 11:02:47 · 362 阅读 · 0 评论 -
Spring MVC环境下用poi技术实现Excel的导入导出
在web项目中,对数据的导入导出是非常实用和常见的,而excel文件则是十分常见的格式。Excel导入——解析已存在的excel文件,并把里面的数据一一对应,插入到数据库表中,同时在页面上显示出来。(通常数据库里面会有一张字段与该excel表头一一对应的表);Excel导出——把数据库中的表的数据导出,保存在excel文件中。 poi相对于jxl,是更为成熟的excel解析技术...2015-08-01 18:25:07 · 887 阅读 · 0 评论 -
【转】线程返回值的方式介绍
原文地址:http://smalltalllong.iteye.com/blog/1156407在Java5之前,线程是没有返回值的,常常为了“有”返回值,破费周折,而且代码很不好写。或者干脆绕过这道坎,走别的路了。 现在Java终于有可返回值的任务(也可以叫做线程)了。 可返回值的任务必须实现Callable接口,类似的,无返回值的任务必须Runnable接口。 执...原创 2015-07-23 19:10:42 · 123 阅读 · 0 评论 -
一种利用线程池进行for循环处理的思想
在for里面,如果执行一次for里面的内容所需时间“较长”(相对而言),不妨改用线程池的方式。如下测试:public class ExecutorTest2 { private static final int loopNum = 1*10; public static void main(String args[]) throws Interrupted...原创 2015-03-05 15:05:15 · 7181 阅读 · 3 评论 -
struts2文件下载和文件上传
【正式开始前的唠嗑】——春节假期还是如期而终,各位小伙伴是不是和我一样患上了“假期综合症”呢?工作状态简直太差了!博客也好久没写了,现在来总结总结struts2中文件的下载和上传! Part1——文件下载 struts2提供了stream结果类型专门用于支持文件下载,指定stream结果类型时需指定一个inputName参数,该参数指定了一个被下载文件的入口的输入流。下载页...原创 2015-02-27 15:48:56 · 289 阅读 · 0 评论 -
跳转到修改页面和执行修改需要注意的小问题
在web的最基本的功能开发中,修改是较为常见的一种。根据底层sql的写法:跳转到修改页面一般是根据主字段查询出相应信息,而执行修改时也要根据相应的主字段定位修改对象。这时候主字段的保存就常常容易忽略。 一、跳转到修改页面:需要在跳转之前的页面的form中添加一个控件来保存(必须被form包围):<td class=td_detail align="center" nowrap...原创 2015-02-02 16:35:49 · 455 阅读 · 0 评论 -
Java Mail发送邮件(带多个附件)
Java Mail是利用已存在的邮箱账号,不必登录如网易邮箱,qq邮箱等官方邮箱网站而使用程序发送邮件。这在web中很常见,比如直接在招聘网站给hr发邮件就是一个典型运用。利用Java Mail发送邮件的大致步骤: 1.首先,构建一个用于登录校验的类,确保你对此邮箱账户有发送邮件的权限。(相当于登录邮箱的过程)public class MailAuthenticator ext...原创 2015-01-15 10:26:54 · 1877 阅读 · 0 评论 -
关于EVAL_BODY_INCLUDE、SKIP_BODY、EVAL_BODY_AGAIN、EVAL_PAGE、SKIP_PAGE的区别探讨
最近在建立自定义标签并使用时,对于返回的值EVAL_BODY_INCLUDE、SKIP_BODY、EVAL_BODY_AGAIN、EVAL_PAGE、SKIP_PAGE分不太清楚,看网上的相关博客虽然讲得较为清晰,但是为了更加彻底地清楚他们的区别,动手写了一个实例,终于弄明白它们的区别,也是伤不起咯! 首先,建一个自定义标签的.tld文件,<?xml version="1.0...原创 2015-01-09 15:08:35 · 428 阅读 · 0 评论 -
解决/WEB-INF目录下的jsp页面引入webRoot下的Js、css和图片的问题
众所周知,通常把jsp页面放在webRoot的/WEB-INF下可以防止访问者直接输入页面,而不经过struts处理请求的恶意操作(当把页面直接放在webRoot下时)。而webRoot的/WEB-INF下的页面是受保护的,用户无法通过形如http://localhost:8080/test/webRoot/WEB-INF/content/xx.jsp来访问,他们的访问都必须透过struts处...原创 2015-01-08 17:52:48 · 873 阅读 · 0 评论 -
文件夹(目录)的复制和删除
利用IO流操作文件,如复制,删除等操作时,普通文件比较容易,但是如果涉及目录会相对而言容易出错,最近本人也做到了这方面的东西,所以就总结整理一下:对目录的操作,包括复制删除,最终的本质还是对普通文件的操作,所以递归的思想很有必要。 一、对整个目录的复制:首先,写一个普通文件的复制方法public static void copyFile(File src,File sdt)th...原创 2015-01-08 14:59:36 · 430 阅读 · 0 评论 -
在文件的特定位置追加内容和读取文件特定内容
一、使用RandomAccessFile为普通文件追加内容 有的时候,需要在文件的特定位置实现内容的追加,但往往又不是xml文件,所以无法利用Jdom API来操作,为了达到在文件特定位置追加,就必须使用游标RandomAccessFile了,例如下面这个方法:public static void appendApplication(String filePath, String ...原创 2015-01-08 14:33:29 · 603 阅读 · 0 评论 -
模仿新浪微博字数限制提示
本人很喜欢上微博,出于职业病的原因,往往对微博字数限制的功能实现感兴趣。虽说实现该功能不算太难,但是想跟做是两回事儿,于是我就有了模拟新浪微博字数限制功能实现的想法! 实现过程以及解决出现的问题特此记录一下: 输入页面:<table style="WIDTH: 100%; BORDER-COLLAPSE: collapse" cellSpacing=0 ru...原创 2014-12-22 11:40:36 · 208 阅读 · 0 评论 -
ibatis的queryForMap方法研究
在ibatis的使用过程中,一般用到queryForList方法比较多,而queryForMap用得比较少,但是queryForMap确实是一个比较重要的用法。queryForMap可将查询结果封装为一个map。 假设有一张t_product表,含有id, name两个字段。 step1:首先,必须在放置查询sql的xml配置文件中配置resultMap:<result...原创 2014-12-19 18:35:02 · 302 阅读 · 0 评论 -
使用dom4j来解析xml文件或xml字符串
现有一个配置文件,需要解析出根节点与子节点,还有子节点下属性的信息。虽然w3c.dom规范亦可以解析,但这儿我们尝试使用dom4j的方式来解析。涉及到的jar包有dom4j-1.6.1.jar xml配置文件:<?xml version="1.0" encoding="UTF-8"?><beans> <bean id="computer" ...原创 2015-03-29 15:38:53 · 509 阅读 · 0 评论 -
spring启动报的一些错(持续补充中……)
今天做Spring quartz定时任务时,出现一些问题,特此记录一下,以免下次再次出现,供大家和自己参考:1、org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.test.db.BeanFactoryPost] for bean with name 'xx.xxx...原创 2015-04-19 21:19:17 · 234 阅读 · 0 评论 -
使用oscahe缓存技术减少与数据库的频繁交互
此前一直不知道缓存的具体实现,只知道是把数据存储在内存中,以便下次直接从内存中读取。对于缓存的使用也没有概念,觉得缓存技术是一个比较”神秘陌生“的领域。但最近要用到缓存技术,发现还是很有必要一探究竟的。 缓存技术使用背景:一般来说,对于web项目,如果我们要什么数据直接jdbc查库好了,但是在遇到高并发的情形下,不可能每一次都是去查数据库,因为这样在高并发的情形下显得不太合理——频繁地...原创 2015-07-18 21:02:38 · 317 阅读 · 0 评论 -
zeromq学习笔记和解决一个相关的异常
关于ZeroMq(简称ZMQ)的定义、作用和强大这里就不再赘述了。总结一下它常见的几种经典模式,然后顺便提下我最近在高并发环境下使用它出现的一个异常及其解决过程吧! (PS:图是盗的。。。。。)一、REQ/REP模式 这是最常见的请求/响应模式。服务端作为发送方,客户端作为请求方。 服务端: ZMQ.Context context = ZMQ.context(1...2015-07-15 19:40:31 · 1148 阅读 · 0 评论 -
Socket初步编程——简单实现群聊
初次接触到socket网络编程,也参考了网络上众前辈的文章。尝试自己也写了一下,记录下过程吧: 服务端:(接收客户端消息并把它们打印出来) public class SocketServer { private List<Socket> socketList = new ArrayList<Socket>(); public static voi...原创 2015-06-25 10:26:32 · 423 阅读 · 0 评论
分享