0%

引言:XML(可扩展标记语言)在软件开发工程中取得了广泛的应用。在 Java 语言中操作 XML 有许多方法,最常用的方法就是使用 JDom、Dom4j 等第三方组件。本文将简单介绍使用 Dom4j 操作 XML 的基本方法。

阅读全文 »

引言:作为一名软件工程 Web 专业学生,对于 HTTP 的熟悉掌握是必不可少的,特此做记录,打造自己的 HTTP 栈。

URL 与 URI

我们经常接触到的就是 URL 了,它就是我们访问 web 的一个字符串地址,那么 URI 是什么呢?他们是什么关系呢? URL:uniform resource location 统一资源定位符 URI:uniform resource identifier 统一资源标识符 这也就是说,URI 是一种资源的标识;而 URL 也是一种 URI,也是一种资源的标识,但它也指明了如何定位 Locate 到这个资源。 URI 是一种抽象的资源标识,既可以是绝对的,也可以是相对的。但是 URL 是一种 URI,它指明了定位的信息,必须是绝对的。

阅读全文 »

状态码的职责是当客户端向服务器端发送请求时,描述返回请求结果。借助状态码,用户可以知道服务器端是正常处理了请求,还是出现了什么错误。 RFC2616 定义的状态码,由 3 位数字和原因短信组成。 数字中的第一位指定了响应类别,后两位无分类。响应类别有以下 5 种:

阅读全文 »

并发问题的症状

多线程 put 后可能导致 get 死循环

从前我们的 Java 代码因为一些原因使用了 HashMap 这个东西,但是当时的程序是单线程的,一切都没有问题。后来,我们的程序性能有问题,所以需要变成多线程的,于是,变成多线程后到了线上,发现程序经常占了 100% 的 CPU,查看堆栈,你会发现程序都 Hang 在了 HashMap.get () 这个方法上了,重启程序后问题消失。但是过段时间又会来。而且,这个问题在测试环境里可能很难重现。

阅读全文 »

这篇文章主要是 java8 中新的 Date 和 Time API 的实战。新的 Date 和 Time 类是 java 开发者社区千呼万唤始出来的。Java8 之前存在的 Date 类一直都受人诟病,很多人都会选择使用第三方的 date 库 joda-time。Java8 中的 date 和 time api 是 jodatime 的作者参与开发的,实现了 JSR310 的全部内容。这些新的 api 都在包 java.time 下。 既然第三方的 joda-time,date4j 都已经足够强大了,为什么 java8 还要重新实现他呢,一部分的原因是这些第三方的库是存在兼容问题的,比如标准的 JSF 日期转化器与 joda-time api,就不兼容,每次使用都需要编写自己的转换器,所以标准化 api 是必须的,就有了 JSR310,java8 中就实现了他全部的规定内容。

阅读全文 »

误解七:HTTPS 无法缓存

许多人以为,出于安全考虑,浏览器不会在本地保存 HTTPS 缓存。实际上,只要在 HTTP 头中使用特定命令,HTTPS 是可以缓存的。 微软的 IE 项目经理 Eric Lawrence 写道:

“说来也许令人震惊,只要 HTTP 头允许这样做,所有版本的 IE 都缓存 HTTPS 内容。比如,如果头命令是 Cache-Control: max-age=600,那么这个网页就将被 IE 缓存 10 分钟。IE 的缓存策略,与是否使用 HTTPS 协议无关。(其他浏览器在这方面的行为不一致,取决于你使用的版本,所以这里不加以讨论。)”

阅读全文 »