作者:ybwen
现在的企业应用已从2-tier朝3-tier结构转移,开发者有许多不同的方法分发应用与数据到用户。JSP API是J2EE的一部分,给WEB和JAVA开发者创建各种应用提供了一个简单但强有力的机制。
JSP给开发者提供了两个重要的能力:一,它提供了访问远程数据的机制如EJB,RMI,JDBC。二,它让开发者从表现中封装和分离程序逻辑而达到最大程度的代码重用和灵活性。逻辑与表现的分离是它超越其它WEB应用结构的一个主要优势。
在这篇文章中,我会对JSP技术进行一个总体的描述,当然会有一些例子来示范JSP的优点。
首先,JSP是如何被执行的
要支持JSP,WEB服务器必须要有相应的配置。JSP支持的流行WEB服务器有:WebSphere,jwebserver,jswdk,jrun,tomcat等等。
当WEB服务器接收到一个后缀为".jsp"页的请求,它触发JSP引擎。JSP引擎首先检查JSP文件是新的或修改过的,对这两种情况,会对文件进行翻译和编译。翻译是JSP如何工作的核心:JSP引擎取JSP文件把它转换成JAVA SERVLET。然后使用标准的JVA编译器编译SERVLET,使用标准的API执行JAVA SERVLET。这个翻译步骤也是JSP为什么慢的一个原因。
写一个JSP
一个JSP的例子如下:
<%@ page language="java" info="form processing page" %>
html
body
<%! String cities[], month; %>
pThe cities selected are:/p
<%
cities = request.getParameterValues("city");
month = request.getParameter("month");
if(cities != null) {
%>
ul
<%
for(int i=0; i < cities.length; i++) {
%>
li<%= cities %>
<%
}
%>
/ul
<%
}
else {
%>
pNone selected./p
<%
}
%>
br
pand the selected month is: b<%= month %>/b/p
/body
/html
JSP标签允许在HTML中直接嵌入JAVA代码,只要这个页面被请求就会执行。
JSP标签有如下几种类型:
标签 描述 JSP 1.0 语法
Comment 允许内嵌文档注释 HTML comment: <-- comment -->
JSP comment: %--comment--%
Directive 当页面被翻译时提供给JSP引擎的一条指令
Expression 包含变量或常量,当页面被请求时会被计算
Scriptlet 包含一个代码片段,当页面被请求时会被执行
JSP 当页面被请求时执行JSP特定函数
Comments.在JSP中有两种类型的注释。标准的HTML注释--comment--,它能被发送到客户端浏览器。JSP注释%--comment--%它不会显示在HTML中。
Directives:当JSP页被翻译成SERVLET时,它指示JSP引擎处理
Declarations:定义变量,用在表达式或脚本段中。
Expressions:使用表达式,你能动态计算插入到JSP页中的值。
Scriptlets:在页面中嵌入JAVA代码块。
JSP:基于普通标签库语法。
举一个简单的FORM处理的例子
form.jsp是一个简单的JSP页,它用来处理HTML表格的请求。
form.html是一个典型的HTML FORM
form.html的源文件如下:
html
body

