jsp学习总结(共11页)7000字.docx
- 文档编号:11043421
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:17
- 大小:15.63KB
jsp学习总结(共11页)7000字.docx
《jsp学习总结(共11页)7000字.docx》由会员分享,可在线阅读,更多相关《jsp学习总结(共11页)7000字.docx(17页珍藏版)》请在冰点文库上搜索。
jsp学习总结
学习总结篇1
一、工作原理
在一个文件第一次被请求时,引擎把该文件转换成为一个。
而这个引擎本身也是一个,在或中,它就是。
引擎先把该文件转换成一个源文件,在转换时如果发现文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息;如果转换成功,引擎用把该源文件编译成相应的文件。
然后创建一个该的实例,该的()方法被执行,()方法在的生命周期中只被执行一次。
然后()方法被调用来处理客户端的请求。
对每一个请求,引擎创建一个新的线程来处理该请求。
如果有多个客户端同时请求该文件,则引擎会创建多个线程。
每个客户端请求对应一个线程。
以多线程方式执行可大大降低对系统的资源需求,提高系统的并发量及响应时间.但应该注意多线程的编程限制,由于该始终驻于内存,所以响应是非常快的。
如果.文件被修改了,服务器将根据设置决定是否对该文件重新编译,如果需要重新编译,则将编译结果取代内存中的,并继续上述处理过程。
虽然效率很高,但在第一次调用时由于需要转换和编译而有一些轻微的延迟。
此外,如果在任何时候如果由于系统资源不足的原因,引擎将以某种不确定的方式将从内存中移去。
当这种情况发生时()方法首先被调用,然后实例便被标记加入&;垃圾收集&;处理。
()及()格式如下:
可在()中进行一些初始化工作,如建立与数据库的连接,或建立网络连接,从配置文件中取一些参数等,在()中释放相应的资源。
<%!
()
{
..(&;&;);
}
%>
<%!
()
{
..(&;&;);
}
%>
二、服务端的输出缓冲区
缺省情况下:
服务端要输出到客户端的内容,不直接写到客户端,而是先写到一个输出缓冲区中.只有在下面三中情况下,才会把该缓冲区的内容输出到客户端上:
该网页已完成信息的输出
输出缓冲区已满
中调用了.()或.r()
输出缓冲区的大小可以用:
<%@=&;&;|&;&;%>或.()设置,如下:
设置输出缓冲区的大小为1KB。
<%@=&;1kb&;%>或.
(1);
设置输出缓冲区的大小为0,即不缓冲。
<%@=&;&;%>或.(0);
用.()或.()可取的输出缓冲区的大小,单位为字节.用.d()可检查看服务端是否已将数据输出到客户端.如果返回值是则已将数据输出到客户端,是则还没有.
三、服务端输出重定向
有以下3种方法可以做到输出重定向:
.T(&;&;)该方法通过修改协议的部分,对浏览器下达重定向指令的,使浏览器显示重定向网页的内容..ct(&;:
t:
XXXX年.&;);
下面的方法也能改变属性,它的原理和1是一样的.
<%
.(.);
=&;.&;;
.(&;&;,);
%>
采用<:
>该方法是利用服务器端先将数据输出到缓冲区的机制,在把缓冲区的内容发送到客户端之前,原来的不发送,改为发送该页面的内容,如果在<:
>之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用,这一点应该特别注意.如下面的例子中
(1)会输出.的内容,2不会输出.的内容,而是输出.(&;@@@@@@@@@@@@@@@@@&;);中的内容,并且在服务端会抛出:
..n:
异常,但客户端没有任何错误输出。
(1)
<%@=&;1kb&;%>
<%
=0;
(i=0;i<10;i++)
{
.(&;@@@@@@@@@@@@@@@@@&;);
}
%>
<:
e=&;..&;/>
(2)
<%@=&;1kb&;%>
<%
=0;
(i=0;i<600;i++)
{
.(&;@@@@@@@@@@@@@@@@@&;);
}
%>
说明:
1.方法
(1),
(2)可以使用变量表示重定向的地址;方法(3)不能使用变量表示重定向的地址。
=&;..&;;
<:
e=>
无法重定向到.中去
=:
t:
XXXX年.
.ct();
可以重定向到:
t:
XXXX年.中去。
2.采用方法
(1),
(2)中的变量(通过.te()保存到中的值)不能在新的页面中采用,采用方法(3)能.综上,我们应该采用
(1),
(2)重定向比较好.
四、中正确应用类:
应该把类当成来用,不要在<%%>中直接使用.如下的代码
(1)经过引擎转化后会变为代码
(2):
从中可看出如果把一个类在当成使用,会根据它的作用范围把它保存到相应的内部对象中.
如作用范围为,则把它保存到对象中.并且只在第一次调用(对象的值为)它时进行实例化.而如果在<%%>中直接创建该类的一个对象,则每次调用时,都要重新创建该对象,会影响性能.
代码
(1)
<:
=&;&;=&;&;=&;..&;>
<:
>
<%
.(&;&;);
=o();
td.(&;ew&;);
%>
代码
(2)
..st=(..).te(&;&;);
if(==)
{
{
=(..)...e(().(),&;..&;);
}
()
{
..on(&;'..'&;,);
}
.te(&;&;,);
.(&;&;);
}
.(&;&;);
.(&;&;);
=o();
td.(&;ew&;);
五、的调试
的调试比较麻烦,特别是当是在一个中存在时,更加困难。
得从好几个页面开始往里面走才行。
通常是用.()或..()来打一大堆的信息来查问题。
如果是用做开发,它能直接调试.不过更重要的是知道错误产生的原因及解决方法。
下面对一些编程常见错误进行分析。
(1)...异常
一般是对一个为值的变量进行操作引起的.如下面的操作就会抛出
..
=;
a.(0,1);
为避免这种异常最好在对变量操作之前检查看它是否为值.如:
<%=.te(&;&;)
(ss)
{
}
{
}
%>
(2).是用写的,所以它是大小写敏感的,用过其他编程语言的人最容易犯这个错误。
另外在浏览器的地址栏中输入的访问的地址也是区分大小写的.如:
t:
XXXX年.与:
t:
XXXX年.是不一样的
(3).在中判断字符串要使用方法,不要用==,因为在中变量不是一个简单的变量而是一个类实例,不同的方法会得到不同的结果,如下所示:
1=&;&;;
2=&;&;;(或2=&;AB&;+&;CD&;;)
if(1==2)
.(&;&;);
.(&;no&;);
结果是&;&;。
1,2,3;
1=&;&;;
2=&;AB&;;
3=2+&;CD&;;
if(1==3)
.(&;&;);
.(&;no&;);
结果是&;no&;。
1=(&;&;);
2=(&;&;);
if(1==2)
.(&;&;);
.(&;no&;);
结果是&;no&;。
1=(&;&;);
2=(&;&;);
if(1.
(2)==0)
.(&;&;);
.(&;no&;);
结果是&;&;。
(4)防止或中的输出被浏览器保存在缓冲区中:
浏览器在默认情况下会把浏览过的网页保存在缓冲区中,在调试时,一般不希望这样.把下面的脚本加入程序中,就可防止或中的输出被浏览器保存在缓冲区中
<%
.(&;-&;,&;no-&;);1.1
.(&;&;,&;no-&;);1.0
.(&;&;,0);
%>
在IE中也可通过设置实现:
把/工具选项/常规/设置/的检察所存页面的较新版本,设为每次访问该页时都检查.
六、
实质是服务端与在客户端之间传送的普通头,可保存也可不保存在客户的硬盘上.如果保存,每一个文件大小不超过4K的文本文件.多个可保存到同一个文件中.如果从编程角度来看,在中就是提供的一个类.常用的方法如下所表示,因为客户端可能不接受,所以建议不用它,改用等其他方式。
{
n()//返回该的有效域
()//返回该的有效期,单位为秒
()//返回该的名称
()//返回该的有效路径
re()//返回该的安全设置
()//返回该的值
(..)//设置该的有效域
()//设置该的有效期,单位为秒
(..)//设置该的有效路径
(g)//设置该的安全设置
(..)//设置该的值
}
一个包含以下五部分:
对,设置该的名字及它保存的值
通常和服务器相关,如果将域设为..,那么该就和这个域相关,只对该网址起作用,当浏览该网址时,浏览器将把该的内容发送给服务端,是作为的一部分被发送的,如果没有设置域,那么就只和创建该的服务器相关.
路径用于指定服务器上可以使用该的文件所在的路径,它只对该网址下的该路径下的应用起作用.&;/&;表示服务器上所有目录都可以使用该.
都有一个有效期,有效期默认值为-1,这表示没有保存该,当该浏览器退出时,该立即失效.
安全选项,如果设置为,那么在服务端与在客户端之间传送该的内容时,采用协议.
如何检查一个客户端是否支持的方法:
用下面的方法写一个到客户端,并确认成功
{
=(&;&;,&;&;);
.(c);
}
()
{
..(e);
}
然后在一个新的文件中:
用下面的方法取客户端的到中,如果.==0,说明该客户端的浏览器不支持
{
=.();
if(.==0)
{
..(&;&;);
}
}
()
{
..(e);
}
七、和的区别:
首先发展出,其功能比较强劲,体系设计也很先进,只是,它输出语句还是采用了老的方式,是一句一句输出,所以,编写和修改非常不方便。
后来推出了类似于的,把代码嵌套到语句中,这样,就大大简化和方便了网页的设计和修改。
,,都是嵌套型的语言。
一个分布式系统应分为三层:
表示层,业务逻辑层,数据存取层,在J2EE体系结构中,用来写业务逻辑层是很强大的,但是对于写表示层就很不方便。
则主要是为了方便写表示层而设计的。
实现数据存取层,N实现业务逻辑层。
如果是简单的应用系统,可采用+的结构进行设计,中应该仅仅存放与表示层有关的东西,也就是说,只放输出网页的部份。
而所有的数据计算,数据分析,数据库联结处理,统统是属于业务逻辑层,应该放在中。
通过调用,实现两层的整合。
实际上,微软的技术,简单说,就是+技术。
与+完全类似,所有的表示层由完成,所有的业务逻辑由完成。
为什么要采用这些组件技术呢?
因为单纯的语言是非常低效率执行的,如果出现大量用户点击,纯语言很快就到达了他的功能上限,而组件技术就能大幅度提高功能上限,加快执行速度。
另外一方面,纯语言将表示层和业务逻辑层混在一起,造成修改不方便,并且代码不能重复利用,采用组件技术就只改组件就可以了。
对于复杂的应用,应该采用实现数据存取层,N实现业务逻辑层,用来调用N,由N调用。
即采用+来构建一个复杂的分布式系统。
它比+具有更高的吞吐量,可靠性,安全性。
综上所述,对简单应用,可采用+,对复杂的应用系统,应采用+,变的无足轻重。
用完全可替代它。
学习总结篇2
在去年暑假得知自己被录取到了武汉科技学院经济管理学院信息管理与信息系统专业的那天起我就与信管这个专业结下不解之缘。
但是当时我并不知道信管这个专业是干嘛的,也是第一次听到这个专业,得知自己的专业被调剂了心里还是感觉挺失落的,后来就上网去查关于这个专业的一些介绍。
&;信息管理与信息系统专业业务培养目标:
信息管理与信息系统专业培养具备现代管理学理论基础、计算机科学技术知识及应用能力,掌握系统思想和信息系统分析与设计方法以及信息管理等方面的知识与能力,能在国家各级管理部门、工商企业、金融机构、科研单位等部门从事信息管理以及信息系统分析、设计、实施管理和评价等方面的高级专门人才。
&;
当时看到上面关于信管专业的培养目标,我觉得这个专业还是挺好的,所以满怀期待的等待快点开学。
现在我已经是大二学生了,学信管专业也已经有一年多了,在大一的两门基础专业课的学习中我觉得好枯燥啊,学习C语言跟,但是这个学期我们开了课程设计,没上课之前听学长学姐们说这门课是教我们怎么做网站的,我就想总算可以自己做网站了,从此结束了只是学习枯燥的语言的日子了。
记得在第一节课上,陈老师就跟我们讲了&;为什么学?
&;,&;学什么?
&;,&;学有什么用?
&;还有&;如何学?
&;从老师对这些问题的讲解中我确实体会到了学习的重要性和如何去学。
在课上还了解了这门课程老师要讲述的主要内容以及需要具备的相关知识。
在老师所要求的具备的基础知识中我
在上是最欠缺的,之前也只是跟着老师学,自己在课下并没有下很多功夫。
在前阶段的学习中我感觉很轻松,因为老师讲到的我已经在暑假自学的差不多了,所以做一个静态的页面还是没有多大问题,但是后来学到后面要用到做一些动态的网页就感觉越来越吃力了,之前学过的很多知识也有很多都已经忘了。
所以在第一次实验报告的完成中就用到了比较长的时间,最后才能勉强做到符合老师的要求。
有了第一次实验报告完成过程中的教训,我在后面赶紧复习之前学习的知识,但是毕竟过了挺久了,有些东西需要重头再学,所以大概花了一个多月的时间才将这学期课程中所掌握的一些关于的东西搞清楚。
后来也就顺利的完成了后面的两次实验报告。
我想简单的谈谈我在程序设计这门课中都学到了什么,的全称是,它是一种动态网页技术。
我们需要配置的坏境有,,还要用到r。
最开始我们学习了这种文本标记语言,因为在暑假的时候有自学,所以学习起来感觉很轻松,用可以做一些静态网站,在我第一次用做出第一个网页时我真的好高兴啊,觉得好神奇啊!
后面我们学到做动态网站,其中就涉及到内部对象及内部对象所对应的一些方法。
再就是与数据库的联系,怎么样引用数据库。
通过以上所学到的知识我们可以基本上上做出一个比较实用的小网站,比如一个班级网站,在上面可以上传下载一些学习资料,以及存储班上同学的一些基本信息,给班上同学提供一个交流平台等等。
这也是我在接下来的程序设计中所想完成的任务。
学习反思从这一年多的学习中,我觉得自己在专业课的学习上还存在很多不足,比如之前我提到的我觉得学习基础语言很枯燥,其实我并没有把它们学好,只是跟着老师按部就班,在学习程序设计这门课上,我基本上就是老师上课讲了我就听,下课并没有去巩固老师所讲的内容,到做实验报告的时候就要恶补老师讲过的内容了。
记得老师在第一节课的时候就说我们这门课注重项目实战,也就是说要多上机操作,可是我并没有按照老师的要求做。
除了没有经常实战以外我还存在的问题就是没有扩展自己的知识面,平时看的专业书太少了,对于自己的方向还不是很明确。
在以后的学习我该如何学呢?
从这一次程序设计课程的学习中我总结了以后学习的方法。
首先要把基础打牢,不要只是注重技术开发,对于一些基本概念也要掌握;其次要多一些专业方面的书,多了解我们专业动向;再者就是要多上机实践,学到什么知识点要赶紧把它应用到实践当中;最后就是要加强自己团队协作的能力,争取在以后的学习中能够跟同学通过一些项目实战提高自己团队协作能力。
以上就是我通过这次程序设计课程学习所得到的一些心得体会,希望能对我以后的学习有所启发。
学习总结篇3
学习编程最重要的就是勤练习,勤思考。
平时在做练习的时候书上的例题和习题很重要,只要把书上的例子吃透,课后的习题都会做,这样就能达到掌握知识的目的,最后在期末复习的过程中要不时地复习前面的知识,这样才能熟练掌握所学的知识。
在勤思考方面,就是在平时的编程演练中遇到困难的时候不要立刻急着去问身边的同学或是老师,自己应当对照课本或是相关的学习资料慢慢进行修改,只有在自己确实已经尽力但仍然不知如何操作的情况下才可以去询问别人,只有这样才可以加深自己的影响。
还记得自己当初最开始时学习的情景。
那时自己除了知道什么是继承,封装,多态,抽象类,接口这些外,其他的就什么都部知道了。
后来自己在慢慢摸索的过程中才逐渐积累了对这门学科的知识。
接下来很快就接触到了。
并不需要我在程序里写代码,而是变成了在中写程序。
初学时,所有的数据库连接,数据库访问,数据显示,业务代码和标记等都写在代码中,感觉真是无所不能。
在做一些小应用时,开发速度也非常的快。
而当遇到了比较复杂的业务逻辑后,开发就像是一个恶梦,每天大量的工作就是调试页面,当其它页面需要类似的功能时,进行代码拷贝来进行代码的复用,后来才知道这就是典型的1模型。
当把与相结合后,一切都发生了改变。
仅用于数据展示,而用于进行业务调用和页面流程控制,这就是所谓的2模型。
原来并不是的替代品,更需要与进行合作。
再明白了与的重要后,才回过头开始去学习,包括的生命周期,的重要接口及方法,自定义标签等。
我相信,只要有努力就一定能学好编程。
现在我已经是大三学生了,大一大二学习C语言跟,但是这个学期我们开了课程设计,没上课之前听学长学姐们说这门课是教我们怎么做网站的。
在上是最欠缺的,之前也只是跟着老师学,自己在课下并没有下很多功夫。
在前阶段的学习中我感觉很轻松,因为老师讲到的我已经在暑假自学的差不多了,所以做一个静态的页面还是没有多大问题,但是后来学到后面要用到做一些动态的网页就感觉越来越吃力了,之前学过的很多知识也有很多都已经忘了。
所以开始完成老师的任务用到了比较长的时间,最后才能勉强做到符合老师的要求。
在知道自己的不足后,我在后面赶紧复习之前学习的知识,但是毕竟过了挺久了,有些东西需要重头再学,所以大概花了一个星期多时间才将这学期课程中所掌握的一些关于的东西搞清楚。
后来也就基本能顺利的完成了后面的一些任务。
最后我想总结一下学习方向的建议,基础知识是学习任何扩展体系知识的前提,所以在学习的过程中,一定得抽时间学习基础,由于编程有一些专用的英语术语,因此学好一些必要与之相关的英语对我们今后更好地学习这门学科是很有帮助的,学习编程,首先应该把基础打牢固。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- jsp 学习 总结 11 7000