加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 教程 > 正文

JSP快速入门

发布时间:2023-05-27 13:46:56 所属栏目:教程 来源:
导读:javaserver pages (jsp) 是一种以 java为主的跨平台语言。



jsp与微软的active server pages 兼容,但它是使用类似html的卷标以及java程序代码段而不是vbscript。当你所使用的网站服务器没有提供本地asp支持
javaserver pages (jsp) 是一种以 java为主的跨平台语言。
 
 
 
jsp与微软的active server pages 兼容,但它是使用类似html的卷标以及java程序代码段而不是vbscript。当你所使用的网站服务器没有提供本地asp支持,也就是apache或netscape服务器时,你可以考虑使用jsp。虽然你可以取得这些服务器的asp附加配备模块,但价格相当昂贵,而目前sun并没有对你所需要的jsp组件收取费用(虽然sun未来有可能会收费)。对于solaris与linux以及windows,这些组件也都很容易取得。 
 
 
 
请不要将jsp与伺服端的javascript混为一谈。网站服务器会自动将以jsp写成的java程序代码段转换成java servlets。而许多先前必须以perl手写程序或服务器特定的api(如asp)控制的功能也都可透过jsp来自动化处理。
 
 
 
现在就让我们开始动手帮助你建立一个可执行jsp范例网站。
 
 
 
 
 
安装好你的机器来使用jsp
 
 
 
你将会需要java 2软件开发工具(jsdk),它原来的名称是java发展工具(jdk)以及javaserver网站发展工具(jswdk),tomcat,或是其它支持jsp的网络服务器。sun免费提供jsdk与jswdk来供windows,solaris,以及linux平台使用。 
 
 
 
如果你想要在你目前的网络服务器上使用jsp,但服务器本身并不支持jsp与java servlets,你可以试试看allaire的jrun,它的作用就像是针对netscape企业版与fasttrack服务器、微软的网际网络信息服务器(iis)与个人网络服务器(pws)、apache、以及其它服务器的网络服务器附加设备。你也可以使用apache网络服务器的java版本,最新的jswdk里有提供。
 
 
 
下载与安装你需要的组件
 
目前发布的1.2.2-001,jsdk可下载的版本是以可安装的压缩档形式。下载的档案大约是20mb,可提供完整的java发展环境,让你能建立利用标准api为核心的java解决之道。然而,你的网络服务器需要应用到jsp的唯一一件事是java编译器。要让网络服务器知道编译器的位置,将环境变量java.home设到jsdk的安装目录。如果你是在windows上安装并且接受预设目录,将这行程序代码set java.home=c:.2.2加到你的autoexec.bat档案并且重新开机。
 
 
 
在安装好jsdk之后,下载 并且安装jswdk或beta版的tomcat,以java为主的apache网络服务器。安装在哪里并不重要,重要的是你可以找到它。一般而言,它会放在上层目录,这种方式可以让你取代jswdk或 jsdk的网络服务器,不需要移动其它的网络服务器。在你安装好这个档案之后,你就可以准备发展jsp了。
 
 
 
在你正确的安装jswdk之后,执行startserver指令文件来激活网络服务器,预设通讯端口 为 8080。要看你在激活服务器之后是均c有正确的安装工具,你可以加载范例jsp档案中的任何一个(http://localhost:8080/examples/jsp/)。如果你能够成功的执行一个范例档案,你可以知道你已经正确的设定好软件了。如果你在激活服务器的控制台窗口看到错误讯息,那么你需要解决这个问题。最常发生的问题是没有设定(或者不正确设定)环境变量java.home。要检视目前的环境设定,在dos模式下键入set。
 
 
 
开始
 
 
 
解释jsp语法之前,先建立一个显示目前日期与时间的快速网页并且将它储存成sample.jsp:
 
 
 
<html>
 
<head>
 
<title>first page</title>
 
</head>
 
<body>
 
<h3>today is:
 
<%= new java.util.date() %>
 
</h3>
 
</body>
 
</html>.
 
 
 
将这个档案与你所有的html与jsp网页放在你jswdk安装目录下的网页目录里. 你可以在http://localhost:8080/sample.jsp下载此页.当你第一次参观这个网页时,网站服务器会将jsp翻译成java servlet程序代码,那你就会看到目前的日期与时间.
 
 
 
现在你已经下载,安装,并且架构好发展环境,你已经准备好要了解jsp语法与建立你自己的jsp为主的解决之道.
 
 
 
jsp语法的基本原理
 
 
 
 
 
安装之后,接下来我们要讨论jsp的语法.如果要偷懒,你可以下载语法卡 而如果你不熟悉 java的程序设计,你可能会想要参考sun的使用手册;然而,网站建立者不应该做太多的java发展.除了几个函式呼叫之外,出现在你jsp网页上的java程序代码应该将它减到最少;
 
 
 
记住这点之后,现在让我们先来看看jsp的编译器指引与指令组件,之后我们将解释javabeans与内部对象. jsp编译器指引与指令组件有五种型态.jsp 1.0之后,大部分的jsp是包含在以<% 作为开始%>作为结束的单一卷标里.新的 jsp 1.1规格已经发表了,它同时也与xml兼容.
 
 
 
jsp的编译器指引与指令组件
 
 
 
  编译器指示
 
<%@ 编译器指示 %>
 
 
 
  声明
 
<%! 声明 %>
 
 
 
  表达式
 
<%= 表达式 %>
 
 
 
  程序代码段/小型指令
 
<% 程序代码片段 %>
 
 
 
  注释
 
<%-- 注释 --%>
 
 
 
 
 
 
 
 
 
编译器指示
 
 
 
jsp的编译器指示是针对jsp引擎。它们并不会直接产生任何看得见的输出;相反的,它们是在告诉引擎如何处理其它的jsp网页。它们永远包含在 <%@ ?%>卷标里。两个主要的指引是 page与include。我们不会讨论taglib编译器指引但它可以在jsp1.1里用来建立自订卷标。
 
 
 
你几乎可以在你所有的jsp网页最上面找到page编译器指示。虽然这不是必须的,但它可以让你指定到哪里可以找到支持的java类别这类的事:
 
<%@ page import="java.util.date" %>, 
 
 
 
当发生java问题的事件时应该将讯息传送到哪里:
 
<%@ page errorpage="errorpage.jsp" %>, 
 
 
 
以及你是?需要为使用者管理通话期的信息,可能存取多个网页(稍后在javabeans里会有更多通话期的讨论):
 
<%@ page session="true" %>。 
 
 
 
  include编译器指示让你将你的内容分成几个可管理的组件,就像那些有表头或脚注的网页。所包含的网页可以是固定格式的html网页或者是jsp内容的网页:
 
<%@ include file="filename.jsp" %>。
 
 
 
宣告
 
 
 
jsp声明让你定义网页层的变量,来储存信息或定义支持的函式,让jsp网页的其余部分能够使用。如果你发现自己有太多的程序代码,你最好将它们放在不同的java类别里。你可以在 <%! ?%>卷标里找到声明。记住要在变量声明的后面加上分号,就跟任何有效的java叙述的形式一样: <%! int i=0; %>。
 
 
 
表达式
 
 
 
jsp里有表达式,评估表达式的结果可以转换成字符串并且直接使用在输出网页上。jsp运算是属于 <%= ?%> 卷标里,并不包含分号,加引号字符串的无用部分。
 
 
 
<%= i %>
 
<%= "hello" %> 。
 
 
 
程序代码段/小型指令文件
 
 
 
jsp程序代码片段或小型指令文件是包含在<% ?%> 卷标里。当网络服务器接受这段请求时,这段java程序代码会执行。小型指令文件可以是原始的html或xml,其内部的程序代码片段可以让你建立有条件的执行程序代码,或者只是一些使用另一块程序代码的东西。举例来说,下列的程序代码结合了表达式与小型指令文件,在h1,h2,h3,以及h4卷标里显示字符串"hello"。小型指令文件不限于一行的原始程序代码 :
 
 
 
<% for (int i=1; i<=4; i++) { %>
 
<h<%=i%>>hello</h<%=i%>>
 
<% } %>。
 
 
 
注释
 
最后一个主要jsp组件是嵌入式注释。虽然你可以在你的档案里包含html注释,如果使用者检视网页的原始码,他们也会看到这些注释。如果你不要让使用者看到你的批注,你可以将它放在<%-- ?--%>卷标里:
 
 
 
<%-- 针对伺服端的注释 --%>。
 
 
 
jsp与javabean
 
 
 
 
 
虽然你可以在小型指令文件里放入一大块的程序代码,但是大多数的java程序代码是属于可以重复使用的组件,称为javabean。javabean就跟activex控件一样:它们提供已知的功能,并且是为了可随时重复使用的目的而设计的。
 
 
 
javabean的价值在于它可以经由一组特性来使用,而这些特性则提供对javabean设定的存取。以人来作范例,此人就是javabean,而他的姓名,社会福利安全号码,以及住址可以是特性。对于jsp网站,基本上你是将'javabean'动态的连接到你的网站。
 
 
 
假设javabean是在?html>  
 
 
 
jsp入门
 
 
 
javaserver pages (jsp) 是一种以 java为主的跨平台语言。
 
 
 
 
 
 
 
jsp与微软的active server pages 兼容,但它是使用类似html的卷标以及java程序代码段而不是vbscript。当你所使用的网站服务器没有提供本地asp支持,也就是apache或netscape服务器时,你可以考虑使用jsp。虽然你可以取得这些服务器的asp附加配备模块,但价格相当昂贵,而目前sun并没有对你所需要的jsp组件收取费用(虽然sun未来有可能会收费)。对于solaris与linux以及windows,这些组件也都很容易取得。 
 
 
 
请不要将jsp与伺服端的javascript混为一谈。网站服务器会自动将以jsp写成的java程序代码段转换成java servlets。而许多先前必须以perl手写程序或服务器特定的api(如asp)控制的功能也都可透过jsp来自动化处理。
 
 
 
现在就让我们开始动手帮助你建立一个可执行jsp范例网站。
 
 
 
 
 
安装好你的机器来使用jsp
 
 
 
你将会需要java 2软件开发工具(jsdk),它原来的名称是java发展工具(jdk)以及javaserver网站发展工具(jswdk),tomcat,或是其它支持jsp的网络服务器。sun免费提供jsdk与jswdk来供windows,solaris,以及linux平台使用。 
 
 
 
如果你想要在你目前的网络服务器上使用jsp,但服务器本身并不支持jsp与java servlets,你可以试试看allaire的jrun,它的作用就像是针对netscape企业版与fasttrack服务器、微软的网际网络信息服务器(iis)与个人网络服务器(pws)、apache、以及其它服务器的网络服务器附加设备。你也可以使用apache网络服务器的java版本,最新的jswdk里有提供。

下载与安装你需要的组件
 
目前发布的1.2.2-001,jsdk可下载的版本是以可安装的压缩档形式。下载的档案大约是20mb,可提供完整的java发展环境,让你能建立利用标准api为核心的java解决之道。然而,你的网络服务器需要应用到jsp的唯一一件事是java编译器。要让网络服务器知道编译器的位置,将环境变量java.home设到jsdk的安装目录。如果你是在windows上安装并且接受预设目录,将这行程序代码set java.home=c:.2.2加到你的autoexec.bat档案并且重新开机。
 
在安装好jsdk之后,下载 并且安装jswdk或beta版的tomcat,以java为主的apache网络服务器。安装在哪里并不重要,重要的是你可以找到它。一般而言,它会放在上层目录,这种方式可以让你取代jswdk或 jsdk的网络服务器,不需要移动其它的网络服务器。在你安装好这个档案之后,你就可以准备发展jsp了。

在你正确的安装jswdk之后,执行startserver指令文件来激活网络服务器,预设通讯端口 为 8080。要看你在激活服务器之后是均c有正确的安装工具,你可以加载范例jsp档案中的任何一个(http://localhost:8080/examples/jsp/)。如果你能够成功的执行一个范例档案,你可以知道你已经正确的设定好软件了。如果你在激活服务器的控制台窗口看到错误讯息,那么你需要解决这个问题。最常发生的问题是没有设定(或者不正确设定)环境变量java.home。要检视目前的环境设定,在dos模式下键入set。

开始
 
解释jsp语法之前,先建立一个显示目前日期与时间的快速网页并且将它储存成sample.jsp:
 
<html>
 
<head>
 
<title>first page</title>
 
</head>
 
<body>
 
<h3>today is:
 
<%= new java.util.date() %>
 
</h3>
 
</body>
 
</html>.
 
将这个档案与你所有的html与jsp网页放在你jswdk安装目录下的网页目录里. 你可以在http://localhost:8080/sample.jsp下载此页.当你第一次参观这个网页时,网站服务器会将jsp翻译成java servlet程序代码,那你就会看到目前的日期与时间.
 
现在你已经下载,安装,并且架构好发展环境,你已经准备好要了解jsp语法与建立你自己的jsp为主的解决之道.
 
jsp语法的基本原理

安装之后,接下来我们要讨论jsp的语法.如果要偷懒,你可以下载语法卡 而如果你不熟悉 java的程序设计,你可能会想要参考sun的使用手册;然而,网站建立者不应该做太多的java发展.除了几个函式呼叫之外,出现在你jsp网页上的java程序代码应该将它减到最少;

记住这点之后,现在让我们先来看看jsp的编译器指引与指令组件,之后我们将解释javabeans与内部对象. jsp编译器指引与指令组件有五种型态.jsp 1.0之后,大部分的jsp是包含在以<% 作为开始%>作为结束的单一卷标里.新的 jsp 1.1规格已经发表了,它同时也与xml兼容.
 
jsp的编译器指引与指令组件
 
  编译器指示
 
<%@ 编译器指示 %>

  声明
 
<%! 声明 %>

  表达式
 
<%= 表达式 %>

  程序代码段/小型指令
 
<% 程序代码片段 %>

  注释
 
<%-- 注释 --%>
 
编译器指示

jsp的编译器指示是针对jsp引擎。它们并不会直接产生任何看得见的输出;相反的,它们是在告诉引擎如何处理其它的jsp网页。它们永远包含在 <%@ ?%>卷标里。两个主要的指引是 page与include。我们不会讨论taglib编译器指引但它可以在jsp1.1里用来建立自订卷标。

你几乎可以在你所有的jsp网页最上面找到page编译器指示。虽然这不是必须的,但它可以让你指定到哪里可以找到支持的java类别这类的事:
 
<%@ page import="java.util.date" %>, 

当发生java问题的事件时应该将讯息传送到哪里:
 
<%@ page errorpage="errorpage.jsp" %>, 

以及你是?需要为使用者管理通话期的信息,可能存取多个网页(稍后在javabeans里会有更多通话期的讨论):
 
<%@ page session="true" %>。 
 
  include编译器指示让你将你的内容分成几个可管理的组件,就像那些有表头或脚注的网页。所包含的网页可以是固定格式的html网页或者是jsp内容的网页:
 
<%@ include file="filename.jsp" %>。

宣告
 
jsp声明让你定义网页层的变量,来储存信息或定义支持的函式,让jsp网页的其余部分能够使用。如果你发现自己有太多的程序代码,你最好将它们放在不同的java类别里。你可以在 <%! ?%>卷标里找到声明。记住要在变量声明的后面加上分号,就跟任何有效的java叙述的形式一样: <%! int i=0; %>。

表达式
 
jsp里有表达式,评估表达式的结果可以转换成字符串并且直接使用在输出网页上。jsp运算是属于 <%= ?%> 卷标里,并不包含分号,加引号字符串的无用部分。

<%= i %>
 
<%= "hello" %> 。
 
程序代码段/小型指令文件
 
jsp程序代码片段或小型指令文件是包含在<% ?%> 卷标里。当网络服务器接受这段请求时,这段java程序代码会执行。小型指令文件可以是原始的html或xml,其内部的程序代码片段可以让你建立有条件的执行程序代码,或者只是一些使用另一块程序代码的东西。举例来说,下列的程序代码结合了表达式与小型指令文件,在h1,h2,h3,以及h4卷标里显示字符串"hello"。小型指令文件不限于一行的原始程序代码 :、

<% for (int i=1; i<=4; i++) { %>
 
<h<%=i%>>hello</h<%=i%>>
 
<% } %>。
 
注释
 
最后一个主要jsp组件是嵌入式注释。虽然你可以在你的档案里包含html注释,如果使用者检视网页的原始码,他们也会看到这些注释。如果你不要让使用者看到你的批注,你可以将它放在<%-- ?--%>卷标里:
 
<%-- 针对伺服端的注释 --%>。
 
jsp与javabean
 
虽然你可以在小型指令文件里放入一大块的程序代码,但是大多数的java程序代码是属于可以重复使用的组件,称为javabean。javabean就跟activex控件一样:它们提供已知的功能,并且是为了可随时重复使用的目的而设计的。
 
javabean的价值在于它可以经由一组特性来使用,而这些特性则提供对javabean设定的存取。以人来作范例,此人就是javabean,而他的姓名,社会福利安全号码,以及住址可以是特性。对于jsp网站,基本上你是将'javabean'动态的连接到你的网站。

假设javabean是在建立网站之前建好的,你要做的第一件事是告诉jsp网页它所需要使用javabean.这工作可以用<jsp:usebean>卷标来完成:
 
<jsp:usebean id="localname" class="com.jguru.person" scope="application" />.
 
<jsp:usebean>卷标需要你以id 属性来辨识豆子.在这里,你提供一个名称让jsp网页来辨识豆子,除了id 属性之外,你也必须告诉网页要到哪里去找这个豆子,或者是它的java类别名称。类别属性提供如何在各式方法之中找到它,最后一个需要的组件是scope 属性.有了范围属性的帮助,你可以告诉豆子,要它为单一网页(预设)[scope="page"];为一个被请求的网页[scope="request"];为通话期[scope="session"];或为整个应用程序[scope="application"]来维护它自己的信息.对于通话期范围,你可以很容易的维护jsp网页里的项目,例如购物车。

一但你宣告了javabean之后,你就可以存取它的特性来订定它。要取得一特性的值,使用<jsp:getproperty>卷标。有了<jsp:getproperty>卷标,你可以指定要使用的豆子名称(从usebean的id字段),以及你要取得值的特性。接着,真正的值就会放在输出里:
 
<jsp:getproperty id="localname" property="name" />.
 
要更改javabean的特性,你需要使用<jsp:setproperty>卷标.对这个卷标,你也需要辨认豆子以及要修正的特性,除此之外,你还需要提供新值.如果命名正确,这些可以直接经由规定的格式取得:
 
<jsp:setproperty id="localname" property="*" />; 

要从一参数取得,你必须直接命名此特性以及参数:
 
<jsp:setproperty id="localname" property="address" param="parametername" />; 
 
或是直接以名称与值来设定:
 
<jsp:setproperty id="localname" property="serialnumber" value="string" /> or <jsp:setproperty id="localname" property="serialnumber" value= <%= expression %> />.
 
有关javabean的最后一点:要让网络服务器可以找到javabean,你需要将它们的类别档案放在特别位置。对jswdk而言,最简单的地方是在安装目录里的类别目录,例如 /jswdk-1.0.1/classes.

jsp的内部对象
 
最后一个与jsp语法有关的组件叫做内部对象.在jsp小型指令文件内,你可以存取这些内部对象来与执行jsp网页的servlet环境相互作用。许多对内部对象的存取应该要简化。然而,这些是范例,它们的存取都是可接受的,要完整的利用内部对象设定则需要对最新的java servlet api有所了解。

下表列出你可以使用的内部对象。

内部对象说明

  request
 
客户端请求,此请求会包含来自get/post请求的参数
 
  response
 
网页传回客户端的响应

  pagecontext
 
网页的属性是在这里管理
 
  session
 
与请求有关的会话
 
  application
 
servlet正在执行的内容

  out
 
用来传送响应的输出流
 
  config
 
servlet的架构对象

  page
 
jsp网页本身

  exception
 
针对错误网页,未捕捉的例外
 
那么,这些是做什么的,而你应该如何使用它们呢?基本上,在你的小型指令文件里,你可以使用它们来存取执行jsp程序代码的servlet。为了避免谈论到太多servlet api 的细节,让我们来检视一些你可以利用它们来做的事: 

不必使用表达式,你可以直接存取内部out对象来打印一些东西到response:
 
<% out.println("hello"); %>. 
 
不必直接传送参数到javabean,你可以藉由请求对象来取得参数的值:
 
<% string name=request.getparameter("name"); out.println(name); %>。
 
当你以jsp写了许多的应用程序之后,如果你建立了javabeans或者发现你自己将太多的java原始码放入你的jsp档案,你需要建立支持的java类别,这样可以鼓励重复使用并且降低jsp网页转换时所需要的时间。当你需要建立java类别时,你必须:
 
将jdswk的安装目录/bin目录加到你的path。在你的autoexec.bat档案的path行的最后,加入c:.2.2/bin; 。
 
以下面的指令将jar档案复制到/jre/lib/ext目录:
 
copy c:/jswdk-1.0.1/lib/servlet.jar c:/jdk1.2.2/jre/lib/ext.
 
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!