JAVA
文章平均质量分 89
恺风
我思故我在,如果一个人无法独立思考,即使熟习各种工具,实质只是工具的一部分,永远无法创造工具。
展开
-
JDK 1.6.x(1.6.0_16)和以前版本的变化
最近需要整理一个以前的项目,需要增加新的接口。这个项目进行了很久,一开始用JDK1.4的版本,后来用JDK1.5的版本。再后来发现JDK1.5版本存在一个BUG(具体忘了,还没能翻出文档,好像和时间有关),需要JDK1.6。从1.4到1.5没有任何问题,从1.5到1.6,在source code上没有问题,但是1.6编译的不能在JRE1.5上面跑。 接着这些东西开始尘封,有1年的时间原创 2009-09-02 09:22:00 · 6516 阅读 · 1 评论 -
编程方法学 - 公开课学习笔记(九)
第25课 设计实用社交网络和线程 2011.9.7这一课由两个topic,首先以社交网站的例子进一步解释数据管理。在SNS中用porfile来表示一个用户。有下面的属性:name(作为Unique ID),status,image和list of friends(由于n原创 2011-09-07 16:46:19 · 5548 阅读 · 3 评论 -
编程方法学 - 公开课学习笔记(八)
第22课 Component和Comtainer 2011.8.9-10这是一张图,可以从中看出componenet和Container的关系,而JComponent,例如Swing,是Container的一个子类。A component is anythin原创 2011-08-19 11:36:07 · 4226 阅读 · 0 评论 -
关于开发环境中的charset问题
中文的最大麻烦就是不同charset在实际的字节存储是不同的。而Windows的缺省为GBK,Linux的缺省为UTF-8。一个汉字的GBK中的存贮在2个字节,在UTF-8中存贮在3个字节,如果字符集不统一,就会出现显示乱码的现象,如果设计到数据库的存储,问题就更大。一般而言,不同的程序相互交互,一般会使用更为通用的UTF-8的方式。如果使用Eclipse开发 ,在Windows下缺省为GBK原创 2014-06-26 17:31:57 · 2581 阅读 · 1 评论 -
在Ubutu(14.10)的Eclipse启动Tomcat,以及部署问题
安装了阿土14.10,想装一个java servlet的环境,下载了eclipse,通过apt-get install安装了tomcat和open java。但是在运行时,Run On Server中Server Name这样无法显示,导致无法运行。根据网上的指引,删除了/.metadata/.plugins/org.eclipse.core.runtime/.settings/里面的org.ec原创 2015-03-13 17:17:55 · 3048 阅读 · 0 评论 -
【Developer Log】Java的内存使用、垃圾回收和内存泄漏
事情起因我们正在进行一个业务的12小时的大压测试,有同事投诉说,我的Java程序出现了内存泄漏的问题的。通过Jconsole监控,出现下图的情况。是耶非耶? 我对自己的程序也有监控,监控各队列、堆栈、线程的数量。这些数量没有出现异常,在大压测试之后数值回复空闲状态。一般来讲,这种情况基本上排除出现内存泄漏的情况。之前有48小时的测试,没有出现这个问题,不太可能是期间进行数据库优化处理导原创 2015-08-24 13:15:48 · 2325 阅读 · 1 评论 -
【Developer Log】Log4j v2
Java项目可以自己有自己的写log,这是我的常用方案,已经封装好了。但是需要通过命令行或者控制台来修订写log的登记。一个常用的java开源项目是Log4j。我有个好朋友是做需求的,她说需求的经常骂开发:为什么非要自己造轮子。好吧,她的话是有道理的。项目不仅仅是我的部分,也会涉及其他人,和他们讲了几次问什么要写log,为什么要分等级,如何写log,你们自己开发调测的信息版本释放前应该要去掉,原创 2015-08-27 17:20:41 · 1411 阅读 · 0 评论 -
【Developer Log】Java VM的不明机制
在之前的【Developer Log】Java的内存使用、垃圾回收和内存泄漏中,我们通过长时间的大压测试探究了VM的GC机制,重点观察了Old Gen。然而在长时间的测试中,我们发现在jdk8的MetaSpace,或者在jdk7的Perm Gen中观察到随着时间有增长,虽然增长量很少很少,但是的确在增长。这是个很头疼的问题,所以觉得另外写个小程序确认一下。程序很简单:public cl原创 2015-08-27 15:41:31 · 1333 阅读 · 0 评论 -
我的技术博客索引
我的JAVA相关文章我的Clutter相关博客我的网络通信相关文章我的Linux相关文章我的与kernel module有关的文章我的嵌入式Linux相关文章我的MeeGo/Moblin相关文章我的Andriod开发相关文章我的与编程思想相关的文章我的无限网络文章我的产业生态链和杂谈文章我的四方书库生活空间为五斗饭相关文章天南地北相关原创 2009-09-12 22:47:00 · 13060 阅读 · 14 评论 -
Java for Web学习笔记(三):Servlet(1)Maven
什么是Maven在http://maven.apache.org/中对Mavent进行介绍,可以:一、发布project信息 二、管理Jar包 三、提供uniform build system,使用POM(project object model) 如果我们使用Eclipse是最新的Mars版本,Maven已经集成进来,所以不需要进行额外的配置,当然,如果我们需要自行安装一原创 2015-11-06 10:58:25 · 3299 阅读 · 2 评论 -
Java for Web学习笔记(二):Web Containers
一个Java EE web app运行在Java EE application server和web container中。每个EE app server都含有一个web container,用于管理servlet的生命周期,映射request URL到servlet的代码,接收和响应HTTP请求,管理filter链。如果我们不需要整个Java EE的功能,单独的web container可以提供原创 2015-11-04 16:28:59 · 2843 阅读 · 0 评论 -
Java for Web学习笔记(一):Java EE的介绍
最近有个项目,当中涉及到Java Servlet,项目已经进行了一段日子,最近因为有重大需求调整,需要对架构重新进行梳理,一看,基本上哭笑不得,有不少地方真是黑色幽默,怎么会这样呢。当在这过程中,也引发了我兴趣,毕竟之前没有系统地了解过。在网上找到了一本书professional Java for Web Applications,是2014年的,算蛮新的。所以开始了这一系列。但是这本书也相当原创 2015-10-28 14:51:54 · 2884 阅读 · 5 评论 -
Java for Web学习笔记(四):Servlet(2)HelloServlet
继承关系: javax.servlet.GenericServlet –》javax.servlet.http.HttpServlet。 405返回如果我们不重写Servlet的doGet而采用HTTP GET的方式,将返回405 将返回405 Method Not Allowed。如果我们重写doGet()方法,直接return,则返回空页面,需要区分这两种方式。很多情况下,我们原创 2015-11-10 17:03:26 · 2552 阅读 · 1 评论 -
Java for Web学习笔记(五):Servlet(3)HttpServletRequest
读取参数HTTP两种最常用的请求是GET和POST,GET是在URI中携带信息,POST则是body中携带信息,并在Content-Type中给出application/x-www-form-urlencoded或者multipart/form-data。POST也可以同时正在URI中携带信息。在Servlet API中,对这两者的参数获取不加区别,如下:From:https://docs原创 2015-11-11 17:29:11 · 1566 阅读 · 0 评论 -
Java for Web学习笔记(六):Servlet(4)HttpServletResponse
设置HTTP响应的所有内容。包括headers,body,重定向响应,设置响应码、cookies等等。继承ServletRequest。写响应Body使用getOutStream()返回一个javax.servlet.ServletOutputStream,使用getWriter()返回java.io.PrintWriter。后者常用文本型的body,而binary的则只能使用前者。在同一个resp原创 2015-11-12 12:31:19 · 2221 阅读 · 0 评论 -
Java for Web学习笔记(七):Servlet(5)初始化参数
Context Init参数在web.xml中可以基于整个上下文进行设置,在web app内各个Servlet都可以获取。 settingOne foo settingTwo bar 我们可以在context中获取这些数值。例子如下:@WebServlet( name = "ContextparamTestServlet",原创 2015-11-13 15:56:21 · 2310 阅读 · 0 评论 -
Java for Web学习笔记(八):Servlet(6)doGet()和doPost()是线程还是队列
做一个小实验,代码如下:protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.getWriter().append("Served at: ").append(request.getCon原创 2015-11-16 11:05:41 · 2601 阅读 · 0 评论 -
Java for Web学习笔记(九):Servlet(7)上传文件
上传文件Servlet的参数设置采用annotation方式如下:@WebServlet( name = "TicketServlet", urlPatterns = {"/tickets"}, loadOnStartup = 1 )/* MultipartConfig配置了本Servlet的文件上传参数, * location:这里没有列出的是location参数,表示存原创 2015-11-20 16:47:58 · 4294 阅读 · 0 评论 -
Java for Web学习笔记(十):Servlet(8)下发文件
给出一个文件的链接,执行一个静态的文件,这不过是HTML的脚本书写方式。那么如果我们在内存中生成文件内容,存放在byte[]中,并以指定的文件名字下发给用户,应该如何处理?response.setHeader("Content-Disposition","attachment; filename=" + fileName);response.setContentType("applicati原创 2015-11-20 16:55:20 · 1613 阅读 · 0 评论 -
Java for Web学习笔记(十三):JSP(3)Directive
属性import我们在Java中需要import相关的类,在JSP也一样,方式如下。多个引入可以用逗号进行份额,我们也可以采用写import可以分开写的方式。<%@ page contentType="text/html;charset=UTF-8" language="java"import="java.util.*,java.io.IOException" %> 用逗号进行分隔原创 2016-01-18 10:40:23 · 2262 阅读 · 0 评论 -
Java for Web学习笔记(十四):JSP(4)JSP Tag
从jsp:include中,我们应该可以猜测到jsp tag是加入特定的java代码。formardindex.jsp" />将在代码中加入:_jspx_page_context.forward("index.jsp");forward()不是重定向(重定向会给出302,指向一个新的URL,浏览器向新的URL发送请求),将请求转置另一个jsp重新处理,而不会再转回来。虽然从java原创 2016-01-21 16:37:40 · 1551 阅读 · 0 评论 -
Java for Web学习笔记(十五):JSP(5)在JSP中使用Java吗?
No在前面,我们已经看到了JSP如何转换为Java代码,可以写Servlet那样写JSP,拥有强大的功能,那么是否应该在JSP中使用Java?一般不建议,JSP中的Java最大的问题就是太强大。Jsp主要用于表现层,也就是用户界面,即view。一个组织良好的项目,UI和后面的实现应该分离,由不同的人员进行编写。UI的程序员甚至可以不使用java代码。另外对于一个面向对象的编程语言,不应该将原创 2016-01-27 10:48:27 · 2789 阅读 · 0 评论 -
Java for Web学习笔记(十六):JSP(6)jspx
JSP document的后缀名是.jspx,它采用XML格式,因此表述方式完全不同: JSP语法JSP document语法Page DirectiveInclude DirectiveTag Library Directive原创 2016-02-14 10:45:22 · 3745 阅读 · 1 评论 -
Java for Web学习笔记(十七):Session(1)Session的携带
有两种方法携带Session ID:一是使用cookie,一是URI。CookieHTTP 1.1支持Cookie,具体在RFC6265 HTTPState Management Mechanism。Client发送HTTP请求,Server在HTTP响应中带有Set-Cookie消息头,Client随后的HTTP请求将携带Cookie消息头,其值根据Set-Cookie的信息设定。S原创 2016-03-07 13:35:57 · 2019 阅读 · 0 评论 -
【Developer Log】ProGuard扰码web项目(WAR)
先阅读一下http://proguard.sourceforge.net/manual/troubleshooting.html#unexpectedclass,内容如下:Warning: class file ... unexpectedly contains class ...The given class file contains a definition for the原创 2016-02-25 10:36:54 · 8317 阅读 · 1 评论 -
Java for Web学习笔记(十九):Session(3)Session Listener
可以通过Listner来监听session的变化,这就是所谓的publish and subscribe模型。这是一种消息信息发布一方叫发布者,信息的接收方叫订阅者,实际也是事件驱动的高大上说法,订阅某个事件,然后触发处理。这种方式最大的作用是将进行session变化以及session变化后的处理进行,尤其适合于第三方代码(进行session变化原创 2016-04-12 21:43:30 · 2415 阅读 · 0 评论 -
Java for Web学习笔记(二十):Session(4)在集群中使用Session
在集群中使用session1.1.1 Sticky Sessions在集群的情况下,可以采用保证同一个seesion都到同一个web container中处理的方式,即sticky sessions,有不同方式,例如load balance作为agent使用自己的cookie,因此可以更方便地辨识。在SSL/HTTPS的情况下,会无法获取session ID,可以将加解密放在load b原创 2016-06-09 22:07:17 · 1495 阅读 · 0 评论 -
Java for Web学习笔记(二一):EL(1)什么是EL
使用jsp,它的能力太大需要注意安全,同时对于UI编程人员也过于复杂,可以使用EL(Expression Language)解决这些问题。最初作为JSTL的一部分,后来分离出来作为JSP的一部分,作为Java Unified Expression Language(JUEL)提供给JSP和JSF(Java Server Faces)。在Java EE 7时移到自己的JSR(JSR 341)(JSR原创 2016-06-11 14:31:15 · 1858 阅读 · 0 评论 -
Java for Web学习笔记(二二):EL(2)EL语法
保留字和Java不一样,EL的语法比较松散,如同PHP。EL的保留字如下:true,false,null,instanceof,同Java的用法empty, 用于检测Collection、Map、array是否有值,或者String是否还有至少一个字符。如果它们为null或者size()==0,length==0,则为#{empty x}为true,反之为false。div,mod,算原创 2016-06-11 15:11:12 · 1629 阅读 · 0 评论 -
Java for Web学习笔记(二三):EL(3)EL的视图
视图可以分为page,request,session和application,也是从小到大。而page则是某个request中针对一个jsp的试图,使用JspContext或者PageContext,同样提供了setAttribute()和getAttribute()的方法。EL有11个内定的参数,如果参数与之不匹配,则在page视图中查找,即看看PageContext.getAttribut原创 2016-06-11 21:41:02 · 1069 阅读 · 0 评论 -
【Developer Log】ProGuard扰码可执行JAR包
在项目上线之前需要通过ProGuard来对java的class进行混淆,以避免反编译方式,来保护自己的代码。ProGuard网上有很多资料,可以参考:http://blog.csdn.net/zhangdaiscott/article/details/45368261。在此,记录扰码可执行JAR包出现的问题,已经相关的解决方式。1、引用第三方库的处理方式引用第三方库,应避免修改第三方库的类原创 2016-02-19 11:41:26 · 2276 阅读 · 0 评论 -
Java for Web学习笔记(二四):EL(4)流(Stream)
这个假期,几家在装修,很吵,说是不准节假日装修,谁理。我觉得中国房子的质量除了90年代的比较差外,很大程度都是装修给搞坏的,这家抡大锤,那家掀地板。就是个碉堡,也有毁坏的日子。什么是流对于Collection提供stream,也就是包括List(例如Vector,ArrayList,LinkedList),Set(如HashSet,LinkedHashSet,TreeSet)。流的处理原创 2016-06-22 22:28:30 · 1980 阅读 · 0 评论 -
Java for Web学习笔记(二五):JSTL(1)使用JSTL
在前面已经使用过JSTL,例如,fn是JSTL的functionlibrary,而c是JSTL的tag library。使用它们,我们要告知解析器,如下:这些directive相当于下面的。虽然prefix(或者说namespace)可以设置为不同,但是我们应当遵循TLD(Tag Library Descriptor)中的建议,方便其他人阅读。<jsp:root xmlns="htt原创 2016-06-22 22:30:01 · 2972 阅读 · 0 评论 -
Java for Web学习笔记(二八):JSTL(4)Core Tag(下)
给个例子来复习一下,模拟地址本显示。联系人类:Contact这里顺便学些一下自动排序的做法,定义Contact类,实现Comparable接口。Contact是个简单的POJO,getter和setter从略。此外MonthDay和Instant是Java 8增加的时间处理类。public class Contact implements Comparable{ private原创 2016-08-15 21:58:14 · 1378 阅读 · 1 评论 -
【Developer Log】javax.ws.rs实现Restful
javax.ws.rs实现Restfuljavaxwsrs实现Restful如何使用RestFulJava中使用RestFulpom关联的jar包webxmlGET的小例子textjsonxml三种输出格式POSTPUTDELETE如何使用RestFul下表来自wiki说得很清楚,GET一般用于查询,POST一般用于创建,PUT用于update(如无则创建),DELETE用户删除。PO原创 2016-08-15 16:30:43 · 24998 阅读 · 3 评论 -
Java for Web学习笔记(三一):JSTL(7)SQL Tag
一般而言,尽可能不要在数据呈现(jsp)的位置来进行数据操作,但是在一些原型设计上,确也比较便捷,因此仍有必要了解。准备如果我们使用mysql,一样要在pom.xml中加入: mysql mysql-connector-java 5.1.40因为是在非正式代码中使用,因此tomcat报的一些告警可以忽略:信息: Server startup原创 2016-11-06 17:55:16 · 1869 阅读 · 0 评论 -
Java for Web学习笔记(三二):JSTL(8)XML Tag
XML Tag提供xml的解析。然而JSON已经大量地替代XML,使用XML情况会较少,而且有高效的lib将对象转换为json和xml,因此xml tag很少会用到,稍作了解。可以参考https://www.tutorialspoint.com/jsp/jsp_xml_data.htm。输出xml的jsp Padam History ZARA原创 2016-11-06 18:23:44 · 1892 阅读 · 0 评论 -
Java for Web学习笔记(二九):JSTL(5)FMT Tag(上)
FMT Tag何用如果我们要编写国际化的程序,就涉及很多本地化的场景,使用不同的语言,使用不同的时间、金钱等表述习惯。J2EE提供了i18n来实现国际化的框架,在这个框架下,我们可以为不同的地区进行本地化的设置(即L10n)。 其核心是:为不同的地区设置不同的资源文件,当不同地区的用户使用时,根据资源文件,显示不同的内容。 JSLT提供了fmt tag( Internationalization a原创 2016-10-03 21:37:09 · 1544 阅读 · 1 评论 -
Java for Web学习笔记(三十):JSTL(6)FMT Tag(下)
fmt:requestEncoding<fmt:requestEncoding value="GB18030" />fmt:requestEncoding说是用来设置请求的编码,但这我们是不需要使用的。对于编码,我们应该在jsp的一开始就设定编码,而不是在半道。<%@ page language="java" contentType="text/html; charset=UTF-8" pageEn原创 2016-10-06 17:57:15 · 1312 阅读 · 0 评论 -
【Developer Log】SimpleDateFormat的parse问题、ISO-8601格式
在并发处理时,SimpleDateFormat进行时间格式转换会出现问题。本博将就问题情况以及如何进行时间转换作为讨论。SimpleDateFormate并发parse()问题小实验下面是一个简单的观察小例子,同时提供ISO-8601时间格式的人工处理:public class ParseTest { private final static SimpleDateFormat原创 2016-12-01 09:31:12 · 3924 阅读 · 0 评论