- 博客(36)
- 收藏
- 关注
原创 JVM_1
我决定写一个简单易懂的JVM系列blog。没学jvm之前,学习java会洋洋得意,学习jvm之后,觉得真的没什么了,通了之后,反而觉得自己学的很少。但是要等有时间。
2005-10-14 15:32:00 577
原创 ant_3
一级结点是project,二级结点包括property、path 、target,三级以后就是操作命令了。这样先把握前面两级就基本上了解了这个文件的结构了。如果稍微注意一下,就知道其中target的地位了,ant的执行就是以target为单位的,其他的property、path都只是文件中的定义变量而已。给target里面引用,引用就是通过${}这个符号,这样的话,也就是把target讲清楚就ok
2005-10-14 15:28:00 1059
原创 ant_2
ant的项目包偶就不传了,ftp上或apache的官方网站上都可以下到,下了只要解压缩好,然后放到一个目录下就好了。放好后该做什么应该猜的出吧,ant既然是java项目的生成工具,那么必然要用到jdk的核心功能,比如javac和java和jar等了。ant该怎么做呢?一般都是把jvm集成进来了,而不是给它配置一个jdk。项目就是要尽量减少它的对外依赖性。于是一样,要为类装载器设置类路径和为控制台的
2005-10-14 15:27:00 765
原创 ant_1
附件。。要说Ant了,这个工具只能用简单而伟大而实用来形容了,很有用处的,如果是打算做企业级web开发相关的事情的话,当然它的功用远远不只这个了。传一个ant的学习指南吧,很简单的。由于它是一个工具而已,所以就不需要象tomcat那样了解它的内部机制,只需要了解一下怎么使用就ok了,而了解怎么使用是一件很简单的事情,因为人类的第一步不就是从学习使用工具开始的么,最原始的能力了。我希望我可以把它说清
2005-10-14 15:26:00 748
原创 servlet_14
上面那个问题呢,它发生的概率本身也很小的,因为本身每个线程就run的很快,除非你一个线程,设置了类变量,然后等着,这个时候正好有另一个线程又设置了类变量,这样当第一个线程再run的时候,就必然会遇到那个问题了。这种情况很少发生的,当然除非你刻意的,呵呵。所以我们一般不会管这个问题。到这里任务似乎已经完了,但是大家感兴趣的还没有说,就是代码层面了。这里大致的说说。 再回到前面那个Servlet代码,
2005-10-14 15:22:00 677
原创 servlet_13
看上去这样做似乎不是很合理,有这种感觉吧?这么多的请求公用一个对象?至于为什么可以这么做,那么就得了解java多线程和java内存模型了。就是JVM对java线程是如何管理的,内存是如何分配的。这样就又深了,我也并不是很清楚,但是我会尽量把它说清楚些,呵呵,好同情你,看这些帖子的人要有何等的耐心呢?J2EE框架有一个很好的优点,就是已经实现了面对客户端的多线程机制,你开发J2EE项目基本上不用怎么
2005-10-14 15:21:00 825
原创 servelt_3
似乎还是没有说怎么编写一个Servlet,和怎么run一个Servelt,和Servlet到底是什么东西哟。只是说了,它是基于java语言的服务器端开发的一种技术。明天再说吧,对于这几块,我也并不是很重视的,会写有什么用呢?你将来会写别的么?你能够很快的接受新技术么?还有由于这门课是把xml当数据库,所以JDBC可能不会介绍的太详细,再说吧。开写了哈,还是按照大家比较喜欢的方式写吧,虽然我不大衷于
2005-10-14 15:19:00 680
原创 servlet_2
容器是什么?服务器是什么?先指出两句描述它们的含糊的话,我承认是正确的,之所以说它们含糊,是因为它们非常漂亮的表达了某些难以理解的东西,如果你理解到位了,ok,它们就是正确的,如果理解不到位,那么它们对你就是错误的。(我发现我写这个东西的代价了,会变得罗嗦起来)如果你有幸看到的话,有书描述容器是基本上可以当硬件看;服务器呢,你是否也感觉是硬件呢?就这两句话,首先它们不是硬件,是软件。那什么样的软件
2005-10-14 15:18:00 815 1
原创 servelt_12
我在深呼吸,从这里往后偶已经不能象前面一样随意的写了,必须一边学习相关知识一边写了。再往回看,也已经有些脱离帖子的主题了,我就这样一直往下说,而忘了新生能不能很顺畅的往下看了。这是我开始没有料想到的。什么功能呢?放言的说,大家都应该能够回答这个问题。不就是负责把客户端的数据传达到相应的web组件么?这里的web组件包括Servlet、jsp、Html及其他的静态文本。然后再把处理结果返回给客户端么
2005-10-14 15:16:00 607
原创 servlet_11
唉,如果要贯通起来的话,那么必然要扩展的太多了。已经出现大面积的不了解的地段了。知识就是这样子的,你要是只是用,那或许很简单,但是你要是想懂,那么就是犹如往下对地球打坑。比如说Servlet的吧,在用的时候,根本就不用管客户端的请求怎么就到了这个Servlet代码呢?也不用管那么多的客户端,Servlet到底怎么个个处理的呢?可惜,你还必须得去懂Servlet容器,特别是在分布式系统里面。 还是接
2005-10-14 15:14:00 624
原创 servlet_10
下面要说一下Servlet的机制,再下面应该就是tomcat和Ant了。这些更实用些吧,应该。前面说了Servlet是怎么回事,那它是怎么工作的呢?那个容器到底怎么工作的呢?我们只是写了一些Servlet,但是它们是怎么运作的呢?它是一个java类,但是呢,又没见它的实例化,就是写好的一个类,它怎么起作用呢?这个就要从客户端和服务器之间的关系开始说了,都说J2EE很伟大,的确很畅行,其中一个重要的
2005-10-14 15:13:00 674
原创 servlet_9
hoho,终于可以说代码了。首先你要把Servlet的API无论是工作路径还是编译路径都是可见的。下面是处理上面那个HTTP数据包的Servlet。package edu.sspku.wewu200.test.controller; import javax.servlet.Servlet;import javax.servlet.ServletException;import javax.ser
2005-10-14 15:12:00 761
原创 servlet_7
起码的,应该有两个部分吧,一个是包头,一个是数据实体。数据实体就不要管了,就是数据本身。包头应该包括什么呢?呵呵,我现在是坐着说话不腰疼啊。但是要相信,我们是可以做到的。这句话是李冰老师说的:要相信自己是可以产生奇迹的人。也就是说,你是可以设计出一个更好的包的。第一,客户端的一些信息吧。比如IP和Port,本机操作系统,连接情况等;第二,这个包是以什么方式发的,谁发的,发给谁(两个URL);第三,
2005-10-14 15:11:00 595
原创 servlet_5
再说说BS吧,现在的流行,其实它就是CS啦,后来出现的很多都是CS啦。就像老师说的一样,讨厌术语,把握实质。BS就是用浏览器来做客户端工具而已。知道了它们实质上是相同的,但是这当然不够,它之所以称为BS也是有原因的,于是我们需要把握它与CS之间的区别。个人认为,不同的是构架设计不同了,而不是B和C的不同。BS的出现,是带着三层体系结构出来的。而之前的CS是二层体系结构,这是一个发展。哪三层呢?一客
2005-10-14 15:07:00 755
原创 servlet_6
而Servelt的API它做的很好,你只要继承它的一个类,就等于你已经拿到数据了,你需要做的只是把数据的HTTP包给拆开,就行了,返回呢,提供了一个接口,但是一般都不直接用那个接口,都是封装的用,比如dispatch到一个静态页面或者jsp。是一个dispatch的接口,它应该是封装了上面的那个返回的接口。这样写一个Servelt就很简单了。在给代码前,我还讲讲HTTP协议吧。(个人理解)协议是个
2005-10-14 15:07:00 702
原创 servlet_4
引用:好不容易完了一个事情,连续关了几乎5天,每天只吃一顿晚餐。13-05、05-13,一天就像西瓜一样一开两半。虽然最后做的事情并不是什么大事情,但是我确实是花了这么多的时间去琢磨,也算是辛苦吧,其中也知道了很多的东西。还算值得吧。想想一年将近,自己也该给自己算帐了,要转变学习模式了,以前学写代码,以后要学习用代码和设计代码怎么放了。毕竟我还没有遇到太多的逻辑要写,我想如果我以后主要是写逻辑的话
2005-10-14 15:06:00 712
原创 servlet_1
那些java的深层东西就先放下吧,似乎应该讲讲J2EE哦,鉴于这门课程用到的J2EE技术基本上就是Servlet,所以其他的技术这里就不讲了。呵呵,我也讲不来。首先应该知道J2EE是什么吧?和J2SE、J2ME相比,也就是提供了更多的API吧,run的JVM那还不是一样。于是你听到的J2EE中的这个技术,那个技术,真的不要被名字吓倒,丫丫的,它就是给你提供一个相关方面的API而已。说到这里就干脆把
2005-10-14 15:02:00 577
原创 xml_3
当然,开源项目也是在发展的,它的意图是为app开发人员提供某些功能API,所以它的发展方向是从API的便捷和功能扩展两方面的。从项目本身看,就是封装以前的项目了。这样,同一个意图的软件的发展基本上就是这样子的,封装并提供向后兼容,这点可以从JDK的API看出。另外传达一下老师的build from scratch的宗旨吧,从零碎建起,就是目前是学习软件,而不是做软件,所以尽量从相对零开始去建这个金
2005-10-14 14:55:00 503
原创 xml_4
下面的代码是基于dom4j开源项目。SAXReader reader = new SAXReader();Document document = reader.read(new File(fileName));第一行是new一个读取器,你看,基本功能的还是用SAX。第二行是通过一个文件路径把xml文件转换成上面说的结点的有序堆。然后下面就是基于这个Document对象操作了,如果有进行写操作,必须
2005-10-14 14:55:00 524
原创 xml_1
今天我讲一些关于XML的基础知识。关于java的,接下去会讲讲类装载器和JVM的执行引擎,class文件的格式,java栈等专题,因为是比较深入的,有需要就讨论,没有需要就不讨论了吧,因为后面还有很多其他的基础知识。 XML是伟大而简易的。记得有一次听讲座,老师问,你们赞成说话作为最佳交流手段还是文字,丫丫的,下面居然有一大票的人赞成说话。应该有人记得吧,大致的意思是这样的。相对语言而言,文字才是
2005-10-14 14:46:00 563
原创 xml_2
所以决定xml的介绍草草收场吧。直接看源代码,唉,越想越可惜。先给出一个到现在还没有连上的连接吧http://dev.csdn.net/develop/article/41/article/50/50767.shtmXML象什么?象数据库,也象一个类的实例。在设计XML的时候,把它当类看,在操作XML的时候把它当数据库看。我们只讲操作,想想数据库吧,建表、修改表、选择、插入、删除、更新,于是对xm
2005-10-14 14:46:00 680
原创 java_6
哦,似乎应该把J2ME、J2SE、J2EE说说先了。J是java的意思了,2呢是为了区别以前的java1.几版本的,M是微型,S是标准,E是企业,最后的E是版本的意思了。其实通过前面的学习,差不多应该知道这几个之间的区别的了,就是类库API提供的大小不同了。你说运行的JVM嘛,还不都一样,java文件嘛,class文件那肯定都一样,唯一不同的就可能是提供给你app开发的API不同。J2ME是用在消
2005-10-14 14:43:00 521
原创 java_4
差不多对java文件和class文件应该已经晓得了吧?java文件就是你写的java语言代码,class文件是编译好的,本来是不用管的,但是要理解多一些,那总得去了解class文件的格式嘛,如果你不了解这个,那基本上没办法懂得JVM的工作机制,也就很可惜的和java的核心擦肩而过了。这个是说复杂也很复杂,说不复杂也就不复杂,考的是一个耐心了。这个到后面再说。差不多基本的已经ok了吧。写一个java
2005-10-14 14:42:00 536
原创 java_5
所以呢,类库就是工具提供给你的类了。这些类也是放在硬盘上啊,哦,顺便讲讲jar文件了,jar文件就是一堆的class文件打包,先知道这个吧。是啊,都是在硬盘上的东西,我JVM怎么在需要的时候找到它们呢?通过类装载器,先简单的说吧,类装载器就是根据类的全名去从硬盘上把相应的类的class文件找到(其实是非常的复杂的,后面再说)。类的全名这个概念晓得么?就是包的名字加类本身的名字了,包知道吧?就是目录
2005-10-14 14:42:00 533
原创 java_3
呵呵,说到java,就自然要联想到java的一大堆宣传的优点了,集中在一下三点:跨平台,网络移动,安全性。第一个想到的是跨平台,可惜,这个优点我觉得显得很俗气,真的没什么骄傲的。从辨证角度看,它也就是做了一个抽象嘛,从软件设计角度看,它也就是多做了一个层。哦,不是,它还没有抽象这么伟大,就是多做了一层。安全性呢,还可以吧,就是那个类装载器比较有意思外,其他就没什么了,和网络移动一结合起来,安全性的
2005-10-14 14:41:00 742 1
原创 java_2
也就是说所以的数据都是存在硬盘上了,然后你在用的见到的东西都是已经在内存里面了。比如你要打开一个word文件,具体的细节可以参考操作系统的文件系统这部分,基本上你可以这么认为,一开机器后,关于整个文件系统的目录信息和目录管理信息都会读到内存中,而你点击了一个word文件后,它就会去这个目录信息中找到唯一标识这个文件的目录信息,根据目录信息,就可以去硬盘上找到它的二进制数据在硬盘上的位置,然后读进内
2005-10-14 14:38:00 685
原创 java_1
我是平民,然后我说我要说java,然后我就成了无赖。因为丫丫的,还没有学过java,也没有写过完全基于J2SE的程序,也就是大致的java桌面应用程序了。所以呢,就象老师说的一样,没学过java,没关系,没学过XML,没关系,你只要跟进来,你就自然会了。第一次听说java是因为它的OO气质,第一次看到的java代码是new一个数组,第一次写java代码是05年的春季学期。非常显明,我是赞成语言不是
2005-10-14 14:37:00 545
原创 tomcat_7
看了上面那篇文章,可以更加深刻的理解conf下面的那一堆的xml配置文件了,这里我就不多讲了,我们只想关注我的项目web.xml到底应该怎么写呢?这样就需要了解Context是如何处理这个文件的,其他的就先不关心了。好好看看上面的那篇文章还是很有益处的。再把问题具体化一些,基于j2ee的服务器的webhttp请求到底有哪几种呢?我分为两种,一种是页面资源的请求,一种的逻辑资源的请求。虽然最后都是通
2005-10-14 14:23:00 680
原创 tomcat_8
在这里先讲讲一个Servlet怎么配置的。它的主要目的就是让一个url映射到具体的Servlet类了。看看上面就知道了,它一般有两个,一个是指定一个name,和类的全名,一个是为这个name的Servlet配置url的映射,也就是如果是这个url的话,那么就是这个name的Servlet,然后通过这个name的Servlet去找到它的具体类。这样通过name的中介,来把一个url映射到一个具体的S
2005-10-14 14:23:00 748
原创 tomcat_6
引用:2.0 Tomcat的启动流程 这篇文章是讲tomcat怎么启动的,既然我们大体上了解了TOMCAT的框架结构了, 那么我们可以望文生意地就猜到tomcat的启动, 会先启动父容器,然后逐个启动里面的子容器。 启动每一个容器的时候, 都会启动安插在他身上的组件。 当所有的组件启动完毕, 所有的容器启动完毕的时候, tomcat本身也就启动完毕了。 顺理成章地, 我们同样可以猜到, tomca
2005-10-14 14:22:00 790
原创 tomcat_4_new
Engine和Host和Context三个已经是开始到应用层面的配置了,是Container级别。之所以是三级,是从实际开发需求来设定的。要了解清楚的话,那就必须要知道Host的概念了,指虚拟主机。虚拟主机是一种在一个web服务器上服务多个域名的机制,对每个域名而言,都好象独享了整个主机。基于名字的虚拟主机可以被建立在任何web服务器上,建立的方法就是通过在域名服务器(DNS)上建立IP地址的别名
2005-10-14 14:21:00 736
原创 tomvat_5
(哦,上面关于组件这一级别,这里就不讲了,大致的概念是为容器来配置某些其他的服务,常见的有manager,loger,loader,pipline等,大家可以去关注)这样就到了我们更需要关注的一块了,也就是项目本身了。 通过上面的,应该已经知道,Servlet等是由Context容器管理的。而Context容器怎么管理呢?如果还记得前面讲的的话,应该知道conf里面有一个文件context.xml
2005-10-14 14:21:00 759
原创 tomcat_3_new
上面说的那几个文件,大致意思都应该晓得的,我们主要关注两个文件,一个是server.xml和web.xml,这两个文件基本上可以包含我们所需要知道的。如果你看到这里,希望可以去读读这两个文件,前面是关于服务器配置的,后面这个文件是所有web项目如果要在tomcat里面run都必须配置的相关描述。还记得前面的DD这个词么,就是部署描述符,每个web项目都有一个描述文件,是自己要编写的,也就是web.
2005-10-14 14:20:00 606
原创 tomcat_2
于是我们就象读源代码一样来读读这么一堆的xml文件吧,我也是一样,很多的xml文件都是第一次读的。先大致的都读一下,然后再着重讲其中的一两个。不要嫌烦,没有耐心能做好什么呢?哦,先说一下,tomcat有非常之完善的docs,基本上可以囊括你全部的app开发时会遇到的一般问题,也可以通过它进行学习。非常之不错,我只是推荐,偶也没有怎么看。 catalina.policy:这是策略定义文件了,你可以看
2005-10-14 14:09:00 598
原创 tomcat_1
从对tomcat本身的学习来讲,当然要数读它的源代码为最佳学习方法了。然后,对于我们,并没有必要这样,我们需要了解的是tomcat的设计,它的框架,它的运行机制。于是我们就从tomcat的应用层开始。当你将tomcat装好了之后,或许就只关注webapps这个目录了,其他的就不管了。那就从tomcat的目录开始说吧,bin、common、conf、logs、server、shared、webapp
2005-10-14 14:08:00 583
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人