|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
再举这样一个例子:如果你想对一个数字取绝对值,你会怎么做呢?java的做法是intc=Math.abs(-166);而ruby的做法是:c=-166.abs。呵呵,这就看出了java与ruby的区别。js|教程|进门教程JavaServerPages(JSP)是基于Java的手艺,用于创立可撑持跨平台及跨Web服务器的静态网页。
JSP可与微软的ActiveServerPages(ASP)相媲美,但JSP利用的是相似于HTML的标志和Java代码片断而不是用VBScript。当你利用不供应ASP当地撑持的Web服务器(比方Apache或Netscape服务器)时,你就能够思索利用JSP了。你固然也能够为这些服务器弄一个ASP附加软件模块,可是太高贵了。如今Sun公司其实不会因你利用JSP向你免费(固然未来大概要收),何况用于Solaris、Linux和Windows体系的组件都很简单取得。
不要把JSP与服务器真个JavaScript言语弄混了。Web服务器主动将经由过程JSP天生的Java代码片断转换成Java片断(servlets)。JSP也可主动把持很多功效,如已往用Perl剧本编写功效程序或像ASP如许的服务器公用API(使用编程接口)。
我们即刻就要入手下手匡助你创建一个利用JSP手艺的网站典范了。
筹办好盘算机以利用JSP
你必要Java2软件开辟工具箱(J2SDK),已往称之为Java开辟工具箱(JDK)、JavaServer收集开辟工具箱(JSWDK)、Tomcat,大概别的能撑持JSP的Web服务器。升阳公司为Windows、Solaris和Linux平台供应收费的J2SDK和JSWDK。
假如你想在现有的Web服务器上利用JSP,而此服务器自己不撑持JSP和Java代码片断,能够试用Allaire公司的Jrun。它能够为Netscape的EnterpriseServer和FasttrackServer、微软的InternetInformationServer(IIS)和PersonalWebServer(PWS)、Apache和其他服务器充任Web服务器附件。你也能够利用Apache服务器的Java版,个中包括最新的JSWDK。
下载并安装所需的软件
今朝,版本号为1.2.2-001的J2SDK可下载版以可安装的回档文件情势呈现。这个约莫20MB的下载量软件可供应一个完全的Java开辟情况,让你制造任何基于Java而且使用了而尺度中心API的办理计划。实在,你的Web服务器利用JSP的独一前提是要有Java编纂器。要让Web服务器晓得编纂器的地位,必要JAVA_HOME情况变量设置为J2SDK安装目次。假如你已在Windows体系中举行了安装而且承受了默许目次,请将“setJAVA_HOME=C:1.2.2”增加到你的“autoexec.bat”文件中,然后从头启动。
安装J2SDK后,下载并安装JSWDK大概是Tomcatβ版,即基于Java的ApacheWeb服务器的β版。你把JSWDK放在甚么中央是可有可无的,只需你今后能找到它就行。一般,将其放在顶层目次中,如许你在交换JSWDK或JSDK时无需删除另外一个软件。安装好这个文件后,筹办事情已停当,你能够入手下手JSP开辟事情了。
准确地安装JSWDK后,请运转“startserver”剧本程序,以启动Web服务器,使其依照默许情形监听8080端口。你要在启动服务器以后检察您是不是已准确地安装了此工具,请加载一个JSP样本文件(http://locahost:8080/examples/jsp/)。假如你能乐成地运转这些样本文件,申明你已准确地安装了这个软件。假如你在用来启动服务器的把持台窗口中看到报错信息,你就必要做些修正。最常常产生的成绩是没有设置或不准确地设置了JAVA_HOME情况变量。要看到以后情况变量设置情形,要请在DOS提醒符下键进“set”设置。
入手下手
在注释JSP语法前,创立一个快速网页,显现目以后的日期和工夫,并然后将之其保留为sample.jsp:
<html>
<head>
<title>FirstPage</title>
</head>
<body>
<H3>Todayis:
<%=newjava.util.Date()%>
</H3>
</body>
</html>.
把这个文件和你一切的HTML和JSP页面放在JSWDK安装目次下的网页目次里。你能够从http://localhost:8080/sample.jsp加载此网页。该网页初次被会见时,Web服务器会把JSP编译成Java代码片断,如许你就可以够看到以后的日期和工夫了。
你已下载、安装并设置好了开辟情况,你能够入手下手进修JSP语法并创立本人的基于JSP的办理计划了。
JSP基础语法
讲完安装成绩后,如今进进来会商JSP语法。一个投机倒把的举措是下载语法卡片。假如你不熟习Java编程,大概你想看一下Sun的指南。但是网页创立者其实不必要举行太多的Java开辟。除一些办法挪用,在你的JSP网页里应尽量罕用Java代码。
记着以上提醒,我们起首来看一看JSP指令和剧本元素,以后我们会注释JavaBeans和隐含对象。共有五种JSP指令和剧本元素。在JSP1.0版中,年夜部分JSP被一个以“<%”开首和以“%>”开头的的标志括在个中。在更新的JSP1.1标准出台后,就有了与XML兼容的版本。
JSP指令和剧本元素
Directives<%@directive%>
Declarations<%!declaration%>
Expressions<%=expression%>
CodeFragment/Scriptlet<%codefragment%>
Comments<%--comment--%>
指令
JSP指令是为JSP引擎而计划的。他们其实不间接发生任何可见输入,而只是告知引擎怎样处置其他JSP页面。这些指令一直被括在“<%@?%>”标志中。两个最主要的指令是“pagePage”和“Include”。“Taglib”指令不在会商之列,可是在用JSP1.1创立自界说标志可使用它。
几近在一切JSP页面顶部城市看到“Page”指令。只管不是必需的,但它可让你指定:
到那边查找起撑持感化的Java种别:
<%@pageimport="java.util.Date"%>,
呈现Java运转成绩时,将网上冲浪者引向那边:
<%@pageerrorPage="errorPage.jsp"%>,
另有你是不是必要办理用户的会话级信息,这些信息大概来自多个网页(鄙人面的JavaBeans一节将对此做进一步讲)述:
<%@pagesession="true"%>.
“Include”指令能够把你的内容分红更多可办理的元素,好比包含一个一般页面页眉或页脚的元素。包括的网页能够是一个流动的HTML页面或更多的JSP内容:
<%@includefile="filename.jsp"%>
声明
JSP声明用来让你界说页面级变量,以保留信息或界说JSP页面的其他部分大概必要的撑持办法。假如你发明代码太多,一般最好把它们写成一个自力的Java种别。声明一样平常都在“<%!?%>”标志中。必定要以分号(;)停止变量声明,由于任何内容都必需是无效的Java语句:
<%!inti=0;%>。
表达式
有了JSP表达式,表达式评价了局会被转换成一个字符串,而且被间接包含在输入页面以内。JSP表达式包括在“<%=?%>”标志中,没有分号,除非在加引号的字符串部分利用分号。
<%=i%>
<%="Hello"%>.
代码片断/剧本片断
代码片断/剧本片断(Scriptlets)JSP代码片断或剧本片断是嵌在“<%?%>”标志中的。这类Java代码在Web服务器呼应哀求时就会运转。在剧本片断四周多是原始的HTML或XML语句,在这些中央,代码片断可使你创立前提实行代码,或要用到别的一段代码的代码。比方,以下的代码组合利用表达式和代码片断,显现H1、H2、H3和H4标志中的字符串“Hello”。代码片断其实不范围于一行源代码:
<%for(inti=1;i<=4;i++){%>
<H<%=i%>>Hello</H<%=i%>>
<%}%>.
正文
最初一个次要的JSP元素是嵌进式正文。只管你一直能够在文件中到场HTML正文,但用户在检察页面源代码时会看到这些正文。假如你不想让用户看到它,你就应当将其嵌进“<%--?--%>”标志中:
<%--commentforserversideonly--%>.
带JavaBean的JSP
固然你能够把年夜段的代码放在剧本片断(scriptlet)内,可是尽年夜多半的Java代码属于可反复利用的名为JavaBea的组件。JavaBean相似于ActiveX控件:他们都能供应经常使用功效而且能够反复利用。
JavaBean的值是经由过程一些属性取得的,你可经由过程这些属性会见JavaBean设置。以一团体来打例如,这团体就是一个JavaBean,这团体的名字、身份证号码和住址就是其属性。在JSP网站,你基础上就是经由过程玩“Connectthebeans)”来使你的网站静态化。
假定JavaBean先于网站被创立出来,你必要做的第一件事就是告知JSP页面它将要用到一个“Bean”。你能够用“<jsp:useBean>”标志来做到这一点:
<jsp:useBeanid="localName"class="com.jguru.Person"scope="application"/>。
“<jsp:useBean>”标志请求你用“id”属性来识判别Bean。这里你供应一个名字来JSP页面其他部分的Bean。除“id”属性,你还须告知网页面从那边查找Bean,大概它的Java种别名是甚么。这类种别属性供应确认Bean的功效,其他一些办法也能够做到这一点。最初一个必须的元素是“scope”属性。有了“scope”属性的匡助,你就可以告知Bean为单一页面(默许情形)[scope="page"]、为[scope="request"]哀求为会话[scope="session"],大概为全部使用程序[scope="application"]坚持留信息。有了会话局限,你就可以十分简单地在JSP网页面上保护购物车等项目。
一旦你申明了一个JavaBean,你就能够会见它的属性来定制它。要取得属性值,请用“<jsp:getProperty>”标志。有了这个标志,你就可以指定将要用到的Bean称号(从useBean的"id"字段失掉)和你想失掉其值的属性。实践的值被放在输入中:
<jsp:getPropertyid="localName"property="name"/>。
要改动JavaBean属性,你必需利用“<jsp:setProperty>”标志。对这个标志,你必要再次辨认Bean和属性,以修正并分外供应新值。假如定名准确,这些值能够从一个已提交的表中间接取得:参数取得:
<jsp:setPropertyid="localName"property="*"/>;
能够从一个参数取得,但你必需间接定名属性和参数:
<jsp:setPropertyid="localName"property="serialNumber"value="string"/>
大概间接用一个名字称和值来设置:<jsp:setPropertyid="localName"property="serialNumber"value=<%=expression%>/>.
关于JavaBean的最初一件事:为了Web服务器能找到JavaBean,你必要将其种别文件放在一个特别地位。用JSWDK,最便利的地位是安装目次下的种别目次,如jswdk-1.0.1classes。
JSP隐含对象
与JSP语法相干的最初的元素是一些叫做“隐含对象”的工具。在JSP代码片断中,你能够使用这些隐含对象与JSP页面的代码片断实行情况发生互动。应只管少会见这些内置隐含对象。可是,在一某些情形下,会见隐含对象是可被承受的。若要充实使用隐含对象,就需懂得最新的JavaServletAPI。
下表列出可用的隐含对象汇合。
隐含对象申明
request客户端哀求,包含从GET/POST哀求传送过去的参数
response网页传回客户真个反响
pageContext在此办理网页属性
session与哀求联系关系的会话
application代码片断的运转情况
out传送呼应的输入流
config代码片断设置对象
pageJSP网页自己
exception有错的网页中未被捕捉的破例
这些都是用来做甚么的,你又怎样来利用它们呢?基础上说,在你的剧本片断里,你能够用它们进进实行JSP代码的代码片断。用不着深切懂得太多的ServletAPI细节,我们来看看能用它们来做到的某些事变:
你能够不必表达式,间接进进“Out”隐含对象,将某些内容输入到呼应中:
<%out.println("Hello");%>。
用不着把一个参数间接送到JavaBean,你能够从哀求对象猎取参数值:
<%Stringname=request.getParameter("name");out.println(name);%>.
在你用JSP举行开辟的过程当中,举行更多的开辟的过程当中,假如创立了JavaBeans或发明JSP文件中到场了太多的Java源代码,你就必要创立起撑持感化的Java分类(class)了,它能够帮忙你反复使用源代码并削减JSP网页编译工夫。当你必要创立Java分类文件时,你必需:
将JDSWKinstallationin目次增加到PATH中。在autoexec.bat文件PATH行的开端,到场“C:1.2.2/bin”。
用这个命令将JAR文件复制到“jrelibext:”目次中:copyc:jswdk-1.0.1libservlet.jarc:jdk1.2.2jrelibext.
创立一个JSP网站
如今该是把一切这些JSP语法派上用处的时分了。我们将创立一个网页,它有一个输出表单,可使用户输出一个股票代号以取得出以后股价(有20分钟)。假如输出有误,则显现报错网页。
quote.jsp
起首,用这个代码创立一个quote.jsp网页并将其保留在JSWDK安装目次下的网页目次中。年夜多半的网页是尺度的HTML,其间分布着JSP代码。第六行是一个网页唆使,暗示将把一切毛病发送到“errorPage.jsp”文中。第13到15行是一个剧本片断,次要申明只要供应“标记”参数才会显现表格。“If”代码段在32到34行停止。第17行界说了要用的JavaBean,第18行从参数加载JavaBean的标记属性。第27行到29行显现Bean的属性。除"if"代码段,实践上其实不触及别的Java代码。
errorPage.jsp
下一步,将以下JSP源代码保留到网页目次中的“errorPage.jsp”文件中。“这是一个毛病网页”的提醒为第一行,它将isErrorPage网页提醒属性设置为真。上一页说了明毛病网页的地位,本页则申明这就是毛病网页。别的JSP文件中的JSP公用代码只要会见隐含破例对象才用到。网页只显现其值:
<%@pageisErrorPage="true"%>
<html>
<head>
<title>ErrorPage</title>
</head>
<body>
<h1>OurErrorPage</h1></font>
<!--PrintException-->
Wegotourselvesanexception:
<%=exception%>
<ahref="quote.jsp">Restart</a>
</body>
</html>。
Quotes.java
QuotesJavaBean使用Yahoo资本来取得股票代价。必要将此资本保留到JSWDK安装目次下“classescomjguru”目次中的“quotes.java”文件中。请在此用JSDK中的Javac编纂器来编纂它。
你的第一个JSP网页。
创立了这两个JSP文件,创建了JavaBean资本文件并编纂了它后,你就能够从http://localhost:8080/quote.jsp加载“quote.jsp”文件以检察了局,假定你没有变动JSWDK安装设置,转而利用其余端口。这个网页固然能做得更大度,可是它已完成了必要完成的功效,而且很好地展现了JSP的功效
他们对jsp,servlet,javabean进行封装就是为了展示他们的某个思想,与java的开发并没有必然的关系,也不见得在所以情况下,别人使用起来会简单。 |
|