仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2014|回复: 20
打印 上一主题 下一主题

[学习教程] JAVA编程:提拔JSP页面呼应速率的七年夜秘笈尽招

[复制链接]
透明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:34:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
先谈谈我对java的一些认识。我选择java,是因为他语法简单,功能强大,从web,到桌面,到嵌入式,无所不能。但当我进一步了解了java后,感叹,java原来也有许多缺点。js|速率|呼应|页面你经常被客户埋怨JSP页面呼应速率很慢吗?你想过当客户会见次数剧增时,你的WEB使用能接受日趋增添的会见量吗?本文报告了调剂JSP和servlet的一些十分有用的办法,它可以使你的servlet和JSP页面呼应更快,扩大性更强。并且在用户数增添的情形下,体系负载会出现出光滑上长的趋向。在本文中,我将经由过程一些实践例子和设置办法使得你的使用程序的功能有出人意表的提拔。

  个中,某些调优手艺是在你的编程事情中完成的。而另外一些手艺是与使用服务器的设置相干的。在本文中,我们将具体地形貌如何经由过程调剂servlet和JSP页面,来进步你的使用程序的整体功能。在浏览本文之前,假定你有基础的servlet和JSP的常识。

  办法一:在servlet的init()办法中缓存数据

  当使用服务器初始化servlet实例以后,为客户端哀求供应服务之前,它会挪用这个servlet的init()办法。在一个servlet的性命周期中,init()办法只会被挪用一次。经由过程在init()办法中缓存一些静态的数据或完成一些只必要实行一次的、耗时的操纵,便可年夜年夜地进步体系功能。

  比方,经由过程在init()办法中创建一个JDBC毗连池是一个最好例子,假定我们是用jdbc2.0的DataSource接口来获得数据库毗连,在一般的情形下,我们必要经由过程JNDI来获得详细的数据源。我们能够设想在一个详细的使用中,假如每次SQL哀求都要实行一次JNDI查询的话,那体系功能将会急剧下落。办理办法是以下代码,它经由过程缓存DataSource,使得下一次SQL挪用时仍旧能够持续使用它:
  1. publicclassControllerServletextendsHttpServlet{ privatejavax.sql.DataSourcetestDS=null; publicvoidinit(ServletConfigconfig)throwsServletException {  super.init(config);  Contextctx=null;  try  {   ctx=newInitialContext();   testDS=(javax.sql.DataSource)ctx.lookup("jdbc/testDS");  }  catch(NamingExceptionne)  {   ne.printStackTrace();  }  catch(Exceptione)  {   e.printStackTrace();  } } publicjavax.sql.DataSourcegetTestDS() {  returntestDS; } ... ...}
复制代码
  办法2:克制servlet和JSP主动重载(auto-reloading)

  Servlet/JSP供应了一个有用的手艺,即主动重载手艺,它为开辟职员供应了一个好的开辟情况,当你改动servlet和JSP页面后而不用重启使用服务器。但是,这类手艺在产物运转阶段对体系的资本是一个极年夜的消耗,由于它会给JSP引擎的类装载器(classloader)带来极年夜的包袱。因而封闭主动重载功效对体系功能的提拔是一个极年夜的匡助。
  办法3:不要滥用HttpSession

  在良多使用中,我们的程序必要坚持客户真个形态,以便页面之间能够互相接洽。但不幸的是因为HTTP具有生成无形态性,从而没法保留客户真个形态。因而一样平常的使用服务器都供应了session来保留客户的形态。在JSP使用服务器中,是经由过程HttpSession对像来完成session的功效的,但在便利的同时,它也给体系带来了不小的包袱。由于每当你取得或更新session时,体系者要对它举行费时的序列化操纵。你能够经由过程对HttpSession的以下几种处置体例来提拔体系的功能。

  假如没有需要,就应当封闭JSP页面中对HttpSession的缺省设置。假如你没有明白指定的话,每一个JSP页面城市缺省地创立一个HttpSession。假如你的JSP中不必要利用session的话,那能够经由过程以下的JSP页面唆使符来克制它:
  1. <%@pagesession="false"%>
复制代码
  不要在HttpSession中寄存年夜的数据对像:假如你在HttpSession中寄存年夜的数据对像的话,每当对它举行读写时,使用服务器都将对其举行序列化,从而增添了体系的分外包袱。你在HttpSession中寄存的数据对像越年夜,那体系的功能就下落得越快。

  当你不必要HttpSession时,尽快地开释它:当你不再必要session时,你能够经由过程挪用HttpSession.invalidate()办法来开释它。只管将session的超不时间设得短一点:在JSP使用服务器中,有一个缺省的session的超不时间。当客户在这个工夫以后没有举行任何操纵的话,体系会将相干的session主动从内存中开释。超不时间设得越年夜,体系的功能就会越低,因而最好的办法就是只管使得它的值坚持在一个较低的程度。


[1][2]下一页


进而能拉拢大多数程序员用windows产品。并且从ASP.NETAJAX可以跨平台这一点上,间接证明了我们的推断,至少证明了微软做过这方面的研究。所以如果哪一天突然听说了.net可以跨平台了,那么请不要吃惊,如果这一天真的到来,java就到了真正和.net决战的时刻。因为不到万不得以的时候微软是不会推出跨平台的.net的,如果跨平台的.net还不足以对抗java的话,那么微软还剩的手段就是开源了,呵呵。
精灵巫婆 该用户已被删除
沙发
发表于 2015-1-21 10:21:56 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
小魔女 该用户已被删除
板凳
发表于 2015-1-30 14:58:49 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
因胸联盟 该用户已被删除
地板
发表于 2015-2-6 13:32:03 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
海妖 该用户已被删除
5#
发表于 2015-2-7 18:39:35 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
分手快乐 该用户已被删除
6#
发表于 2015-2-7 20:39:23 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
金色的骷髅 该用户已被删除
7#
发表于 2015-2-10 07:15:36 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
莫相离 该用户已被删除
8#
发表于 2015-2-19 09:00:09 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
小妖女 该用户已被删除
9#
发表于 2015-2-20 01:48:40 | 只看该作者
是一种突破用户端机器环境和CPU
柔情似水 该用户已被删除
10#
发表于 2015-2-25 21:07:40 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
活着的死人 该用户已被删除
11#
发表于 2015-3-8 04:33:17 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
老尸 该用户已被删除
12#
发表于 2015-3-12 18:38:11 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
只想知道 该用户已被删除
13#
发表于 2015-3-13 10:08:40 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
不帅 该用户已被删除
14#
发表于 2015-3-20 01:31:25 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
深爱那片海 该用户已被删除
15#
发表于 2015-4-17 00:05:27 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
admin 该用户已被删除
16#
发表于 2015-4-22 03:39:34 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
变相怪杰 该用户已被删除
17#
发表于 2015-5-8 15:12:45 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
再现理想 该用户已被删除
18#
发表于 2015-6-19 22:27:28 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
谁可相欹 该用户已被删除
19#
发表于 2015-6-20 21:53:41 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
蒙在股里 该用户已被删除
20#
发表于 2015-6-22 22:11:15 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 07:47

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表