Java
文章平均质量分 75
enoeht
这个作者很懒,什么都没留下…
展开
-
enoeht的Java源码系列(1)--TCP服务器
这是一个TCP服务器端的实现代码,监听客户端的请求,在子线程中处理各个客户端发来的数据包,再将处理后的结果送回客户端。这里提供的代码很完整,包括一个mainclass,一个监听class和它的interface,一个包处理class,一个发送class,基本上可以直接使用。其中用到的一些工具类,例如Debug、GenProfile、Terminator等,它们代码也会出现在随后的系列文章中。原创 2004-06-23 11:58:00 · 1141 阅读 · 0 评论 -
处理没有被捕获的异常
在我们的程序中并不是所有的异常都被捕获,有些是因为我们不想捕获,因为我们认为那些异常没必要捕获 而有些是我们无法捕获的,因为我们不能确定它们会在什么地方出现,例如像NullPointerException,ClassCastException,IndexOutOfBoundsException这些RuntimeException。我们也许可以在所有它们有可能发生的地方去捕获它们,但这确实原创 2004-07-26 18:20:00 · 1207 阅读 · 0 评论 -
检测用户浏览器的Cookie设置
这是一个检测用户浏览器的Cookie设置是否打开的一个小技巧。 技巧很简单,当servlet接收到一个请求时,先不处理这个请求,而是发送一个响应,在响应中包含一个cookie并且要求浏览器在接到这个响应后立即再重发上一个请求,并在请求中添加这个cookie,然后在servlet中检测浏览器第二次发的请求中是否有这个cookie,如果没有就说明这个浏览器不支持cookie,有就对这个请求进行应作的处原创 2004-07-26 17:38:00 · 2584 阅读 · 0 评论 -
在Java中处理日志记录
在JDK1.4中提供了一个日志记录包:java.util.logging,它可以对程序中的日志记录进行相当复杂的控制。例如:通过它可以指定日志的级别和日志的位置(控制台、文件、套接字、内存缓冲区),也可以创建子记录器,通过它可以用程序控制的方式来指定想记录的内容,也可以使用配置文件来指定,而不需要去改动程序。和Log4j相比,它更简单更轻量级,在对日志输出的要求不是很复杂时,它无疑是更好的选择。原创 2004-07-26 17:33:00 · 1383 阅读 · 0 评论 -
enoeht的Java源码系列(6)--调试信息与日志文件
在程序中我们常常用System.out.println来输出调试信息,方便且简单,但是往往是因为它太简单、太方便了,以致于让我们需要用一个更强大更灵活的方法来替代它,这篇文章的目的就是提供了一个这样的方法。 在我的开发过程中,我会对输出的调试信息有这样的期望:在开发的时候,输出大量的细节信息让我能很方便的调试,而到了发布的时候,不用改任何代码,就能让程序只去显示客户会感兴趣的信息;同样不需要改原创 2004-06-23 12:32:00 · 1263 阅读 · 1 评论 -
Java多语言编码问题解析(2)
这里是一个具体的例子: 现在因为浏览器对UTF-8的支持,我们可以通过在源文件、请求、响应中都使用unicode编码方式,来轻松达到处理国际化和字符编码问题的目标。以我们使用的tomcat4.1.2为例,过程如下: 1、编写JSP页面时:在每个JSP页面在页首都要增加一行:在编辑JSP页面时,一定要确保JSP文件以unicode的方式保存,目前几乎所有的编辑器都有以unicode编码保存或将文件内原创 2004-06-23 11:38:00 · 1381 阅读 · 1 评论 -
Java多语言编码问题解析(1)
1、Java编译器在对源文件编译前,会先把源文件转换为unicode编码,因为这个原因,我们在编译时一定要把源文件用的是什么编码方式正确无误的”告诉”编译器。 例如:我们的源文件是以UTF-8的方式保存的,而在编译时编译器却把它当作是用GBK方式保存的,这样编译器就会按照GBK->Unicode的编码转换方法对源文件进行转换,然后再编译,这样当然会出错,实际上编译器应当按照UTF-8->Unico原创 2004-06-23 11:34:00 · 1063 阅读 · 0 评论 -
Synchronized使用心得
用synchronized关键字修饰方法后,程序将根据调用此方法的对象的锁来判断是否能调用此方法。 对一个类的instance method,则当此方法被一个线程调用时,其他线程不能再通过同一个对象调用此方法(可以通过这个类的另一个对象来调用这个方法)。 对一个类的static method,则当一个线程通过类对象调用此方法时,其他线程不能再通过类对象调用此方法。由于类对象在类加载时由虚拟原创 2004-06-23 12:35:00 · 6334 阅读 · 2 评论 -
enoeht的Java源码系列(4)--继续处理配置文件
我们还常常会在程序中用到这样的配置文件: [section] key = value 下面是一个这种配置文件中的实例 [Server] Address=192.168.1.151 Port=8000 Version=1 Info=1 [User] Name=Kyle Pwd=1234 [ID] 111;222;333 [END] 在这里提原创 2004-06-23 12:13:00 · 906 阅读 · 0 评论 -
enoeht的Java源码系列(3)--处理配置文件
我们常常会在程序中用到这样的配置文件: Listener = org.kyle.net.svr.sample.SampleListenerImpl ServerAddress = 127.0.0.1 ListeningPort = 80 ListenerTimeout = 120 StatelessService = true LogLevel = ALL LogPath = server.log原创 2004-06-23 12:10:00 · 949 阅读 · 0 评论 -
enoeht的Java源码系列(2)--综合工厂
package org.kyle.net.svr.sample; public class IntegrationFactory { public IntegrationFactory() { } public static IListener createListener(GenProfile genCfg) { IListener i原创 2004-06-23 12:06:00 · 953 阅读 · 0 评论 -
enoeht的Java源码系列(5)--字符串加解密
这一篇的内容是一个简单的对字符串加解密的类: Then call its encrypt or decrypt method with an authenticator byte array (the parameter Auth which is a 16 octet byte array) and the data which is wanted to be encoded or decode原创 2004-06-23 12:18:00 · 1184 阅读 · 0 评论 -
Servlet访问路径
http://company/shopping/loginServlet 通常用这样的路径来访问webroot/company/shopping /WEB-INF/classes目录下的一个servlet http://company/shopping/servlet/ login 默认情况下servlet的URL都被设置在一个servlet下 invoker /servlet/* h原创 2004-07-26 17:40:00 · 4187 阅读 · 0 评论