没有合适的资源?快使用搜索试试~ 我知道了~
提升JSP页面响应速度的七大秘籍绝招
需积分: 31 2 下载量 40 浏览量
2010-08-11
00:04:07
上传
评论
收藏 338KB DOC 举报
温馨提示
试读
32页
提升JSP页面响应速度的七大秘籍绝招提升JSP页面响应速度的七大秘籍绝招提升JSP页面响应速度的七大秘籍绝招
资源推荐
资源详情
资源评论
提升
JSP
页面响应速度的七大秘籍绝招
关键字: jsp
方法一:在 servlet 的 init()方法中缓存数据
当应用服务器初始化 实例之后,为客户端请求提供服务之前,它
会调用这个 的 方法。在一个 的生命周期中,方法只
会被调用一次。通过在 方法中缓存一些静态的数据或完成一些只需要执行
一次的、耗时的操作,就可大大地提高系统性能。
例如,通过在 方法中建立一个 连接池是一个最佳例子,假设我
们是用 的 接口来取得数据库连接,在通常的情况下,我
们需要通过 来取得具体的数据源。我们可以想象在一个具体的应用中,如
果每次 请求都要执行一次 查询的话,那系统性能将会急剧下降。解
决方法是如下代码,它通过缓存 ,使得下一次 调用时仍然可
以继续利用它:
!
"#
!$ % &
'( '( )*
+! #
'(&
! ! % &
,#
! % * !&
%
!$!-./.&
0)1(+!
#-2&0
0)+! #-2&0
0
!$ (2#
&
0
0
方法 2:禁止 servlet 和 JSP 自动重载(auto-reloading)
/3 提供了一个实用的技术,即自动重载技术,它为开发人员提供
了一个好的开发环境,当你改变 和 3 页面后而不必重启应用服务器。
然而,这种技术在产品运行阶段对系统的资源是一个极大的损耗,因为它会给
3 引擎的类装载器带来极大的负担。因此关闭自动重载功能对
系统性能的提升是一个极大的帮助。
方法 3: 不要滥用 HttpSession
在很多应用中,我们的程序需要保持客户端的状态,以便页面之间可以相
互联系。但不幸的是由于 "223 具有天生无状态性,从而无法保存客户端的状
态。因此一般的应用服务器都提供了 来保存客户的状态。在 3 应用
服务器中,是通过 " 对像来实现 的功能的,但在方便的同
时,它也给系统带来了不小的负担。因为每当你获得或更新 时,系统
者要对它进行费时的序列化操作。你可以通过对 " 的以下几种处理
方式来提升系统的性能。
如果没有必要,就应该关闭 3 页面中对 " 的缺省设置。 如
果你没有明确指定的话,每个 3 页面都会缺省地创建一个 "。如
果你的 3 中不需要使用 的话,那可以通过如下的 3 页面指示符来
禁止它:
<45 ( %.6.4>
不要在 " 中存放大的数据对像:如果你在 " 中存
放大的数据对像的话,每当对它进行读写时,应用服务器都将对其进行序列化,
从而增加了系统的额外负担。你在 " 中存放的数据对像越大,那系
统的性能就下降得越快。
当你不需要 " 时,尽快地释放它:当你不再需要 时,
你可以通过调用 "方法来释放它。尽量将 的
超时时间设得短一点:在 3 应用服务器中,有一个缺省的 的超时时
间。当客户在这个时间之后没有进行任何操作的话,系统会将相关的
自动从内存中释放。超时时间设得越大,系统的性能就会越低,因此最好的方
法就是尽量使得它的值保持在一个较低的水平。
方法 4: 将页面输出进行压缩
压缩是解决数据冗余的一个好的方法,特别是在网络带宽不够发达的今天。
有的浏览器支持 (789 7进行来对 "2: 文件进行压缩,这种方法可以
戏剧性地减少 "2: 文件的下载时间。因此,如果你将 或 3 页面生
成的 "2: 页面进行压缩的话,那用户就会觉得页面浏览速度会非常快。但不
幸的是,不是所有的浏览器都支持 (7 压缩,但你可以通过在你的程序中检查
客户的浏览器是否支持它。下面就是关于这种方法实现的一个代码片段:
8";$ $<
";
)* =+!< +! #
=1 % &
( ( % $(".>?
+(.&
6 ( @% AA
(!=6.(7. @% ?B#
$".?+(. < .(7.&
% *
8C3=1$(=1&
0
6 ( @% AA
(!=6.1. @% ?B#
$".?+(. <
.1.&
% *
C3=1$(=1&
0#
% $(=1&
0
0
方法 5: 使用线程池
应用服务器缺省地为每个不同的客户端请求创建一个线程进行处理,并为
它们分派 方法,当 方法调用完成后,与之相应的线程也随
之撤消。由于创建和撤消线程会耗费一定的系统资源,这种缺省模式降低了系
统的性能。但所幸的是我们可以通过创建一个线程池来改变这种状况。
另外,我们还要为这个线程池设置一个最小线程数和一个最大线程数。在
应用服务器启动时,它会创建数量等于最小线程数的一个线程池,当客户有请
求时,相应地从池从取出一个线程来进行处理,当处理完成后,再将线程重新
放入到池中。如果池中的线程不够地话,系统会自动地增加池中线程的数量,
但总量不能超过最大线程数。通过使用线程池,当客户端请求急剧增加时,系
统的负载就会呈现的平滑的上升曲线,从而提高的系统的可伸缩性。
方法 6: 选择正确的页面包含机制
在 3 中有两种方法可以用来包含另一个页面:
B、使用 指示符
<45 '%DD 4>
、使用 指示符
<E (%DD F)%DD/>
在实际中发现,如果使用第一种方法的话,可以使得系统性能更高。
方法 GE正确地确定 的生命周期
3 的一个强大的地方就是对 的支持。通过在 3 页面中使用
E 标签,可以将 直接插入到一个 3 页面中。它的使用
方法如下:
<E %.1. %.(H$H
H.
%.-(1. ,%.,1.>
</E>
其中 属性指出了这个 的生命周期。缺省的生命周期为
(。如果你没有正确地选择 的生命周期的话,它将影响系统的性能。
举例来说,如果你只想在一次请求中使用某个 ,但你却将这个
的生命周期设置成了 ,那当这次请求结束后,这个 将仍然保留
在内存中,除非 超时或用户关闭浏览器。这样会耗费一定的内存,并
剩余31页未读,继续阅读
资源评论
mengyuan10
- 粉丝: 3
- 资源: 22
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 课程设计-python爬虫-爬取日报,爬取日报文章后存储到本地,附带源代码+课程设计报告
- 软件和信息技术服务行业投资与前景预测.pptx
- 课程设计-基于SpringBoot + Mybatis+python爬虫NBA球员数据爬取可视化+源代码+文档+sql+效果图
- 软件品质管理系列二项目策划规范.doc
- 基于TensorFlow+PyQt+GUI的酒店评论情感分析,支持分析本地数据文件和网络爬取数据分析+源代码+文档说明+安装教程
- 软件定义无线电中的模拟电路测试技术.pptx
- 软件开发协议(作为技术开发合同附件).doc
- 软件开发和咨询行业技术趋势分析.pptx
- 软件测试题详解及答案.doc
- 软件漏洞生命周期管理策略.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功