欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

J2EE 13规范(4)-JSP

程序员文章站 2022-10-31 18:14:23
jsp全称(java server page ),也称java服务器页面。看到是否立刻想到原先曾经学过的呢。 一.jsp和asp的比较: jsp(java server page)与asp(a...

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客户端代码:

	
		 helloworld 
	
	
		
	
2.后面的工作就是 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,对比着学习,也就慢慢的明白其中的道理了。