摘要: 本文虽然是Setup,但是没有讲最generic的安装方法,那就是直接将Tomcat解开,然后配置好JAVA_HOME,用$CATALINA_HOME/bin/startup.sh(.bat)来启动Tomcat,这是最普通的做法。本文重点介绍的是更好的一种方法,那就是在windows和linux下都把Tomcat跑成一个service/daemon。1. 在windows下的安装非常简单。Tomcat 5本身就带了一个exe格式的安装文件,直接双击这个文件就可以开始安装,安装过程中还可以选择是否将Tomcat配置成一个windows的service,非常好用。2. 重点是UNIX/Linux下 阅读全文
posted @ 2011-01-11 22:35 super119 阅读(665) 评论(0) 推荐(0) 编辑
摘要: 本节没什么特别的东西,只是一个非常简单的overview。1. CATALINA_HOME 指的就是Tomcat安装的root目录,Catalina是“远程轰炸机”的意思。2. Tomcat 5和Tomcat 3.x, 4.x相比有很大的变化,特别是在配置方面,如server.xml,所以千万不要拿在网上找到的Tomcat 3.x, 4.x的配置文章来对Tomcat 5做配置,很多时候这是没有作用的。3. 文中最后一节“Where to go for help”列出了除了Tomcat提供的这些文档以外,还有哪些地方可以提供help,有maillist,FAQ,wiki等,有兴趣的自己去看一下。 阅读全文
posted @ 2011-01-11 22:35 super119 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 本文介绍了如何在tomcat中部署一个web app。1. 在tomcat中部署一个web app有两类做法。第一,静态部署。此类部署就是将web app的文件拷贝到相应的路径,作一些配置,然后重启tomcat,在tomcat启动的过程中,会将这个web应用部署到tomcat中。第二,动态部署。动态部署tomcat支持两种方式,第一就是使用tomcat manager,这是tomcat 5 core包中就自带的一个web app,用这个tomcat manager就可以动态的部署一个web应用,无需重启tomcat;第二,使用tomcat deployer,这个包可以在tomcat 5的网站上 阅读全文
posted @ 2011-01-11 22:34 super119 阅读(539) 评论(0) 推荐(0) 编辑
摘要: 本文描述的是安全方面的东西,对我们的用处也不是很大。比如,如果我们搞了一台机器,装了一个Tomcat,里面跑了一些应用,此时如果有一个用户,写了一个这样的JSP:% System.exit(1); %这个JSP就会导致我们的Tomcat退出。因为整个JVM退出了。本文描述的就是Tomcat通过配置一个策略文件(Policy file),来限制用户能使用的资源和权限。具体详情请参考文档本身。Tomcat自带的Policy文件,应该已经有了一个不错的Policy file。 阅读全文
posted @ 2011-01-11 22:33 super119 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 本文讲述的是在Tomcat中配置Realm(领域)。Realm就是一个username和password的集合,通过配置Realm,我们可以限制账户和web app等其他资源之间的access关系。对于EasyCluster而言,这个没什么意义,因为在EasyCluster的tomcat中,只会run一个web app。另一方面,通过配置Realm,用户可以把一些信息放到Realm中,并设定权限,从而方便web app的开发,比如将用户名和密码做成Realm。这个Realm来自Servlet Specification 2.4,这份specification中规定Servlet Contain 阅读全文
posted @ 2011-01-11 22:33 super119 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 本文介绍Tomcat Manager。Tomcat manager就是一个Tomcat自带的web app,用来作一些管理用途。他能干下面的一些事情:(1) Deploy a new web application, on a specified context path, from the uploaded contents of a WAR file.(2) Deploy a new web application, on a specified context path, from the server file system.(3) List the currently deploye 阅读全文
posted @ 2011-01-11 22:33 super119 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 本文讲述在Tomcat中配置JNDI。JNDI IntialContext其实是J2EE中要求的一个东西,不过Tomcat也实现了。在Tomcat这些app server中配置好资源,在我们的web应用的web.xml中就可以引用这些资源了。1. 在Tomcat中,一个资源可以被配置成server类型的和web应用类型的。所谓server类型的就是在server.xml中用GlobalNameingResources定义的资源。在GlobalNamingResources中,就存在多个Resource的配置,这种资源可以被server中所有的web app所用,web app通过用 阅读全文
posted @ 2011-01-11 22:32 super119 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 本文特别对Datasource类型的JNDI的配置做了解说。1. Tomcat对DataSource类型的资源采用的是DBCP。DBCP支持JDBC 2.0, 在安装了JVM 1.4版本或更高的情况下,DBCP支持JDBC 3.0。2. DBCP需要以下三个component,他们都来自Apache Jakarta Common Project,他们是:Jakarta-Commons DBCPJakarta-Commons CollectionsJakarta-Commons Pool这三个component都被包装在了$CATALINA_HOME/common/lib/naming-fact 阅读全文
posted @ 2011-01-11 22:31 super119 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 本文讲述了Tomcat的classloading的逻辑。1. 之所以要讲Classloading的事情,关键还是解决在开发过程中碰到的class找不到,一些资源文件找不到的问题。要解决这样的问题,就必须理解Tomcat的classloader会到什么地方去找class,找资源。2. 首先是一个总结,告诉我们应该怎样防止自己的class和资源:(1) For classes and resources specific to a particular web application, place unpacked classes and resources under /WEB-INF/clas 阅读全文
posted @ 2011-01-11 22:30 super119 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 最近在调试EC V2.0, web程序中的web.xml继承自EC V1.2的web.xml,这个web.xml文件应该是在Netbeans 3.6自动生成的一个框架上修改得来的。里面有这样的一段配置:CODE:SELECT ALL!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"从这段配置上来看,似乎程序会到http://java.sun.com/j2ee/dtds/web-app_2 阅读全文
posted @ 2011-01-11 22:29 super119 阅读(1499) 评论(0) 推荐(0) 编辑
摘要: 本文讲述在Tomcat中配置SSL的支持。1. 在Tomcat中配置对SSL的支持还是比较容易的。大概分为这么几步:(1) 如果JVM的版本低于1.3,那么需要下载JSSE,这是JAVA对SSL的支持库。从JDK 1.4开始,JSSE已经被内置进JDK。所以象现在的话,这个步骤就可以省略了。(2) 执行命令(Linux系统下):$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSAwindows下也是一样,就是路径要用正的斜杠。通过这个命令,会在当前用户的主目录下生成一个名为.keystore的文件,这就是Tomcat做SSL的时候用的 阅读全文
posted @ 2011-01-11 22:26 super119 阅读(354) 评论(0) 推荐(0) 编辑
摘要: 本文讲述Tomcat 5中的DefaultServer.1. 什么是DefaultServlet? DefaultServlet被定义在$CATALINA_HOME/conf/web.xml中,这里面被定义的东西会在Tomcat启动的时候被加载,对所有的webapp都有效。DefaultServlet在Tomcat中主要是做Directory Listing用。2. DefaultServlet在web.xml中是这样被定义的:[代码]从上可以看出,有一些参数可以控制DefaultServlet的行为。此外,当请求的URL是/的时候, 也就是没有匹配的时候,就会触发这个DefaultServl 阅读全文
posted @ 2011-01-11 22:25 super119 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 本文讲述APR(Apache Portal Runtime)和Tomcat.1. APR来源自apache项目,是apache 2.x中的一个核心模块。在Tomcat中使用APR,能带来性能的很大提升和高扩展性。因为ARP是使用很多native的方法,比如sendfile(使用sendfile就可以让用户下载大文件),epoll等(Linux系统下)。这里是原文的描述:Tomcat can use the Apache Portable Runtime to provide superior scalability, performance, and better integration wi 阅读全文
posted @ 2011-01-11 22:24 super119 阅读(324) 评论(0) 推荐(0) 编辑
摘要: Class.forName(xxx.xx.xx) 返回的是一个类, .newInstance() 后才创建一个对象 Class.forName(xxx.xx.xx);的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段Class aClass = Class.forName(xxx.xx.xx);Object anInstance = aClass.newInstance();Class.forName("").newInstance()返回的是objectbut there is some limit for this method to create instance 阅读全文
posted @ 2011-01-11 22:22 super119 阅读(405) 评论(0) 推荐(0) 编辑
摘要: Tomcat 5开始,context的配置就不放在TOMCAT HOME/conf/server.xml中,而是每个context作为一个单独的xml文件,放在TOMCAT HOME/conf/Catalina/localhost目录下,具体看之前写过的Tomcat 5 Guide阅读笔记。但是,如何修改Tomcat的根目录呢,也就是/。经过多方资料查询和试验,发现应该这样,首先和其他的web app一样,写一个xml文件,如下:CODE:SELECT ALL?xml version="1.0" encoding="UTF-8"?Context docBase="/home/ba 阅读全文
posted @ 2011-01-11 22:20 super119 阅读(230) 评论(0) 推荐(0) 编辑
摘要: HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求网页后,从服务器端将网页文件压缩,再下载到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。更为重要的是,它可以对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩,压缩效率惊人一,对于Tomcat5.0以后的版本是支持对输出内容进行压缩的. 使用的是gzip压缩格式下面是tomcat5.5.20 中的$tomcat_home$/conf/server.xml的原内容COD 阅读全文
posted @ 2011-01-11 22:20 super119 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 这篇文章主要描述了HTTP的服务器推的技术。名词Comet是现在世界上对服务器推技术的一个称呼。1. 基于Flash的。Flash提供了XMLSocket类,通过和JavaScript的结合,实现Comet2. 基于Java Applet的。文中说到这样做是可以的,缺点就是:浏览器要装JRE插件,而且applet得到数据后无法去更新网页。这个应该是有办法的,我记得之前在google上搜索过applet和javascript通信的方法的。3. 基于Ajax的长轮询方式。这是我关注的一个方法。之前我用的都是一个Ajax查询,服务器返回,然后更新界面。Ajax的查询是定时发出的。如文中所说,这样做的 阅读全文
posted @ 2011-01-11 22:19 super119 阅读(408) 评论(0) 推荐(0) 编辑
摘要: 最新的实验结果表明,在全部改成UTF-8编码之后(也使用了SET NAMES UTF8),本文在描述我们的程序取得数据往mysql中存的时候,有错误。具体请看下面的描述。本文源自以前开发Java web程序多次遇到的乱码问题的积累。首先需要申明的是,在网上有关解决java web开发乱码问题的文章太多了,象什么request.setCharacterEncoding("UTF-8"), response.setContentType("text-html;charset=UTF-8"), 写一个Fileter等等,不可尽信。这些文章可能都是真实的,但是能引起java web开发乱码问题的因素太 阅读全文
posted @ 2011-01-11 22:16 super119 阅读(743) 评论(0) 推荐(0) 编辑
摘要: 1. ActionForm这个鸡肋的东西。validate方法的确可以校验form,但是一旦校验失败了,要返回input page的时候,大部分时候input page要能正确显示需要一些object(一般是绑定在request上的),为了满足这个要求,要在form中调用显示input page的那个bean,得到相关的object,然后validate方法才能返回ActionErrors。而且很多HTML控件,比如select,在ActionForm中就要用非常麻烦的数据结构,如字符串数组,collection等。2. Struts的标签库和很多机制对支持“多选项”、“多选择”、“多参数”的 阅读全文
posted @ 2011-01-11 22:11 super119 阅读(223) 评论(0) 推荐(0) 编辑