- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
一、JSP工作原理
在一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个
servlet。而这个引擎本身也是一个servlet,在JSWDK或WEBLOGIC中,它
就是JspServlet。JSP引擎先把该JSP文件转换成一个Java源文件,在转
换时如果发现jsp文件有任何语法错误,转换过程将中断,并向服务端和客
户端输出出错信息;如果转换成功,JSP引擎用javac把该Java源文件编
译成相应的class文件。然后创建一个该SERVLET的实例,该SERVLET的
jspInit()方法被执行,jspInit()方法在servlet的生命周期中只被执行一
次。然后jspService()方法被调用来处理客户端的请求。对每一个请求,JSP
引擎创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文
件,则JSP引擎会创建多个线程。每个客户端请求对应一个线程。以多线程
方式执行可大大降低对系统的资源需求,提高系统的并发量及响应时间.但应
该注意多线程的编程限制,由于该servlet始终驻于内存,所以响应是非常
快的。如果.jsp文件被修改了,服务器将根据设置决定是否对该文件重新
编译,如果需要重新编译,则将编译结果取代内存中的servlet,并继续上
述处理过程。虽然JSP效率很高,但在第一次调用时由于需要转换和编译
行一些初始化工作,如建立与数据库的连接,或建立网络连接,从配置文件中
取一些参数等,在jspDestory()中释放相应的资
二、服务端的输出缓冲区
缺省情况下:服务端要输出到客户端的内容,不直接写到客户端,而是先写到一个输出缓冲区中.只有在
下面三中情况下,才会把该缓冲区的内容输出到客户端上:
三、服务端输出重定向
有以下3种方法可以做到输出重定向:
四、、JSP中正确应用类:
应该把类当成JAVABEAN来用,不要在%%中直接使用.如下的代码(1)经过JSP引擎转化后会变
为代码(2):
如作用范围为request,则把它保存到request对象中.并且只在第一次调用(对象的值为null)它时进行实例
化.而如果在%%中直接创建该类的一个对象,则每次调用JSP时,都要重新创建该对象,会影响性能.
五、JSP的调试
JSP的调试比较麻烦,特别是当bean是在一个session中存在时,更加。得从好几个页面开始往里
面走才行。通常是用out.println()或System.out.print()来打一大堆的信息来查问题。如果是用jbuilder做
开发,它能直接调试JSP.不过更重要的是知道错误产生的及解决方法。下面对一些JSP编程常见错
误进行分析。
文档评论(0)