您的位置:主页 >>  技术园地 >>  教程实例


JSP简介(一)


JSP(IAVA SERVER PAGES)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,其在动态网页的建设中有其强大而别特的功能,现介绍如下:

一、JSP的优点

1,将内容的生成和显示进行分离
使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。
在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。

2,生成可重用的组件
绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。

3,采用标识简化页面开发
Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。 通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。

4, 将内容的生成和显示进行分离
与SERVLETS相比,JSP能提供所有SERVLETS功能,但它比用println书写和修改HTML更方便。此外,你可以更明确的进行分工,WEB页面设计人员编写HTML,只需要留出地方让SERVLETS程序员插入动态部分即可。

5, 由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。

6 作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。

二、JSP的运行环境的安装

1、要使WEB 服务器支持JSP首先需要装JAVA的开发环境JDK,现其最高版本为1.2.2,其可在java.sun.com下载。以Window平台下为例,下载jdk1.2.2 for win包,解压至c:\jdk1.2.2目录下即可。

2、 其次是支持jsp引擎的WEB服务器或jsp引擎,如Java Web Server 2.0,resin。现介绍如下:
GNU JSP http://www.klomp.org/gnuisp GPL
JavaServer Web Development kit http://java.sun.com/products/jws JavaSoft的Web Server系统
Resin http://www.caucho.com 支持javascript,java,servlet
Sjsp http//web.telecom.cz/sator/jsp/
JRUN http://www.livesoftware.com livesoftware是Servlet主要的技术领导
Orion http://orion.evermind.net
ServletExec http://www.newatlanta.com
websphpere http://www.software.ibm.com/webservers
JServ-Java Apache http://java.apache.org 必须与Apache Web Server配合
在这里我们使用免费servlet开发套件Resin,其最高版本为1.2。它的功能非常的强大支持javascript、java、servlet,在运行时能自动编译新的和修改过的java源程序.从http://www.caucho.com下载其压缩包解压,这里我把其解压于c:盘下。然后进入c:\resin1.2\bin中运行setup.exe设置resin的工作目录为c:\resin1.2。 最后运行httpd.exe启动Web服务器,打开浏览器,在地址栏输入:http://localhost:8080,你将看见到resin的欢迎界面。需要说明的是resin的web服务器的根目录是resin目录下的doc目录。

三、JSP指令和脚本元素

1,JSP指令是为JSP引擎而设计的。他们并不直接产生任何可见输出,而只是告诉引擎如何处理其余JSP页面。这些指令始终被括在 “<%@ ?%>”标记中。两个最重要的指令是“pagePage”和“Include”。几乎在所有JSP页面顶部都会看到“Page”指令。尽管不是必须的,但它可以让你指定:到何处查找起支持作用的Java类别:
<%@ page import="java.util.Date" %>,
出现Java运行问题时,将网上冲浪者引向何处:
<%@ page errorPage="errorPage.jsp" %>,
还有你是否需要管理用户的会话级信息,这些信息可能来自多个网页述:
<%@ page session="true" %>.
“Include”指令可以把你的内容分成更多可管理的元素,比如包括一个普通页面页眉或页脚的元素。包含的网页可以是一个固定的HTML 页面或更多的JSP内容:
<%@ include file="filename.jsp" %>

2 JSP声明用来让你定义页面级变量,以保存信息或定义JSP页面的其余部分可能需要的支持方法。如果你发现代码太多,通常最好把它们写成一个独立的Java类别。声明一般都在“<%! ?%>”标记中。一定要以分号(;)结束变量声明,因为任何内容都必须是有效的Java语句:
<%! int i=0; %>。

3,有了JSP表达式,表达式评估结果会被转换成一个字符串,并且被直接包括在输出页面之内。JSP 表达式包含在“<%= ?%>” 标记中,没有分号,除非在加引号的字符串部分使用分号。
<%= i %>
<%= "Hello" %> .

4 代码片段/脚本片段(Scriptlets) JSP代码片段或脚本片段是嵌在“<% ?%>”标记中的。这种Java代码在Web服务器响应请求时就会运行。在脚本片段周围可能是原始的HTML或XML语句,在这些地方,代码片段可以使你创建条件执行代码,或要用到另外一段代码的代码。例如,以下的代码组合使用表达式和代码片段,显示H1、H2、H3和H4标记中的字符串“Hello”。代码片段并不局限于一行源代码:
<% for (int i=1; i<=4; i++) { %>
<H<%=i%>>Hello</H<%=i%>>
<% } %>.

5 在JSP中嵌入式注释。尽管你始终可以在文件中加入HTML注释,但用户在查看页面源代码时会看到这些注释。如果你不想让用户看到它,你就应该将其嵌入“<%-- ?--%>” 标记中:
<%-- comment for server side only --%>.
JSP还有三类主要的元素:Scripting elements,Directives,和 Actions.使用Scripting elements您可以定义最终转换为Servlet的部分,Directives 使您可以控制这个Servlet的整体结构,而Actions使您可以指定可重用的已有组件,另外,还可控制JSP引擎的运行。

四 简单应用

好现在以几个简单的例了来应用以上所介如的:

例一 hello.jsp在浏览器上输出"hello world".
<HTML>
<HEAD>
<TITLE>Simple Example</TITLE>
</HEAD>
<BODY>
<% out.println("Hello, world!"); %>
</BODY>
</HTML>

例二、dates.jsp在浏览器上输出服务器端取出的时间.
<HTML>
<HEAD>
<TITLE>JSP Date Demo Page</TITLE>
</HEAD>
<BODY>
<H1>JSP Date Demo Page</H1>
The current date is
<%
java.util.Date date = new java.util.Date();
  out.println(date); 
%>. 
<br>expression syle <%=date%>
</BODY> 
</HTML> 
把hello.jsp和dates.jsp放入resin的doc目录下,然后在浏览器中运行:http://localhost:8080/hello.jsp 和 http://localhost:8080/dates.jsp即可见结果
好了这次就介绍到这里了,通过上面的介绍相信大家对jsp有了一个整体的认识吧.在简介二里在做进一步的讲解。

清风·Yesky