您好,欢迎访问三七文档
1概述JSP(IAVASERVERPAGES)是由Sun公司在java语言上开发出来的一种动态网页制作技术,其可使您可以将网页中的动态部分和静态的HTML相分离。您可以使用平常得心应手的工具并按照平常的方式来书写HTML语句。然后,将动态部分用特殊的标记嵌入即可,这些标记常常以“<%”开始并以“%>”结束。例如,这儿有一个JSP页面:<html><head><title>jsp教程</title></head><body><I><%out.println(“helloworld”);%></I></body></html>它将输出“helloworld”。通常,您要将文件以“.jsp”为扩展名,并将它放置到任何您可以放置普通WEB页面的路径下。尽管JSP文件看起来更象是HTML文件而不是Servlet文件,但,事实上,它恰恰将转换为Servlet文件,其中的静态HTML仅仅用来输出Servlet服务方法返回的信息。如果JSPpages已经被转换为Servlet且Servlet被编译进而被装载(在第一次被Request时),当您再次Request此JSP页面时,将察觉不到一瞬的延迟。也请留意这个现象,一些WebServers允许您为它定义别名,从而,好象一个URL是指向一个HTML,但事实上它指向的是一个Servlet或JSPpages.构造一个JSPpage,除了可内嵌的规则的HTML,还有三类主要的JSP元素:Scriptingelements,Directives,和Actions.使用Scriptingelements您可以定义最终转换为Servlet的部分,Directives使您可以控制这个Servlet的整体结构,而Actions使您可以指定可重用的已有组件,另外,还可控制JSP引擎的运行。为了简化Scriptingelements,您可以在某一段上利用一些预定义的变量,如request。本教程式是以JSP1.1版本进行讲解的。其语法概括如下表,其详细使用在随后的课程中详细讲解.JSP元素语法解释JSPExpression<%=表达式%>Expression用于计算并用于输出。<jsp:expression>表达式</jsp:expression>,可使用的预定义的变量有request,response,out,session,application,config,andpageContext(在Sriptlets中也可使用)。JSPScriptlet<%代码%>插入用于服务的代码。<jsp:scriptlet>代码</jsp:scriptlet>JSPDeclaration<!%代码%>属于Servlet部分的代码但并不是服务方法。<jsp:declaration>代码</jsp:declaration>JSPpageDirective<%@pageatt=”val”%>指向Servlet引擎的路径。<jsp:directive.pageatt=val\>.以下是其合法的属性(缺省值加粗):2import=package.classcontentType=MIME-TypeisThreadSafe=true|falsesession=true|falsebuffer=sizekb|noneautoflush=true|falseextends=package.classinfo=messageerrorPage=urlisErrorPage=true|falselanguage=javaJSPincludeDirective<%@includefile=”URL”%>当JSPpage被翻译成Servlet时将被包含进去的本地系统上的文件。<jsp:directive.includefile=”URL”\>这个URL必须是相对的。当页面被请求时才用“jsp:includeaction”调入。JSP注释<%--注释--%>当JSP转换为Servlet时将被忽略。<--注释-->TheJSP:includeAction<jsp:includepage=”relativeURL”flush=”true”/>在页面被请求(Requested)时调入文件。如果您想要在页面被转化(Translated)时将文件包含进来,则,请使用上面所提到的directive来代替。警告:在一些服务器上(Servers),被包含的文件只能是HTML或JSP,一般以文件的后缀名来判定。Thejsp:useBeanAction<jsp:useBeanatt=val*/>或<jsp:useBeanatt=val*>…..</jsp:useBean>寻找或生成一个JavaBean.可能的属性是:id=namescope=page|request|session|applicationclass=package.classtype=package.classbeanName=package.classThejsp:setPropertyAction<jsp:setPropertyatt=val*/>设置bean的属性,通过明确的指定或使用request得到的参数。合法的属性:name=beanNameproperty=propertyName|*param=parameterNamevalue=val”Thejsp:getPropertyAction<jsp:getPropertyname=”propertyName”value=”val”/>检索并输出bean的属性。3Thejsp:forwardAction<jsp:forwardpage=”relativeURL”/>向前请求(request)另一个页面。Thejsp:pluginAction<jsp:pluginattribute=”value”*></jsp:plugin>生成特定的浏览器的OBJECT或EMBED标签,用来明确运行Applet所使用的JAVA插件(plugin)。JSP指令元素<JSPdirectivemso-hansi-font-family:>影响servlet类的整体结构。它常用以下形式:<%@directiveattribute=”value”%>而且,您可以将多个属性写在一个语句中:<%@directiveattribute1=value1attribute2=value2attributeN=valueN%>有两种主要的directive:page,允许您做一些类似importclasses的事,定义servlet的超类(Superclass),mso-hansi-font-family:>等;include,允许您将文件插入servlet类中(当JSP文件翻译为servlet时)。一、JSPpageDirective语法:<%@page[language=java][extends=package.class][import={package.class|.*},...][session=true|false][buffer=none|8kb|sizekb][autoFlush=true|false][isThreadSafe=true|false][info=text][errorPage=relativeURL][contentType=mimeType[;charset=characterSet]|text/html;charset=ISO-8859-1][isErrorPage=true|false]%>Pagedirectivemso-hansi-font-family:>允许您定义一些区分大小写的属性:(1)import=“package.class”或import=“package.class1,..,package.classN”。mso-hansi-font-family:>您可以定想要import的packages。例如:4<%@pageimport=java.util.*%>import属性是这几个属性中唯一一个可以在一个JSP中出现多次的。(2)contenType=“MIME=Type”或contentType=“MIME-Type;charset=Character-Set”mso-hansi-font-family:>它指定输出的MIME类型。缺省为“text/html”。例如:<%@pagecontentType=text/plain%>在scriptlet中等价于:<%response.setContentType(text/plain);%>(3)isThreadSafe=“true|false”.如果值为“true”(缺省)表示:将进行普通的servlet处理,多个请求将被一个servlet实例并行处理,在这种情况下,编程人员同步访问多个实例变量。值为“false”时表示:servlet将实现单线程模式(SingleThreadModel),不管请求是顺序提交还是并发出现,都将提供不同的分离的servlet实例。(4)session=”true|false”。如果值为“true”(缺省)表示:预定义变量session(继承HttpSession)应该绑定到一个已存在的session,否则就应该创建一个并将之绑定。值为“false”时表示:将不使用session变量,如果试图使用,将在JSP向servlet转化时出现错误。(5)buffer=“sizekb|none”。为JspWriter输出确定缓冲的大小。缺省由服务器而定,但至少要有8kb。(6)autoflush=”true|false”。如果值为“truemso-hansi-font-family:>”(缺省)表示:当缓冲满时将自动清空,值为“falsemso-hansi-font-family:>”时表示:当缓冲满时递出一个异常,这很少使用。当buffer=”none”是若用falsemso-hansi-font-family:>值是不合法的。(7)extends=”package.class”。这将为servlet产生一个超类。请特别谨慎的使用这一功能,因为,服务器也许已经定义了一个。(8)info=“message”。定义一个可以通过调用getServletInfo方法得到的串。(9)errorPage=“URL”。指定一个JSPmso-hansi-font-family:>页面来处理任何一个可抛出的但当前页面并未处理的意外错误。(10)isErrorPage=“true|false”。指定当前页面是否可以处理来自另一个页面的错误,缺省为“false”。(11)language=“java”mso-hansi-font-family:>。指出以下将使用的语言。不过,不必为这一属性费心,因为,“javamso-hansi-font-family:>”既是缺省又是唯一合法的选择。二JSPincludeDirective这种directive使您可以在JSP转换为servlet时将一个文件包含进来。语法:<jsp:includepage={relativeURL|<%=expression%>}flush=true/>5mso-hansi-font-family:;mso-font-kerning:0pt>或<jsp:includepage={relativeURL|<%=expression%>}flush=true><jsp:paramname=parameterNamevalue={parameterValue|<%=expression%>}/>+</jsp:include>URLmso-hansi-font-family:>通常相对于指向它的JSP页面,但是,普遍使用相对“URL”,您可以使用一个斜杠“/”作为URL的开始来告知系统URLmso-hansi-font-family:>相对的Webserver的主路径。被包含的文件将以规则的JS
本文标题:JSP入门教程
链接地址:https://www.777doc.com/doc-3818061 .html