文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | firefox | WPS | 杀毒软件 | Picasa
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形图像 办公软件 媒体动画 精文荟萃 常用软件 网页编程 技术开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程JSPJSP学习经验总结
精品推荐
特别推荐
·新手入门:学习JSP的经典的入门学习资料
·由浅入深学习动态网页制作PHP的编程与应用
·输入汉字自动转为拼音(jsp实现方式)
·经验分享 JSP程序员完全蜕变手册
·JSP实战:JBuilder2005中创建数据库表
·新手入门:JSP基本语法与简单表单处理
·使用技巧:在JSP页面中的应用JavaBean
·实例:JSP中把动态页面转换为静态页面
·使JSP/Servlet应用程序优化的八种方法
·提升JSP页面响应速度的七大秘籍绝招
·jsp中文问题解决方案(完整版)
·jsp的八个隐含对象
·用jsp实现SQLServe数据库的备份和恢复
·深入浅析JSP安全编程实例
·jsp防盗链
·js技巧收集(200多个)
·JSP应用语法详解大全 (3)
·实例讲解:全程追踪入侵JSP网站服务器
·Apache服务器之JSP概述篇
·新手入门经典:Jsp环境配置
热点TOP10
·js技巧收集(200多个)
·jspSmartUpload上传下载全攻略
·jspSmartUpload上传组件
·Jsp开发环境配置全过程
·初学入门:详细学习掌握JSP的语法知识
·新手入门:学习JSP的经典的入门学习资料
·JSP学习经验总结
·从入门到精通 JSP全系列教程
·基于JSP实现数据库图片的存储和显示
·在一个jsp页面实现二级下拉框联动
·JSP开发工具的选择
·在jsp中用bean和servlet联合实现用户注册、登录
·用JSP+JavaScript打造二级级联下拉菜单
·JSP内建对象
·jsp在线考试系统-jsp文件
·安装和配置BEA WorkShop JSP Editor
·JSP数据库基础知识 语法详解
·不用迭代算法而快速实现的jsp树结构
·目前最好的JSP分页技术
·JSP的九个隐含对象

JSP学习经验总结

日期:2008年2月1日 作者: 查看:[大字体 中字体 小字体]


一、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效率很高,但在第一次调用时由于需要转换和编译而有一些轻微的延迟。 此外,如果在任何时候如果由于系统资源不足的原因,JSP引擎将以某种不确定的方式将servlet从内存中移去。当这种情况发生时jspDestroy()方法首先被调用, 然后servlet实例便被标记加入"垃圾收集"处理。 jspInit()及jspDestory()格式如下:可在jspInit()中进行一些初始化工作,如建立与数据库的连接,或建立网络连接,从配置文件中取一些参数等,在jspDestory()中释放相应的资源。

<%!
public void jspInit()
{
System.out.println("jspinit");
}

%>

<%!
public void jspDestory()
{
System.out.println("jspDestory");
}
%>

二、服务端的输出缓冲区

缺省情况下:服务端要输出到客户端的内容,不直接写到客户端,而是先写到一个输出缓冲区中.只有在下面三中情况下,才会把该缓冲区的内容输出到客户端上:


该JSP网页已完成信息的输出
输出缓冲区已满
JSP中调用了out.flush()或response.flushbuffer()
输出缓冲区的大小可以用:或response.setBufferSize()设置,如下:
设置输出缓冲区的大小为1KB。或response.setBufferSize(1);
设置输出缓冲区的大小为0,即不缓冲。或response.setBufferSize(0);
用response.getBufferSize()或out.getBufferSize()可取的输出缓冲区的大小,单位为字节. 用response.isCommitted()可检查看服务端是否已将数据输出到客户端. 如果返回值是TRUE则已将数据输出到客户端,是FALSE则还没有.

三、服务端输出重定向

有以下3种方法可以做到输出重定向:

RESPONSE.SETREDERECT("URL") 该方法通过修改HTTP协议的HEADER部分,对浏览器下达重定向指令的,使浏览器显示重定向网页的内容. response.sendRedirect("http://localhost:7001/index.Html");
下面的方法也能改变HTTP HEADER属性,它的原理和 1 是一样的.
<%
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
String newLocn="/index.html";
response.setHeader("Location",newLocn);
% >
采用<JSP:FORWord> 该方法是利用服务器端先将数据输出到缓冲区的机制,在把缓冲区的内容发送到客户端之前,原来的不发送,改为发送该页面的内容,如果在<JSP:FORWORD>之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用,这一点应该特别注意. 如下面的例子中(1)会输出index.html的内容,2 不会输出index.html的内容,而是输出out.println("@@@@@@@@@@@@@@@@@"); 中的内容,并且在服务端会抛出:java.lang.IllegalStateException: Response already committed 异常,但客户端没有任何错误输出。
(1)

[1] [2] [3] [4] 下一页 




上一篇:目前最好的JSP分页技术

下一篇:彻底搞定JSP在线人数

JSP学习经验总结 相关文章:
·Vista系统使用技巧总结
·男士十种领带打结图解
·某高手总结的电脑技巧
·CISCO路由器配置小结
·网管工作总结--我的网管生活经历
·CPU型号大全总结
·制作漂亮的Word组织结构图
·ASP.NET购物车的实现及结算处理
·剑侠情缘外传:月影传说 各种结局
·总结:PowerPoint技巧大集合
JSP学习经验总结 相关软件:
·终结者3:机器战争
·QQ密码侦探终结者V2.1
·Apache 目录结构内幕
·网吧终结之pubwin密码破解
·《魔鬼终结者》模拟器 枪战类街机
·毕业生实习总结范文
·Microsoft Windows XP 技巧小结
·密码终结者V2.1.0.265
·大富翁七简繁体中文版 全人物全结局完全存档
·2005年考研政治强化班(总结与总论)笔记

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn