引言:
Servlet版性能测试
主要考虑的Servlet版运行方式有:
一:Servlet在Web容器中的运行机制
1. 单独一个无状态的Servlet实例运行
即Web容器里的多个线程调用一个Servlet实例的运行方式
2. 多个Servlet实例
在Web容器中有多个...
摘要: 初学者问的诸如:《怎样配置环境变量》《怎样运行servlet》啊?这样的问题太多了,现在我写一个初学者入门必读,以便对初学者有指导作用! 首先是下载工具: 我建议初学者用editplus+jdk,我觉得如果用例如jb,eclipse,jcreator,虽然刚开始的时候比较方便,但是确使初学者门不知道怎样配置环境变量,从而难以达到知其然,知其所以然的地步。 可以通过如下地址下载:editp......
摘要:
编写一个tag涉及三个步骤,
(1)编写jsp
(2)编写tag的java程序
(3)编写tag库的描述文件tld(实际是一个xml文件)
这三个步骤之间没有顺序约束,下面是一个简单的例子:
1 编写hellotag.jsp
<%@page contenttype="text/html"%><html><head><titl......
关于JAVA的分页查询操作技术上一页 ...
鉴于以上的考虑对servlet版的测试规划为以下几种测试用例:
序号 部署包名(*.jar *.war *.ear 等) 数据源配置 weblogic server
的配置 预期结果 说明 可能出现的问题与现象
1 servletqueryforperconn.war 在每此业务处理时创建数据库连接,操作完毕后关闭并释放.
通过web.xml配置文件来配置jdbc的驱动类型与连接. 直接部署servletqueryforperconn.jar部署包.
web容器中只有一个serverlet实例.
建议配置较多的线程数量.
性能差.
在每此业务处理时创建数据库连接,操作完毕后关闭并释放.
此包中没有设计到线程同步的有关代码. 数据库很忙(因为数据库要接收频繁的数据库连接).
可能瓶颈在数据库对频繁的连接处理.
数据库事务方面:由于是在每次处理时就调用数据库连接并查询,因此数据库的事务处理应该是单独在一个独立的处理过程中,与并行的其他线程的处理没有关系.
2 servletqueryforonceconn.war servlet对象只是的初始化时连接与数据库的一个连接,在以后的操作中式中使用这个连接.
通过web.xml配置文件来配置jdbc的驱动类型与连接. 直接部署servletqueryforonceconn.jar包;
web容器只有一个servlet实例.
建议配置较多的线程数量.
性能较差.
servlet对象只是的初始化时连接与数据库的一个连接,在以后的操作中式中使用这个连接.
此包中没有设计到线程同步的有关代码. 数据库连接只有一个.
可能瓶颈在web容器的多个线程对同一个数据库连接对象的同步等处理(这些同步处理是web容器自己管理的).
可能出现查询的数据在多个客户请求中打乱(因为同时使用同一个数据库通信通道);
并且多个线程(单独的处理单元)可能会在同一个处理事务中,可能各个处理单元会串行操作数据库(这要看数据库的具体实现了).
3 servletqueryforconnpool.war 直接使用web容器的数据源与数据库连接池. 配置数据源及数据库连接池.
建议根据实际情况优化配置数据源与连接池.如可建立多个连接池等配置. 性能好. servlet实例不管数据库连接,而是直接从web容器中取得数据库连接.数据库的连接对象有web容器全权管理.
此包中没有设计到线程同步的有关代码. 对web容器的数据库连接池的配置可能要根据具体情况进行有效的调整(如数据库连接对象个数与web容器配额的线程个数的关系等).如果配置不佳可能是性能瓶颈在web容器或者在数据库方.
4 servletqueryforconnpool.war
(同测试3) 同测试3 web容器的数据源重新配置为数据库产品专用的jdbc驱动器. 性能好. 测试目的是比较各种不同的jdbc数据连接驱动器的性能,以便得出根据不同的数据库产品选择最佳的jdbc驱动器....
下一页 摘要:
servlet/jsp技术和asp、php等相比,由于其多线程运行而具有很高的执行效率。由于servlet/jsp默认是以多线程模式执行的,所以,在编写代码时需要非常细致地考虑多线程的同步问题。然而,很多人编写servlet/jsp程序时并没有注意到多线程同步的问题,这往往造成编写的程序在少量用户访问时没有任何问题,而在并发用户上升到一定值时,就会经常出现一些莫明其妙的问题,对于这......