为什么jsp增大了服务器的压力
1. JSP网站打开速度为什么慢是服务器问题,还是程序问题
事实上,jsp打开往往会比asp等慢,主要是因为jsp是编译执行,可asp是解释执行 但通常情况下,这个差是相当小的,我们根本感觉不出,如果发现jsp慢的话,就是服务器或是你所用的网的关系了
2. 我用JSP语言编写了一个小心的BBS论坛,就这方面而言,它的特点是什么
跨平台,安全,免费,速度快
3. 执行JSP页面的原理是什么
执行JSP页面的原理:
在一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个Servlet。而这个引擎本身也是一个Servlet。JSP的运行过程如下所示:
JSP引擎先把该JSP文件转换成一个java源文件(Servlet),在转换时如果发现JSP文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息。
如果转换成功,JSP引擎用javac把该Java源文件编译成相应的class文件。
创建一个该Servlet(JSP页面的转换结果)的实例,该Servlet的jspInit()方法被执行,jspInit()方法在Servlet的生命周期中只被执行一次。
jspService()方法被调用来处理客户端的请求。对每一个请求,JSP引擎创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程。每个客户端请求对应一个线程。以多线程方式执行可以大大降低对系统的资源需求,提高系统的并发量及响应时间。但不过也应该注意多线程的编程限制,由于该Servlet始终驻于内存,所以响应是非常快的。
如果.jsp文件被修改了,服务器将根据设置决定是否对该文件重新编译,如果需要重新编译,则将编译结果取代内存中的Servlet,并继续上述处理过程。
虽然JSP效率很高,但在第一次调用时由于需要转换和编译而有一些轻微的延 迟。此外,在任何时候如果由于系统资源不足的原因,JSP引擎将以某种不确定的方式将Servlet从内存中移去。当这种情况发生时jspDestroy()方法首先被调用。
然后Servlet实例便被标记加入“垃圾收集”处理。可在jspInit()中进行一些初始化工作,如建立与数据库的连接,或建立网络连接,从配置文件中取一些参数等,在jspDestory()中释放相应的资源。
4. 解释JSP的作用,并列举JSP的特点
JSP是一种建立在Servlet规范功能之上的动态网页技术,是在通常的网页文件中嵌入脚本代码,用于产生动态内容,在JSP文件中嵌入的是java代码和JSP标记。
特点:
1、将内容的生成和显示进行分离使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。
2、强调可重用的组件绝大多数JSP页面依赖于可重用的,跨平台的组件来执行应用程序所要求的更为复杂的处理。
3、采用标识简化页面开发Web页面开发人员不会都是熟悉脚本语言的编程人员。
JSP的优缺点
一、缺点
1、JSP技术极大的增加了产品的复杂性。
2、java的高效率运行需要占用大量的内存和硬盘空间。一方面,java的高速运行是通过.class文件常驻内存来实现的,另一方面,还需要硬盘空间来存储一系列的.java文件和.class文件以及对应的版本文件。
3、JSP程序调试困难。
二、优点
1、JSP代码跨平台,即一次编写,处处运行。
2、JSP组件跨平台可重用,企业JavaBeans组件可以访问传统的数据库,并能以分布式系统模式工作于Solaris,Linux,UNIX和Windows平台。
3、支持多种网页格式。
4、JSP标签可扩充性。JSP技术允许开发者扩展JSP标签,定制JSP标签库,所以网页制作者充分利用与XML兼容的标签技术强大的功能,大大减少对脚本语言的依赖。
5. jsp的性能
Cache,这个是提高性能的王道
在编程上,跟其它的技术都差不多。比如合理设计,优化算法,数据缓存,其它的技术一样适用。
最大的一点不同,就是jsp在第一次被调用,或者在修改以后被调用,都会被编译一次,这样会影响这一次的速度,但是以后再调用就会直接使用编译后的 Java代码,跟Servlet一样快了。因此,应该在设计时要考虑周到,避免频繁修改。另外,可以选用性能优秀的Java虚拟机,它对执行Java字节码的性能至关重要,好的服务器式Java虚拟机可以在将Java字节码编译成本地机器码后,一直保持它,这样它的执行速度是跟C/C++/Delphi等语言编写的程序在速度上是差不多的。
其他参考:
1 实现高效Java编程规范的十一条基础规则
http://www.ninedns.com/JSP/200742218371612355.html
2 利用缓冲技术提高JSP程序的性能和稳定性
http://tech.sina.com.cn/s/2008-08-04/1604756407.shtml
3 巧用文件保存对象来提高JSP的性能
http://dev.csdn.net/article/24/24216.shtm
4 网上还有好多
6. 把所有逻辑写入JSP中有利于缓解服务器压力吗
从某种角度上来说是这样的,如果你写入JSP,程序运行的时候使用的是本地资源,如果你把逻辑写到后台,这样使用的是服务器资源,一般来说,根据需要安排资源使用,并不是所有逻辑都写在JSP就是最好的
7. 为什么说jsp和Cookies可以减少服务器和浏览器之间的负担 为什么说应用javascript和Cookies可以减少服务
上面哥们的回答已经很简单很明了了,我就不重复了。但是我要补充一下Cookies的问题,Cookies是被保存在客户端的,当用户用相同的用户名登陆的时候,会在客户端做出判断是用户已经登陆过,从而记住用户。把服务器端的Cookies验证放到客户端来执行,当然可以减轻服务器与客户端之间进行交互而进行的数据交换的压力了。
8. jsp程序,服务器会出现内存溢出/泄露,什么原因引起此现象
不懂,没人回答就把分给我吧,谢谢了
9. JSP运行原理什么
1、当用户访问一个JSP页面时,会向一个Servlet容器(Tomcat等)发出请求;
2、如果页面有所改动,则servlet容器首先要把JSP页面(假设为test.jsp)转化为Servlet代码(test.java),再将其转化为class文件(test.class文件);这种过程(编译)会耗费时间
3、JSP容器负责调用从JSP转换来的servlet,这些servlet负责提供服务相应用户请求;如果用户有多个请求,则容器会建立多个线程处理多个请求;
4、容器执行字节码文件(包括调用的servlet:formprocessor.java字节码),并将其结果返回到客户端(返回的最终方式是有servlet输出html格式的文件流)。
(9)为什么jsp增大了服务器的压力扩展阅读:
语言优点:
1、一次编写,到处运行。除了系统之外,代码不用做任何更改。
2、系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP的局限性JSP的优势是显而易见的。
3、强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
4、多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
5、支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。
10. 为何jsp的服务容易当机
你说的dos窗口,应该是tomcat,
经常有错误信息提示,可能是程序处理遇到的异常没有处理.一些比如内存溢出之类的或者数据库连接没有关闭,造成的连接资源背占满而无法访问数据库等等,这些都会使你的网站当掉.
这个不是服务器的问题,你可以找网站开发商让他们对网站程序升级,这应该属于他们的服务范围之内的工作.
单纯的优化服务器或者优化数据库可能解决不了问题.