前两天,利用线程池技术(ThreadPool)写了个web服务器,其性能当然无法和apacheiis等相比,但基本的功能都有了,唯一欠缺的是无法解析动态页面,采用解释执行(asp模式的)效率太低,如果采用编译执行,要么自己编写一个编译器来编译整个动态页面,要么采用预编译,很复杂。。。。现在把代码拿出来晒一晒!由于只是初步的设计所以没有考虑到很多设计模式,代码在优化上很不到位,请各位高手不吝赐教。MainServer.java这是主服务文件,也是提供主线程的
系统 2019-08-12 09:29:48 2438
由于系统中是用Json传输数据的,我觉得在这里有必要把Java和Flex处理Json数据分别介绍一下,今天我们先介绍Java处理Json数据。java里面已经有开源包实现了把一个Java对象转换为JSon对象,它就是http://www.json.org/java/,各位读者可以在这个网站上面去下载jar包。首先创建一个自己的public的class,需要转换的类必须是public的,如果不是public的,这里转换不成功,我在写这篇文章的时候就遇到了这样
系统 2019-08-12 09:29:38 2438
一、引子话说十年前,有一个爆发户,他家有三辆汽车(Benz(奔驰)、Bmw(宝马)、Audi(奥迪)看来这人比较爱国,没有日本车),还雇了司机为他开车。不过,爆发户坐车时总是这样:上Benz车后跟司机说"开奔驰车!",坐上Bmw后他说"开宝马车!",坐上Audi后他说"开奥迪车!"。你一定说:这人有病!直接说开车不就行了?!而当把这个爆发户的行为放到我们程序语言中来,我们发现C语言一直是通过这种方式来坐车的!幸运的是,这种有病的现象在OO语言中可以避免了。
系统 2019-08-29 23:01:33 2437
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,将http://192.168.1.110:2046/的URL反向代理为http://www.javapeixun.com.cn/的URL时,用request.getRemoteAddr()方法获取的IP地址是:127.0.0
系统 2019-08-29 22:59:17 2437
内容可能有些不严谨的地方,希望大家落脚前先拍砖,多谢深入入门正则表达式(java)-引言深入入门正则表达式(java)-1-入门基础深入入门正则表达式(java)-2-基本实例深入入门正则表达式(java)-3-正则在java中的使用深入入门正则表达式(java)-匹配原理-1-引擎分类与普适原则深入入门正则表达式(java)-匹配原理-2-回溯回溯(backtracking)NFA引擎最重要的性质是:它会一次处理各个子表达式或组成元素,遇到需要在两个可能
系统 2019-08-29 22:04:20 2437
Java语言的一个优点就是取消了指针的概念,但也导致了许多程序员在编程中常常忽略了对象与引用的区别,特别是先学c、c++后学java的程序员。并且由于Java不能通过简单的赋值来解决对象复制的问题,在开发过程中,也常常要要应用clone()方法来复制对象。比如函数参数类型是自定义的类时,此时便是引用传递而不是值传递。以下是一个小例子:1publicclassA{2publicStringname;3}4publicclasstestClone{5publi
系统 2019-08-29 22:02:42 2437
volatile,用更低的代价替代同步为什么使用volatile比同步代价更低?同步的代价,主要由其覆盖范围决定,如果可以降低同步的覆盖范围,则可以大幅提升程序性能.而volatile的覆盖范围仅仅变量级别的.因此它的同步代价很低.volatile原理是什么?volatile的语义,其实是告诉处理器,不要将我放入工作内存,请直接在主存操作我.(工作内存详见java内存模型)因此,当多核或多线程在访问该变量时,都将直接操作主存,这从本质上,做到了变量共享.v
系统 2019-08-29 22:02:41 2437
敏捷开发的理念已经流行了很长的时间,在敏捷开发中的开发迭代阶段中,我们可以通过五个步骤,来有效的提高整个项目的代码质量。Java项目开发过程中,由于开发人员的经验、Java代码编写习惯,以及缺乏统一的标准和管理流程,往往导致整个项目的代码质量较差,难于维护,需要较大的测试投入和周期等问题。这些问题在一个项目组初建、需求和设计均具有不完全可预期性和完备性的全新项目中将尤为突出。如图1所示,敏捷开发过程经历需求调研,用例分析和用例分解,进入开发迭代阶段。在每个
系统 2019-08-29 21:58:48 2437
l创建模式1.工厂模式简单工厂:又称静态工厂方法模式,它可以根据传进来的参数来选择创建哪些对象。这样方便,但有个缺点,因为工厂模式本来就是为了将对象的使用和创建脱藕,而如果使用简单工厂模式的话,那么客户端就需要知道要创建的对象的类型。工厂方法:又称多态性工厂模式。工厂模式的核心是一个抽象工厂类,而简单工厂模式把核心放在一个具体类上。工厂方法模式可以允许很多具体工厂从抽象工厂类中将创建行为继承下来,从而可以成为多个简单工厂模式的统合,进而推广了简单工厂类。而
系统 2019-08-12 09:30:07 2437
paint,repaint,update,这3个都跟绘图有关系的相关的方法把。这3个虽然以前用过,但是但是没有完全理解。下面这个段话是转载的(感觉讲的比较好):repaint()这个方法是一个具有刷新页面效果的方法,如果你要页面进行重画就可以调用.从上面的流程图可以看出,在绘制动画图形时候如果没有调用repaint()方法的时候直接就是由线程调用paint()方法进行绘制,用repaint()进行刷新显示.但是这样的动画会有个缺点(这样的效果绘制出来会有闪
系统 2019-08-12 01:54:48 2437
Reference:http://www.programcreek.com/2013/10/efficient-counter-in-java/Youmayoftenneedacountertounderstandthefrequencyofsomething(e.g.,words)fromadatabaseortextfile.AcountercanbeeasilyimplementedbyusingaHashMapinJava.Thisarticlec
系统 2019-08-12 01:54:24 2437
公司的一个JAVA应用系统上线以来,基本每1天OutOfMemoryError:PermGenspace一次。JAVA堆上限1个G,出现了好多次,想到JRockit可以分析内存泄漏的问题:1.JRockit简介Jrockit是Bea开发的符合JAVA虚拟机规范的虚拟机+虚拟机监控软件。虚拟机:JrockitRealTime监控软件:JrockitMissionControlJrockitRealTime与SUN的JDK是完全兼容的,也就是说以前在SUN的虚
系统 2019-08-12 01:33:54 2437
一、引子我们去科技市场为自己的机器添加点奢侈的配件,很多DIYer都喜欢去找代理商,因为在代理商那里拿到的东西不仅质量有保证,而且价格和售后服务上都会好很多。客户通过代理商得到了自己想要的东西,而且还享受到了代理商额外的服务;而生产厂商通过代理商将自己的产品推广出去,而且可以将一些销售服务的任务交给代理商来完成(当然代理商要和厂商来共同分担风险,分配利润),这样自己就可以花更多的心思在产品的设计和生产上了。在美国,任何企业的产品要想拿到市场上去卖就必须经过
系统 2019-08-29 23:39:43 2436
本文来自CSDN博客http://blog.csdn.net/liushengmz/archive/2010/04/29/5541986.aspx问题:在存储过程中,有时会遇到比较变态的东西,如一个存储过程中有output返回值,有return返回值,还有查询的返回值TABLE,遇到这样的存储过程真是郁闷,一次性把所有的返回值取出来还真的有点麻烦。1、首先来看这个存储过程吧CREATEPROCEDUREParaTest@paraoutvarchar(20)
系统 2019-08-29 23:21:29 2436
1.引入Jar包2.Web.xml中添加信息SOAPMonitorServiceorg.apache.axis.monitor.SOAPMonitorServiceSOAPMonitorPort5001
系统 2019-08-29 22:26:05 2436