jsp学习总结Word文档下载推荐.docx
《jsp学习总结Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《jsp学习总结Word文档下载推荐.docx(9页珍藏版)》请在冰点文库上搜索。
![jsp学习总结Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/f79762bc-4c17-4e69-a040-508a26057a71/f79762bc-4c17-4e69-a040-508a26057a711.gif)
服务端要输出到客户端的内容,不直接写到客户端,而是先写到一个输出缓冲区中.只有在下面三中情况下,才会把该缓冲区的内容输出到客户端上:
该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"
);
下面的方法也能改变HTTPHEADER属性,它的原理和1是一样的.采用该方法是利用服务器端先将数据输出到缓冲区的机制,在把缓冲区的内容发送到客户端之前,原来的不发送,改为发送该页面的内容,如果在之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用,这一点应该特别注意.如下面的例子中
(1)会输出index.html的内容,2不会输出index.html的内容,而是输出out.println("
@@@@@@@@@@@@@@@@@"
中的内容,并且在服务端会抛出:
java.lang.IllegalStateException:
Responsealreadycommitted异常,但客户端没有任何错误输出。
(1)
(2)说明:
1.方法
(1),
(2)可以使用变量表示重定向的地址;
方法(3)不能使用变量表示重定向的地址。
Stringadd="
./index.html"
;
无法重定向到index.html中去Stringadd=http:
7001/index.htmlresponse.sendRedirect(add);
可以重定向到http:
7001/index.html中去。
2.采用方法
(1),
(2)request中的变量(通过request.setAttribute()保存到request中的值)不能在新的页面中采用,采用方法(3)能.综上,我们应该采用
(1),
(2)重定向比较好.四、JSP中正确应用类:
应该把类当成JAVABEAN来用,不要在中直接使用.如下的代码
(1)经过JSP引擎转化后会变为代码
(2):
从中可看出如果把一个类在JSP当成JAVABEAN使用,JSP会根据它的作用范围把它保存到相应的内部对象中.如作用范围为request,则把它保存到request对象中.并且只在第一次调用(对象的值为null)它时进行实例化.而如果在中直接创建该类的一个对象,则每次调用JSP时,都要重新创建该对象,会影响性能.代码
(1)代码
(2).testdemotest=(.testdemo)request.getAttribute("
test"
if(test==null){try{test=(.testdemo)java.beans.Beans.instantiate(getClass().getClassLoader(),"
.testdemo"
}catch(Exception_beanException){thrownewweblogic.utils.NestedRuntimeException("
cannotinstantiate'
.testdemo'
"
_beanException);
}request.setAttribute("
test);
out.print("
"
}out.print("
test.print("
thisisusejavabean"
testdemotd=newtestdemo();
td.print("
thisisusenew"
五、JSP的调试JSP的调试比较麻烦,特别是当bean是在一个session中存在时,更加困难。
得从好几个页面开始往里面走才行。
通常是用out.println()或System.out.print()来打一大堆的信息来查问题。
如果是用jbuilder做开发,它能直接调试JSP.不过更重要的是知道错误产生的原因及解决方法。
下面对一些JSP编程常见错误进行分析。
(1).java.lang.NullPointerException异常一般是对一个为NULL值的变量进行操作引起的.如下面的操作就会抛出java.lang.NullPointerExceptionStringa=null;
a.substring(0,1);
为避免这种异常最好在对变量操作之前检查看它是否为NULL值.如:
(2).JSP是用JAVA写的,所以它是大小写敏感的,用过其他编程语言的人最容易犯这个错误。
另外在浏览器的地址栏中输入的访问JSP的地址也是区分大小写的.如http:
7001/demo/t.jsp与http:
7001/Demo/t.jsp是不一样的(3).在jsp中判断字符串要使用compareTo方法,不要用==,因为在java中String变量不是一个简单的变量而是一个类实例,不同的方法会得到不同的结果,如下所示:
Stringstr1="
ABCD"
Stringstr2="
(或Stringstr2="
AB"
+"
CD"
)if(str1==str2)out.print("
yes"
elseout.print("
no"
结果是"
。
Stringstr1,str2,str3;
str1="
str2="
str3=str2+"
if(str1==str3)out.print("
Stringstr1=newString("
Stringstr2=newString("
if(str1==str2)out.print("
if(pareTo(str2)==0)out.print("
(4)防止JSP或SERVLET中的输出被浏览器保存在缓冲区中:
浏览器在默认情况下会把浏览过的网页保存在缓冲区中,在调试时,一般不希望这样.把下面的脚本加入程序中,就可防止JSP或SERVLET中的输出被浏览器保存在缓冲区中在IE中也可通过设置实现:
把/工具/INTERNET选项/常规/设置/的检察所存页面的较新版本,设为每次访问该页时都检查.六、COOKIEHTTPCOOKIE实质是服务端与在客户端之间传送的普通HTTP头,可保存也可不保存在客户的硬盘上.如果保存,每一个文件大小不超过4K的文本文件.多个COOKIE可保存到同一个文件中.如果从编程角度来看,在JSP中COOKIE就是JAVA提供的一个类.常用的方法如下所表示,因为客户端可能不接受COOKIE,所以建议不用它,改用SESSION等其他方式。
publicclasscookie{publicStringgetDomain()//返回该COOKIE的有效域publicintgetMaxAge()//返回该COOKIE的有效期,单位为秒publicStringgetName()//返回该COOKIE的名称publicStringgetPath()//返回该COOKIE的有效路径publicbooleangetSecure()//返回该COOKIE的安全设置publicStringgetValue()//返回该COOKIE的值publicvoidsetDomain(java.lang.Stringpattern)//设置该COOKIE的有效域publicvoidsetMaxAge(intexpiry)//设置该COOKIE的有效期,单位为秒publicvoidsetPath(java.lang.Stringuri)//设置该COOKIE的有效路径publicvoidsetSecure(booleanflag)//设置该COOKIE的安全设置publicvoidsetValue(java.lang.StringnewValue)//设置该COOKIE的值}一个COOKIE包含以下五部分:
NAME/VALUE对,设置该COOKIE的名字及它保存的值COOKIE通常和服务器相关,如果将域设为JAVA.SUN.COM,那么该COOKIE就和这个域相关,只对该网址起作用,当浏览该网址时,浏览器将把该COOKIE的内容发送给服务端,COOKIE是作为HTTPHEADER的一部分被发送的,如果没有设置域,那么COOKIE就只和创建该COOKIE的服务器相关.路径用于指定服务器上可以使用该COOKIE的文件所在的路径,它只对该网址下的该路径下的应用起作用."
/"
表示服务器上所有目录都可以使用该COOKIE.COOKIE都有一个有效期,有效期默认值为-1,这表示没有保存该COOKIE,当该浏览器退出时,该COOKIE立即失效.安全选项true/false,如果设置为true,那么在服务端与在客户端之间传送该COOKIE的内容时,采用HTTPS协议.如何检查一个客户端是否支持COOKIE的方法:
用下面的方法写一个COOKIE到客户端,并确认成功try{Cookiec=newCookie("
mycookie"
"
COOKIETEST"
response.addCookie(c);
}catch(Exceptione){System.out.println(e);
}然后在一个新的JSP文件中:
用下面的方法取客户端的COOKIE到cookies中,如果cookies.length==0,说明该客户端的浏览器不支持COOKIEtry{Cookie[]cookies=request.getCookies();
if(cookies.length==0){System.out.println("
notsupportcookie"
}}catch(Exceptione){System.out.println(e);
}七、JSP和SERVLET的区别:
SUN首先发展出SERVLET,其功能比较强劲,体系设计也很先进,只是,它输出HTML语句还是采用了老的CGI方式,是一句一句输出,所以,编写和修改HTML非常不方便。
后来SUN推出了类似于ASP的JSP,把JAVA代码嵌套到HTML语句中,这样,就大大简化和方便了网页的设计和修改。
ASP,PHP,JSP都是嵌套型的SCRIPT语言。
一个分布式系统应分为三层:
表示层,业务逻辑层,数据存取层,在J2EE体系结构中,SERVLET用来写业务逻辑层是很强大的,但是对于写表示层就很不方便。
JSP则主要是为了方便写表示层而设计的。
ENTITYBEAN实现数据存取层,SESSIONBEAN实现业务逻辑层。
如果是简单的应用系统,可采用JSP+BEANS的结构进行设计,JSP中应该仅仅存放与表示层有关的东西,也就是说,只放输出HTML网页的部份。
而所有的数据计算,数据分析,数据库联结处理,统统是属于业务逻辑层,应该放在JAVABEANS中。
通过JSP调用JAVABEANS,实现两层的整合。
实际上,微软的DNA技术,简单说,就是ASP+COM/DCOM技术。
与JSP+BEANS完全类似,所有的表示层由ASP完成,所有的业务逻辑由COM/DCOM完成。
为什么要采用这些组件技术呢?
因为单纯的ASP/JSP语言是非常低效率执行的,如果出现大量用户点击,纯SCRIPT语言很快就到达了他的功能上限,而组件技术就能大幅度提高功能上限,加快执行速度。
另外一方面,纯SCRIPT语言将表示层和业务逻辑层混在一起,造成修改不方便,并且代码不能重复利用,采用组件技术就只改组件就可以了。
对于复杂的应用,应该采用ENTITYBEAN实现数据存取层,SESSIONBEAN实现业务逻辑层,用JSP来调用SESSIONBEAN,由SESSIONBEAN调用ENTITYBEAN。
即采用JSP+EJB来构建一个复杂的分布式系统。
它比JSP+BEAN具有更高的吞吐量,可靠性,安全性。
综上所述,对简单应用,可采用JSP+BAEN,对复杂的应用系统,应采用JSP+EJB,SERVLET变的无足轻重。
用JSP完全可替代它。
“信息管理与信息系统专业业务培养目标:
信息管理与信息系统专业培养具备现代管理学理论基础、计算机科学技术知识及应用能力,掌握系统思想和信息系统分析与设计方法以及信息管理等方面的知识与能力,能在国家各级管理部门、工商企业、金融机构、科研单位等部门从事信息管理以及信息系统分析、设计、实施管理和评价等方面的高级专门人才。
当时看到上面关于信管专业的培养目标,我觉得这个专业还是挺好的,所以满怀期待的等待快点开学。
现在我已经是大二学生了,学信管专业也已经有一年多了,在大一的两门基础专业课的学习中我觉得好枯燥啊,学习C语言跟JAVA,但是这个学期我们开了JSP课程设计,没上课之前听学长学姐们说这门课是教我们怎么做网站的,我就想总算可以自己做网站了,从此结束了只是学习枯燥的语言的日子了。
记得在第一节课上,陈老师就跟我们讲了“为什么学JSP?
,“JSP学什么?
,“学JSP有什么用?
还有“如何学JSP?
从老师对这些问题的讲解中我确实体会到了学习JSP的重要性和如何去学。
在课上还了解了这门课程老师要讲述的主要内容以及需要具备的相关知识。
在老师所要求的具备的基础知识中我在JAVA上是最欠缺的,之前也只是跟着老师学,自己在课下并没有下很多功夫。
在前阶段的学习中我感觉很轻松,因为老师讲到的HTML我已经在暑假自学的差不多了,所以做一个静态的页面还是没有多大问题,但是后来学到后面要用到JAVA做一些动态的网页就感觉越来越吃力了,之前学过的很多JAVA知识也有很多都已经忘了。
所以在第一次实验报告的完成中就用到了比较长的时间,最后才能勉强做到符合老师的要求。
有了第一次实验报告完成过程中的教训,我在后面赶紧复习之前学习的JAVA知识,但是毕竟过了挺久了,有些东西需要重头再学,所以大概花了一个多月的时间才将这学期JSP课程中所掌握的一些关于JAVA的东西搞清楚。
后来也就顺利的完成了后面的两次实验报告。
我想简单的谈谈我在JSP程序设计这门课中都学到了什么,JSP的全称是JavaServerPages,它是一种动态网页技术。
我们需要配置的坏境有JDK,Tomcat,还要用到Dreamweaver。
最开始我们学习了HTML这种文本标记语言,因为在暑假的时候有自学,所以学习起来感觉很轻松,用HTML可以做一些静态网站,在我第一次用HTML做出第一个网页时我真的好高兴啊,觉得好神奇啊!
后面我们学到做动态网站,其中就涉及到JSP内部对象及内部对象所对应的一些方法。
再就是JSP与数据库的联系,怎么样引用数据库。
通过以上所学到的知识我们可以基本上上做出一个比较实用的小网站,比如一个班级网站,在上面可以上传下载一些学习资料,以及存储班上同学的一些基本信息,给班上同学提供一个交流平台等等。
这也是我在接下来的程序设计中所想完成的任务。
学习反思从这一年多的学习中,我觉得自己在专业课的学习上还存在很多不足,比如之前我提到的我觉得学习基础语言很枯燥,其实我并没有把它们学好,只是跟着老师按部就班,在学习JSP程序设计这门课上,我基本上就是老师上课讲了我就听,下课并没有去巩固老师所讲的内容,到做实验报告的时候就要恶补老师讲过的内容了。
记得老师在第一节课的时候就说我们这门课注重项目实战,也就是说要多上机操作,可是我并没有按照老师的要求做。
除了没有经常实战以外我还存在的问题就是没有扩展自己的知识面,平时看的专业书太少了,对于自己的方向还不是很明确。
在以后的学习我该如何学呢?
从这一次JSP程序设计课程的学习中我总结了以后学习的方法。
首先要把基础打牢,不要只是注重技术开发,对于一些基本概念也要掌握;
其次要多一些专业方面的书,多了解我们专业动向;
再者就是要多上机实践,学到什么知识点要赶紧把它应用到实践当中;
最后就是要加强自己团队协作的能力,争取在以后的学习中能够跟同学通过一些项目实战提高自己团队协作能力。
以上就是我通过这次JSP程序设计课程学习所得到的一些心得体会,希望能对我以后的学习有所启发。
平时在做练习的时候书上的例题和习题很重要,只要把书上的例子吃透,课后的习题都会做,这样就能达到掌握知识的目的,最后在期末复习的过程中要不时地复习前面的知识,这样才能熟练掌握所学的知识。
在勤思考方面,就是在平时的编程演练中遇到困难的时候不要立刻急着去问身边的同学或是老师,自己应当对照课本或是相关的学习资料慢慢进行修改,只有在自己确实已经尽力但仍然不知如何操作的情况下才可以去询问别人,只有这样才可以加深自己的影响。
还记得自己当初最开始时学习java的情景。
那时自己除了知道什么是继承,封装,多态,抽象类,接口这些外,其他的就什么都部知道了。
后来自己在慢慢摸索的过程中才逐渐积累了对这门学科的知识。
接下来很快就接触到了JSP。
JSP并不需要我在Java程序里写HTML代码,而是变成了在HTML中写Java程序。
初学时,所有的数据库连接,数据库访问,数据显示,业务代码和HTML标记等都写在JSP代码中,感觉JSP真是无所不能。
在做一些小应用时,开发速度也非常的快。
而当遇到了比较复杂的业务逻辑后,JSP开发就像是一个恶梦,每天大量的工作就是调试页面,当其它页面需要类似的功能时,进行代码拷贝来进行代码的复用,后来才知道这就是典型的Model1模型。
当把JSP与Servlet相结合后,一切都发生了改变。
JSP仅用于数据展示,而Servlet用于进行业务调用和页面流程控制,这就是所谓的Model2模型。
原来JSP并不是Servlet的替代品,JSP更需要与Servlet进行合作。
再明白了Servlet与的重要后,才回过头开始去学习Servlet,包括Servlet的生命周期,Servlet的重要接口及方法,自定义标签等。
我相信,只要有努力就一定能学好编程。
现在我已经是大三学生了,大一大二学习C语言跟JAVA,但是这个学期我们开了JSP课程设计,没上课之前听学长学姐们说这门课是教我们怎么做网站的。
在JAVA上是最欠缺的,之前也只是跟着老师学,自己在课下并没有下很多功夫。
在前阶段的学习中我感觉很轻松,因为老师讲到的HTML我已经在暑假自学的差不多了,所以做一个静态的页面还是没有多大问题,但是后来学到后面要用到JAVA做一些动态的网页就感觉越来越吃力了,之前学过的很多JAVA知识也有很多都已经忘了。
所以开始完成老师的任务用到了比较长的时间,最后才能勉强做到符合老师的要求。
在知道自己的不足后,我在后面赶紧复习之前学习的JAVA知识,但是毕竟过了挺久了,有些东西需要重头再学,所以大概花了一个星期多时间才将这学期JSP课程中所掌握的一些关于JAVA的东西搞清楚。
后来也就基本能顺利的完成了后面的一些任务。
最后我想总结一下学习方向的建议,JAVA基础知识是学习任何JAVA扩展体系知识的前提,所以在学习javaweb的过程中,一定得抽时间学习JAVA基础,由于编程有一些专用的英语术语,因此学好一些必要与之相关的英语对我们今后更好地学习这门学科是很有帮助的,学习编程,首先应该把基础打牢固。
看过“jsp学习总结的人还看了:
1.JSP学习计划范文2.大二学期学习总结范文3.学校每周工作总结范文4篇4.大学生毕业自我总结范文5.计算机开题报告范文
(2)