|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
C++编译的是本地码,优点是启动快,而且可以精确控制资源因此可以开发很高效的程序.缺点是编程麻烦,而且容易留下安全隐患.跨平台靠源代码在各个平台间分别编译(一处编写到处编译)js1、JSP手艺概述
在Sun正式公布JSP(JavaServerPages)以后,这类新的Web使用开辟手艺很快引发了人们的存眷。JSP为创立高度静态的Web使用供应了一个共同的开辟情况。依照Sun的说法,JSP可以顺应市场上包含ApacheWebServer、IIS4.0在内的85%的服务器产物。即便您对ASP“一往情深”,我们以为,存眷JSP的开展仍然很有需要。
㈠JSP与ASP的复杂对照
JSP与Microsoft的ASP手艺十分类似。二者都供应在HTML代码中夹杂某种程序代码、由言语引擎注释实行程序代码的才能。在ASP或JSP情况下,HTML代码次要卖力形貌信息的显现款式,而程序代码则用来形貌处置逻辑。一般的HTML页面只依附于Web服务器,而ASP和JSP页面必要附加的言语引擎剖析和实行程序代码。程序代码的实行了局被从头嵌进到HTML代码中,然后一同发送给扫瞄器。ASP和JSP都是面向Web服务器的手艺,客户端扫瞄器不必要任何附加的软件撑持。
ASP的编程言语是VBScript之类的剧本言语,JSP利用的是Java,这是二者最分明的区分。别的,ASP与JSP另有一个更加实质的区分:两种言语引擎用完整分歧的体例处置页面中嵌进的程序代码。在ASP下,VBScript代码被ASP引擎注释实行;在JSP下,代码被编译成Servlet并由Java假造机实行,这类编译操纵仅在对JSP页面的第一次哀求时产生。
㈡运转情况
Sun公司的JSP主页在http://www.javasoft.com/products/jsp/index.html,从这里还能够下载JSP标准,这些标准界说了供给商在创立JSP引擎时所必需服从的一些划定规矩。
实行JSP代码必要在服务器上安装JSP引擎。此处我们利用的是Sun的JavaServerWebDevelopmentKit(JSWDK)。为便于进修,这个软件包供应了大批可供修正的示例。安装JSWDK以后,只需实行startserver命令便可启动服务器。在默许设置下服务器在端口8080监听,利用http://localhost:8080便可翻开缺省页面。
在运转JSP示例页面之前,请注重一下安装JSWDK的目次,出格是“work”子目次下的内容。实行示例页面时,能够在这里看到JSP页面怎样被转换成Java源文件,然后又被编译成class文件(即Servlet)。JSWDK软件包中的示例页面分为两类,它们大概是JSP文件,大概是包括一个表单的HTML文件,这些表单均由JSP代码处置。与ASP一样,JSP中的Java代码均在服务器端实行。因而,在扫瞄器中利用“检察源文件”菜单是没法看到JSP源代码的,只能看到了局HTML代码。一切示例的源代码均经由过程一个独自的“examples”页面供应。
㈢JSP页面示例
上面我们剖析一个复杂的JSP页面。您能够在JSWDK的examples目次下创立别的一个目次寄存此文件,文件名字能够恣意,但扩大名必需为.jsp。从上面的代码清单中能够看到,JSP页面除比一般HTML页面多一些Java代码外,二者具有基础不异的布局。Java代码是经由过程<%和%>标记到场到HTML代码两头的,它的次要功效是天生并显现一个从0到9的字符串。在这个字符串的后面和前面都是一些经由过程HTML代码输入的文本。
<HTML>
<HEAD><TITLE>JSP页面</TITLE></HEAD>
<BODY>
<%@pagelanguage="java"%>
<%!Stringstr="0";%>
<%for(inti=1;i<10;i++){
str=str+i;
}%>
JSP输入之前。
<P>
<%=str%>
<P>
JSP输入以后。
</BODY>
</HTML>
这个JSP页面能够分红几个部分来剖析。
起首是JSP指令。它形貌的是页面的基础信息,如所利用的言语、是不是保持会话形态、是不是利用缓冲等。JSP指令由<%@入手下手,%>停止。在本例中,指令“<%@pagelanguage="java"%>”只复杂地界说了本例利用的是Java言语(以后,在JSP标准中Java是独一被撑持的言语)。
接上去的是JSP声明。JSP声明能够当作是界说类这一条理的变量和办法的中央。JSP声明由<%!入手下手,%>停止。如本例中的“<%!Stringstr="0";%>”界说了一个字符串变量。在每项声明的前面都必需有一个分号,就象在一般Java类中声明成员变量一样。
位于<%和%>之间的代码块是形貌JSP页面处置逻辑的Java代码,如本例中的for轮回所示。
最初,位于<%=和%>之间的代码称为JSP表达式,如本例中的“<%=str%>”所示。JSP表达式供应了一种将JSP天生的数值嵌进HTML页面的复杂办法。
2、会话形态办理
作者:神仙掌事情室
会话形态保持是Web使用开辟者必需面临的成绩。有多种办法能够用来办理这个成绩,如利用Cookies、埋没的表单输出域,或间接将形态信息附加到URL中。JavaServlet供应了一个在多个哀求之间延续无效的会话对象,该对象同意用户存储和提取会话形态信息。JSP也一样撑持Servlet中的这个观点。
在Sun的JSP指南中能够看到很多有关隐含对象的申明(隐含的寄义是,这些对象能够间接援用,不必要显式地声明,也不必要专门的代码创立实在例)。比方request对象,它是HttpServletRequest的一个子类。该对象包括了一切有关以后扫瞄器哀求的信息,包含Cookies,HTML表单变量等等。session对象也是如许一个隐含对象。这个对象在第一个JSP页面被装载时主动创立,并被联系关系到request对象上。与ASP中的会话对象类似,JSP中的session对象关于那些但愿经由过程多个页面完成一个事件的使用长短常有效的。
为申明session对象的详细使用,接上去我们用三个页面摹拟一个多页面的Web使用。第一个页面(q1.html)仅包括一个请求输出用户名字的HTML表单,代码以下:
<HTML>
<BODY>
<FORMMETHOD=POSTACTION="q2.jsp">
请输出您的姓名:
<INPUTTYPE=TEXTNAME="thename">
<INPUTTYPE=SUBMITVALUE="SUBMIT">
</FORM>
</BODY>
</HTML>
第二个页面是一个JSP页面(q2.jsp),它经由过程request对象提取q1.html表单中的thename值,将它存储为name变量,然后将这个name值保留到session对象中。session对象是一个名字/值对的汇合,在这里,名字/值对中的名字为“thename”,值即为name变量的值。因为session对象在会话时代是一向无效的,因而这里保留的变量对后继的页面也无效。q2.jsp的别的一个义务是扣问第二个成绩。上面是它的代码:
<HTML>
<BODY>
<%@pagelanguage="java"%>
<%!Stringname="";%>
<%
name=request.getParameter("thename");
session.putValue("thename",name);
%>
您的姓名是:<%=name%>
<p>
<FORMMETHOD=POSTACTION="q3.jsp">
您喜好吃甚么?
<INPUTTYPE=TEXTNAME="food">
<P>
<INPUTTYPE=SUBMITVALUE="SUBMIT">
</FORM>
</BODY>
</HTML>
第三个页面也是一个JSP页面(q3.jsp),次要义务是显现问答了局。它从session对象提取thename的值并显现它,以此证实固然该值在第一个页面输出,但经由过程session对象得以保存。q3.jsp的别的一个义务是提取在第二个页面中的用户输出并显现它:
<HTML>
<BODY>
<%@pagelanguage="java"%>
<%!Stringfood="";%>
<%
food=request.getParameter("food");
Stringname=(String)session.getValue("thename");
%>
您的姓名是:<%=name%>
<P>
您喜好吃:<%=food%>
</BODY>
</HTML>
3、援用JavaBean组件
作者:神仙掌事情室编译
JavaBean是一种基于Java的软件组件。JSP关于在Web使用中集成JavaBean组件供应了完美的撑持。这类撑持不但能延长开辟工夫(能够间接使用经测试和可托任的已有组件,制止了反复开辟),也为JSP使用带来了更多的可伸缩性。JavaBean组件能够用来实行庞大的盘算义务,或卖力与数据库的交互和数据提取等。假如我们有三个JavaBean,它们分离具有显现旧事、股票代价、天色情形的功效,则创立包括一切这三种功效的Web页面只必要实例化这三个Bean,利用HTML表格将它们顺次定位就能够了。
为申明在JSP情况下JavaBean的使用,我们创立了一个名为TaxRate的Bean。它有两个属性,即Product(产物)和Rate(税率)。两个set办法分离用来设置这两个属性,两个get办法则用于提取这两个属性。在实践使用中,这类Bean一样平常应该从数据库提取税率值,此处我们简化了这个历程,同意恣意设定税率。上面是这个Bean的代码清单:
packagetax;
publicclassTaxRate{
StringProduct;
doubleRate;
publicTaxRate(){
this.Product="A001";
this.Rate=5;
}
publicvoidsetProduct(StringProductName){
this.Product=ProductName;
}
publicStringgetProduct(){
return(this.Product);
}
publicvoidsetRate(doublerateValue){
this.Rate=rateValue;
}
publicdoublegetRate(){
return(this.Rate);
}
}
在JSP页面中使用上述Bean要用到<jsp:useBean>标志。依附于详细利用的JSP引擎的分歧,在那边设置和怎样设置Bean的办法也大概略有分歧。本文将这个Bean的.class文件放在c:jswdk-1.0examplesWEB-INFjspeans ax目次下,这里的tax是一个专门寄存该Bean的目次。上面是一个使用上述Bean的示例页面:
<HTML>
<BODY>
<%@pagelanguage="java"%>
<jsp:useBeanid="taxbean"scope="application"class="tax.TaxRate"/>
<%taxbean.setProduct("A002");
taxbean.setRate(17);
%>
利用办法1:<p>
产物:<%=taxbean.getProduct()%><br>
税率:<%=taxbean.getRate()%>
<p>
<%taxbean.setProduct("A003");
taxbean.setRate(3);
%>
<b>利用办法2:</b><p>
产物:<jsp:getPropertyname="taxbean"property="Product"/>
<br>
税率:<jsp:getPropertyname="taxbean"property="Rate"/>
</BODY>
</HTML>
在<jsp:useBean>标志内界说了几个属性,个中id是全部JSP页面内该Bean的标识,scope属性界说了该Bean的保存工夫,class属性申明了该Bean的类文件(从包名入手下手)。
这个JSP页面不但利用了Bean的set和get办法设置和提取属性值,还用到了提取Bean属性值的第二种办法,即便用<jsp:getProperty>标志。<jsp:getProperty>中的name属性即为<jsp:useBean>中界说的Bean的id,它的property属性指定的是方针属性的名字。
现实证实,JavaServlet是一种开辟Web使用的幻想构架。JSP以Servlet手艺为基本,又在很多方面作了改善。JSP页面看起来象一般HTML页面,但它同意嵌进实行代码,在这一点上,它和ASP手艺十分类似。使用跨平台运转的JavaBean组件,JSP为分别处置逻辑与显现款式供应了出色的办理计划。JSP势必成为ASP手艺的无力合作者。
你希望java的IDE整合。这个是没有必要的,重要的是你理解java有多深以及怎么组织你的代码,即使没有IDE,代码照样能够编译运行的。 |
|