JSP动态网页制作技术.docx
《JSP动态网页制作技术.docx》由会员分享,可在线阅读,更多相关《JSP动态网页制作技术.docx(11页珍藏版)》请在冰点文库上搜索。
JSP动态网页制作技术
JSP动态网页制作技术
课题名称
JSP动态网页制作技术
院系
专业
班级
学号
学生姓名
指导教师:
2011年6月23日
前言
JavaServerPages(JSP) 是一种结合了跨平台与跨网站服务器机制,以 Java为主的技术来产生动态网页。
JSP与微软的ASP(ActiveServerPages )相容,但它是使用类似HTML的标签以及Java代码片段而不是VBScript。
当所使用的网站服务器没有提供本地ASP支援,也就是Apache或Netscape服务器时,可以考虑使用JSP。
虽然可以取得这些服务器的ASP附加配备程序,但价格相当昂贵,而目前Sun并没有对所要的JSP组件收取费用(虽然Sun未来有可能会收费)。
对於Solaris与Linux以及Windows,这些组件也都很容易取得。
网站服务器会自动将以JSP写成的Java代码片段转换成Javaservlets。
而许多先前必须以Perl手写程式或服务器特定的API(如ASP)控制的功能也都可透过JSP来自动化处理。
目录
1、如何安装好机器来使用JSP.....................................................3
1.1、下载与安装需要的组件........................................................3
1.2、解释语法.......................................................................3
2、JSP语法的基本原理………………………………………………………………4
2.1、JSP的编译器指引与指令元件……………………………………………4
2.2、编译器指引…………………………………………………………………4
2.3、定义网页参数………………………………………………………………4
2.4、jsp的运算式………………………………………………………………5
2.5、jsp程序码片段或小型指令文件…………………………………………5
3、JSP与JavaBean………………………………………………………………………......5
4、JSP的内部物件…………………………………………………………………7
5、建立一JSP网站…………………………………………………………………7
6、总结………………………………………………………………………………9
1、如何安装好机器来使用JSP
将需要Java2软件开发工具(JSDK),它原来的名称是Java开发工具(JDK)以及JavaServer网站开发工具(JSWDK),Tomcat,或是其他支援JSP的网络服务器。
Sun提供JSDK与JSWDK来供Windows,Solaris,以及Linux平台使用。
如果要在目前的网络服务器上使用JSP,但服务器本身并不支援JSP与Javaservlets,可以试试看Allaire的Jrun, 它的作用就像是针对Netscape企业版与FastTrack服务器、微软的网络资讯服务器(IIS)与个人网络服务器(PWS)、Apache、以及其他服务器的网络服务器附加设备。
也可以使用Apache网络服务器的Java版本,最新的JSWDK里有提供。
1、下载与安装需要的组件
目前发表的1.2.2-001,JSDK可下载的版本是以可安装的压缩文档形式。
下载的文件大约是20MB,可提供完整的Java发展,能建立利用标准API为核心的Java解决之道。
然而,网络服务器需要应用到JSP的唯一一件事是Java编译器。
要让网络服务器知道编译器的位置,将环境参数JAVA.HOME设到JSDK的安装目录。
如果是在Windows上安装并且接受预设目录,将这行代码setJAVA.HOME=C:
\1.2.2加到autoexec.bat文件并且重新开机。
在安装好JSDK之後,下载并且安装JSWDK或beta版的Tomcat,以Java为主的Apache网络服务器。
安装在哪里并不重要,重要的是可以找到它。
一般而言,它会放在上层目录,这种方式可以取代JSWDK或JSDK的网络服务器,不需要移动其他的网络服务器。
在安装好这个文件之後,就可以准备使用JSP了。
在正确的安装JSWDK之後,执行startserver指令来启动网络服务器,预设通讯口为8080。
要看在启动服务器之後是否有正确的安装工具,可以载入范例JSP文件中的任何一个(http:
//localhost:
8080/examples/jsp/)。
如果能够成功的执行一个范例文件,可以知道已经正确的设定好软件了。
如果在启动服务器的控制台视窗看到错误讯息,那么需要解决这个问题。
最常发生的问题是没有设定(或者不正确设定)环境参数JAVA.HOME。
要检查目前的环境设定,在DOS模式下键入set。
2解释语法
开始解释JSP语法 之前,先建立一个显示目前日期与时间的快速网页并且将它储存成sample.jsp:
FirstPageTodayis:
<%=newjava.util.Date()%>
.
将这个文件与所有的HTML与JSP网页放在你JSWDK安装目录下的网页目录里. 可以在http:
//localhost:
8080/sample.jsp下载此页.第一次参观这个网页时,网站服务器会将JSP成Javaservlet代码,那你就会看到目前的日期与时间.
现在已经下载,安装,并且架构好环境,已经准备好要了解JSP语法与建立自己的JSP为主的解决之道.
2、JSP语法的基本原理
安装之後,接下来我们要讨论JSP的语法.我们先来看看JSP的编译器指引与指令元件,之後我们将解释JavaBeans与内部物件.JSP编译器指引与指令元件有五种型态.JSP1.0之後,大部分的JSP是包含在以<% 作为开始%>作为结束的单一标签里,新的 JSP1.1规格已经发表了,它同时也与XML相容。
1、JSP的编译器指引与指令元件
编译器指引 <%@ 编译器指引 %>
预定义 <%!
预定义 %>
运算式 <%= 运算式 %>
程序码片段/小型指令 <% 程序码片段 %>
注解 <%-- 注解 --%>
2、编译器指引
JSP的编译器指引是针对JSP引擎。
它们并不会直接产生任何看得见的输出;相反的,它们是在告诉引擎如何处理其他的JSP网页。
它们永远包含在 <%@?
%>标签里。
两个主要的指引是 page与include。
我们不会讨论taglib编译器指引但它可以在JSP1.1里用来建立自订标签。
几乎可以在所有的JSP网页最上面找到page编译器指引。
虽然这不是必须的,但它可以指定到那里可以找到支持的Java类别:
<%@pageimport="java.util.Date"%>, 当发生Java问题的事件时应该将信息传送到那里:
<%@pageerrorPage="errorPage.jsp"%>, 以及是否要为使用者通话期的,可能存取多个网页(稍后在JavaBeans里会有更多通话期的讨论):
<%@pagesession="true"%>。
include编译器指引内容分成几个可管理的元件,就像那些有表头或注脚的网页。
所包含的网页可以是固定格式的HTML网页或者是JSP内容的网页:
<%@includefile="filename.jsp"%>。
3、定义网页参数
JSP预定义让你定义网页层的参数,来储存信息或定义支持的函数式,让JSP网页的其余部分能够使用。
如果发现有太多的程序码,最好将它们放在不同的Java类别里。
可以在 <%!
?
%>标签里找到预定义。
记住要在参数预定义的後面加上分号,就跟任何有效的Java叙述的形式一样:
<%!
inti=0;%>。
4、jsp的运算式
JSP里有运算式,评估运算式的结果可以转换成字串并且直接使用在输出网页上。
JSP运算是属於 <%=?
%> 标签里,并不包含分号,加引号字串的无用部分:
<%=i%>
<%="Hello"%> 。
5、jsp程序码片段或小型指令文件
JSP程序码片段或小型指令文件是包含在<%?
%> 标签里。
当网络服务器接受这段请求时,这段Java程序码会执行。
小型指令文件可以是原始的HTML或XML,其内部的程序码片段可以让你建立有条件的执行程序码,或者只是一些使用另一块程序码的东西。
举例来说,下列的程序码结合了运算式与小型指令文件,在H1,H2,H3,以及H4标签里显示字串"Hello"。
小型指令文件不限於一行的原始程序码 :
<%for(inti=1;i<=4;i++){%>
>Hello>
<%}%>。
注解.
最後一个主要JSP元件是嵌入式注解。
虽然可以在文件里包含HTML注解,如果使用者检视网页的原始码,他们也会看到这些注解。
如果不要让使用者看到注解,可以将它放在<%--?
--%>标签里:
<%-- 针对服务器端的注解 --%>。
3、JSP与JavaBean
虽然你可以在小型指令档里放入一大块的代码,但是大多数的Java代码是属於可以重复使用的元件,称为JavaBean。
JavaBean就跟ActiveX控制项一样:
它们提供已知的功能,并且是为了可随时重复使用的目的而设计的。
JavaBean的¤值在於它可以经由一组特性来使用,而这些特性则提供对JavaBean设定的存取。
以人来作范例,此人就是JavaBean,而他的姓名,福利安全号码,以及住址可以是特性。
对於JSP网站,基本上你是将'JavaBean'动态的连接到网站。
假设JavaBean是在建立网站之前建好的,要做的第一件事是告诉JSP网页它所需要使用JavaBean,这工作可以用useBean>标签来完成:
useBeanid="localName"class="com.jjj.Person"scope="application"/>.
useBean>标签需要你以id 属性来辨识usebean.在这里,提供一个名称让JSP网页来辨识usebean,除了id 属性之外,也必须告诉网页要到哪里去找这个usebean,或者是它的Java类别名称。
类别属性提供如何在各式方法之中找到它,最後一个需要的元件是scope 属性。
有了范围属性的帮助,可以告诉usebean,要它为单一网页(预设)[scope="page"];为一个被请求的网页[scope="request"];为通话期[scope="session"]; 或为整个应用程式[scope="application"]来维护它自己的资源。
对於通话期范围,可以很容易的维护JSP网页里的项目,例如购物车:
一旦宣告了JavaBean之後,就可以存取它的特性来订购它。
要取得一特性的值,使用getProperty>标签。
有了getProperty>标签,可以指定要使用的usebean名称(从useBean的id栏位),以及要取得值的特性。
接著,真正的值就会放在输出里:
getPropertyid="localName"property="name"/>.
要更改JavaBean的特性,需要使用setProperty>标签.对这个标签,也需要辨认usebean以及要修正的特性,除此之外,还需要提供新值。
如果命名正确,这些可以直接经由规定的格式取得:
setPropertyid="localName"property="*"/>;
要从一参数取得,你必须直接命名此特性以及参数:
setPropertyid="localName"property="address"param="parameterName"/>;
或是直接以名称与值来设定:
setPropertyid="localName"property="serialNumber"value="string"/>orsetPropertyid="localName"property="serialNumber"value=<%=expression%>/>.
有关JavaBean的最後一点:
要让网络服务器可以找到JavaBean,要将它们的类别文件放在特别位置。
对JSWDK而言,最简单的地方是在安装目录里的类别目录,例如 \jswdk-1.0.1\classes.
4、JSP的内部物件
最後一个与JSP语法有关的元件叫做内部物件.在JSP小型指令档内,可以存取这些内部物件来与执行JSP网页的servlet相互作用。
许多对内部物件的存取应该要简化。
然而,这些是范例,它们的存取都是可接受的,要完整的利用内部物件设定则 要对最新的JavaServletAPI有所了解。
有关内部物件说明:
request 用户端请求,此请求会包含来自GET/POST请求的参数
response 网页传回用户端的回应
pageContext 网页的属性是在这里
session 与请求有关的通话期
applicationservlet正在执行的内容
out 用来传送回应的输出资料流
configservlet的架构物件
pageJSP网页本身
exception 针对错误网页,未捕捉的例外
那麽,这些是做什麽的,而应该如何使用它们呢?
基本上,在小型指令档里,可以使用它们来存取执行JSP代码的servlet。
为了避免谈论到太多ServletAPI 的细节,可以利用它们来做的事:
不必使用运算式,可以直接存取内部out物件来列印一些东西到response:
<%out.println("Hello");%>.
不必直接传送参数到JavaBean,可以藉由请求物件来取得参数的值:
<%Stringname=request.getParameter("name");out.println(name);%>。
以JSP写了许多的应用程式之後,如果建立了JavaBeans或者发现将太多的Java原始码放入JSP,需要建立支援的Java类别,这样可以鼓励重复使用并且降低JSP网页转换时所需要的时间。
当需要建立Java类别时,必须:
将JDSWK的安装目录\bin目录加到PATH。
在autoexec.bat档案的PATH行的最後,加入C:
\1.2.2\bin; 。
以下面的指令将JAR档案复制到\jre\lib\ext目录:
copyc:
\jswdk-1.0.1\lib\servlet.jarc:
\jdk1.2.2\jre\lib\ext.
5、 建立一JSP网站
现在到了将所有的JSP语法放在一起使用的时候了。
我们将会建立一个具有输入格式的网站,让使用者来输入股票代号并且获得目前股票的价格(大约延迟20分钟)。
如果有错误,则错误网页会显示。
quote.jsp
首先,以这段代码建立quote.jsp并且将它储存在JSWDK安装目录的网页目录里。
网页的大部分内容是标准的HTML格式,而JSP代码分散各处。
第6行是网页编辑器指引,指示将任何错误传送到errorPage.jsp档案。
第13行到15行是小型指示码,基本上是说只有当"symbol"参数存在时才显示表格。
这个if区段包含了第32行到34行的代码。
第17行定义要使用的 JavaBean,而第18行从参数载入它的符号特性。
第27行到29行指示显示usebean的特性。
除了if区段之外,并没有其他的Java代码。
errorPage.jsp
接着,将下列的JSP原始码储存到网页目录下的文件errorPage.jsp.这是一个错误网页的暗示是在第一行,此行将网页编译器指引isErrorPage属性设为真。
虽然前一页说明了错误网页在哪里,这页是说它是一个错误网页。
JSP文件里其他特定的JSP代码是对内部例外物件的存取。
此页只是显示它的值而已:
<%@pageisErrorPage="true"%>
ErrorPage
OurErrorPage
--PrintException-->
Wegotourselvesanexception:
<%=exception%>
Restart
.
Quotes.java
QuotesJavaBean使用雅虎的资源来取得股票。
其原始码 要储存於 JSWDK安装目录下classes\com\jguru目录里的quotes.java档案。
从那里可以使用JSDK的编译器来编译它。
一旦建好两个JSP文件,建立了JavaBean原始文件并且编译好之後,就可以由http:
//localhost:
8080/quote.jsp载入quote.jsp文件来查看结果,假设没有更改 JSWDK安装,使用不同的通讯口> 此网页可以再加强,但它所呈现的功能,是JSP功能的良好示范
6、总结
通过本次jsp运用使是我基本上巩固了今年所学的jsp的基础知识及其对这些知识加深了理解。
也增强了我的自学能力及对知识的融会贯通能力。
本次的动手开发实践活动同时也提高了我的动手能力、调试程序的能力、解决问题的能力和实际开发的应用能力,更掌握了用jsp进行系统开发的一般步骤和方法。