J2EE 13规范(4)-JSP
jsp全称(java server page ),也称java服务器页面。看到是否立刻想到原先曾经学过的呢。
一.jsp和asp的比较:
jsp(java server page)与asp(active server page)两者都是常用的动态网页技术,也都是可以嵌入html中的程序,但两者是有着本质的不同,主要从以下几个方面对其进行比较:
1.web服务器的支持:大多数通用的 web服务器如:apache、netscape和microsoft iis都支持jsp页面,只有微软本身的microsoft iis和personal web server可以支持asp。
2.平台的支持:jsp具有平*立性,只要是一般的java程序可以运行的平台,都支持jsp程序。windows平台可以很好的支持asp,但asp对于基于win32逐渐模型的依赖,使得它难于移植到其它平台上。
3.脚本语言:jsp可以使用java语言或javascript作为脚本语言,而asp使用vbscript或jscript作为脚本语言。
4.安全性:jsp使用java安全模型,而asp使用windows nt的安全结构。
其实随着我们对jsp的深入学习,才发现,jsp和servlet有这密切的联系。jsp与servlet一样,是在服务器端执行的。通常返回给客户端的就是一个html文本,因此客户端只要有就能浏览。。jsp技术使用java编程语言编写类xml的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。jsp将网页逻辑与的显示分离,支持可重用的基于的设计,使基于web的应用程序的开发变得迅速和容易。 jsp(javaserver pages)是一种动态页面技术,它的主要目的是将表示逻辑从servlet中分离出来。
二.jsp和servlet的区别:
1. servlet中没有内置对象,原来jsp中的内置对象都是必须通过httpservletrequest对象,或由 httpservletresponse对象生成。
2. 对于静态的html标签,servlet都必须使用页面输出流诼行输出。
3. jsp最终还是编译成servlet,所以jsp比servlet慢。jsp负责前台页面显示,servlet负责业务控制。
总之,jsp是servlet的一种简化,使用jsp只需要完成程序员需要输出到客户端的内容,至于jsp中的 java脚本如何镶嵌到一个类中,由jsp容器完成。而servlet则是个完整的java类,这个类的service 方法用于生成对客户端的响应。
三.简单实例
1.html客户端代码:
helloworld2.后面的工作就是 jsp自己工作了,在tomcat的work文件夹中,会自动生成以下java和响应的class文件代码:
package org.apache.jsp; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.jsp.*; public final class helloworld_aaa extends org.apache.jasper.runtime.httpjspbase implements org.apache.jasper.runtime.jspsourcedependent { private static java.util.list _jspx_dependants; public object getdependants() { return _jspx_dependants; } public void _jspservice(httpservletrequest request, httpservletresponse response) throws java.io.ioexception, servletexception { jspfactory _jspxfactory = null; pagecontext pagecontext = null; httpsession session = null; servletcontext application = null; servletconfig config = null; jspwriter out = null; object page = this; jspwriter _jspx_out = null; pagecontext _jspx_page_context = null; try { _jspxfactory = jspfactory.getdefaultfactory(); response.setcontenttype("text/html"); pagecontext = _jspxfactory.getpagecontext(this, request, response, null, true, 8192, true); _jspx_page_context = pagecontext; application = pagecontext.getservletcontext(); config = pagecontext.getservletconfig(); session = pagecontext.getsession(); out = pagecontext.getout(); _jspx_out = out; out.write("\r\n"); out.write("\t\r\n"); out.write("\t\thelloworld\r\n"); out.write("\t\r\n"); out.write("\t\r\n"); out.write("\t\t"); out.println("helloworld"); out.write("\r\n"); out.write("\t\r\n"); out.write(""); } catch (throwable t) { if (!(t instanceof skippageexception)){ out = _jspx_out; if (out != null && out.getbuffersize() != 0) out.clearbuffer(); if (_jspx_page_context != null) _jspx_page_context.handlepageexception(t); } } finally { if (_jspxfactory != null) _jspxfactory.releasepagecontext(_jspx_page_context); } } }jsp和asp以及servlet,对比着学习,也就慢慢的明白其中的道理了。
上一篇: 天津最火网红小吃TOP10 阎师傅熟梨糕清爽可口小宝栗子上榜
下一篇: C++的杂项