一、JSP概念
JSP,全名java server page,是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 JSP是一种动态页面技术,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
二、JSP特点
优点:
1)一次编写,到处运行。除了系统之外,代码不用做任何更改。
2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP的局限性(只能在Windows服务器平台中)JSP的优势是显而易见的。
3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,运用了Java巨大的生命力。
4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS (Java开发的逻辑组件)来实现复杂商务功能。
缺点:
1) 与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。
2) Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的.java文件和.class文件,以及对应的版本文件。
三、简单的JSP
一个JSP页面:
<html>
<head><title>jsp教程</title></head>
<body>
<I><%out.println(“hello world”);%></I>
</body></html>
它将输出“hello world”。
看上去,与ASP甚至是Html没什么区别,与Html的区别在于多了脚本<% out.println(“hello world”); %>,与ASP的区别在于这行脚本不是VBScript。正因为如此,out.println(“hello world”)是JSP特有的语法,正是JSP的区别所在。
四、JSP基本语法
JSP的基本语法主要由编译指引和指令组件构成,即,几乎由一对<% %>括号或者<jsp:xxx> </jsp:xxx>的标签包含起来,剩下代码部分几乎是由Html(含JavaScript等)标签代码组成。
下表是JSP 1.0基本语法:
JSP 元素 | 语法 | 解释 |
JSP Expression | <%= 表达式 %> | Expression 用于计算并用于输出。 <jsp:expression>表达式</jsp:expression>,可使用的预定义的变量有request, response, out, session, application, config, and pageContext(在Sriptlets中也可使用)。 |
JSP Scriptlet | <% 代码 %> | 插入用于服务的代码。 <jsp:scriptlet>代码</jsp:scriptlet> |
JSP Declaration | <!% 代码 %> | 属于Servlet部分的代码但并不是服务方法。 <jsp:declaration>代码</jsp:declaration> |
JSP page Directive | <%@ page att=”val” %> | 指向Servlet引擎的路径。 <jsp:directive.page att="val"\>. 以下是其合法的属性(缺省值加粗): import="package.class" contentType="MIME-Type" isThreadSafe="true|false" session="true|false" buffer="sizekb|none" autoflush="true|false" extends="package.class" info="message" errorPage="url" isErrorPage="true|false" language="java" |
JSP include Directive | <%@ include file =”URL” %> | 当JSP page被翻译成Servlet 时将被包含进去的本地系统上的文件。 <jsp:directive.include file=”URL”\> 这个URL必须是相对的。当页面被请求时才用 “jsp:include action”调入。 |
JSP 注释 | <%-- 注释--%> | 当JSP 转换为Servlet 时将被忽略。 <-- 注释 --> |
The JSP:include Action | <jsp:include page=”relative URL” flush=”true”/> | 在页面被请求(Requested)时调入文件。 如果您想要在页面被转化(Translated)时将文件包含进来,则,请使用上面所提到的directive来代替。警告:在一些服务器上(Servers),被包含的文件只能是HTML或JSP,一般以文件的后缀名来判定。 |
The jsp:useBean Action | <jsp:useBean att=val*/>或<jsp:useBean att=val*> ….. </jsp:useBean> |
寻找或生成一个Java Bean. 可能的属性是: id="name" scope="page|request|session|application" class="package.class" type="package.class" beanName="package.class" |
The jsp:setProperty Action | <jsp:setProperty att=val*/> | 设置bean的属性,通过明确的指定或使用request得到的参数。 合法的属性: name="beanName" property="propertyName|*" param="parameterName" value="val” |
The jsp:getProperty Action | <jsp:getProperty name=”propertyName” value=”val”/> | 检索并输出bean的属性。 |
The jsp:forward Action | <jsp:forward page=”relative URL”/> |
向前请求(request)另一个页面。 |
The jsp:plugin Action | <jsp:plugin attribute=”value”*> </jsp:plugin> |
生成特定的浏览器的OBJECT 或EMBED标签,用来明确运行Applet所 使用的JAVA插件(plugin)。 |