<%@ page contentType=?text/html; charset=GBK? %> <%@ page import =?com.WorkerBean?%> <%@ page import=?java.net.*? %>
int i=0;
WorkerBean test = new WorkerBean(); //HttpSession tsession=request.getSession();
test.setWorker_no(request.getSession().getId()+i);
session.setAttribute(?worker_no?,test.getWorker_no());
System.out.println(?OK?);
System.out.println(?session.getAttribute()==?+session.getAttribute(?worker_no?));
out.println(?session.getAttribute()==?+session.getAttribute(?worker_no?)); out.println(?OK?); %>
testResult.jsp
Tomcat
testResult.jsp内容如下
<%@ page contentType=?text/html; charset=GBK? %> <%@ page import =?com.WorkerBean?%> <%@ page import=?java.net.*? %>
<%
System.out.println(?OK?);
System.out.println(?session.getAttribute()==?+session.getAttribute(?worker_no?));
out.println(?OK?); out.println(?session.getAttribute()==?+session.getAttribute(?worker_no?)); %>
Tomcat
5.2 编写这个jsp调用的javaBean类。
WorkerBean.java
public class WorkerBean implements java.io.Serializable { String worker_no; /**
? @return返回worker_no。 */
public String getWorker_no() { return worker_no; } /**
? @param worker_no要设置的worker_no。 */
public void setWorker_no(String worker_no) { this.worker_no = worker_no; } }
注意:这个类一定要实现序列化,是为了把session对象存在这个类中,session是要在群集中复制的,否则session对象不能在群集中复制。 5.3配置web.xml文件
注意:一定要加入
5.4确保server.xml如附录1和附录2所示:略
5.5 发布web应用,把上面的所有文件考到tomcat的webapps/ROOT目录下,覆盖掉原来的文件就可以了。
5.6 测试web应用
启动apache和tomcat1和tomcat2.
在浏览器地址栏中输入 http://10.3.15.85/ 会看到如下页面
在浏览器地址栏中输入http://10.3.15.85/test.jsp 会看到如下页面
点击上面页面中的2.jsp连接,进入如下页面
可以同看控制台的输出发现,2个tomcat轮流的响应请求的。
然后,任意的关掉其中的一台tomcat, 再点击2.jsp ,还是可以得到回应的。说明群集自动接管了出错机器的应用,发现其中的session的值也是相同的,说明session在群集中不同的tomcat之间进行了会话复制。
总结:通过以上测试和其他工具的测试,发现如果用2台机器作tomcat群集,比一台单独得tomcat支持更多的并发,同时可以做到一台出错时,另一台自动接管。但没有2台单独得tomcat支持的并发多。