11.6 JSP技术在WAP开发中的应用
使用JSP(Java Server API)技术可以简单而快速地在WAP终端上生成动态的WAP页面,而且能够利用JSP的诸多功能,实现复杂的WAP应用。我们仍以WML为例,讲解JSP技术在WAP开发中的应用。
11.6.1 基本规则
使用JSP技术前,首先要建立它的开发环境。一般是在Windows NT上安装并建立Java Server Web Development Kit(JSWDK),其版本可为1.01版或更高的版本。
为了测试和浏览JSP实现的WAP应用,还需要安装WAP模拟器(浏览器),如Nokia WAP Toolkit,并安装Java Runtime Environment (JRE) 1.2.2或以上版本。
完成以上准备工作之后,就可以按照以下的基本规则使用JSP编写WML程序了。
(1) WML的标签和语句均可直接写在JSP程序中。
(2) 如果想使用JSP来处理WML的标签和语句,则需要使用“<%”和“%>”引起来,格式为:
<%
……(JSP编写的WML语句行);
%>
例如,以下几行语句就是利用JSP的out.println来输出WML的标签和语句:
<%
out.println("<p>");
out.println("Hello from script code!<br/>");
out.println("</p>");
%>
(3) JSP编写的WML语句要用引号(" ")引起来,然后再用括号括起来,而且后面还要加上分号( ; ),格式为:
JSP对象.方法/关键字(" ……WML标签或语句行 ");
例如,下面就是反映JSP书写WML语句格式的例子:
out.println("Hello from script code!<br/>");
(4) WML的文件类型可以使用JSP的response对象进行声明,也可以在声明页面语言时一块儿声明,它们的格式分别如下:
<% response.setContentType("text/vnd.wap.wml"); %>
或 <%@ page language="java" contentType="text/vnd.wap.wml" %>
(5) 最后的程序文件保存时要采用“.jsp”的扩展名,即保存为JSP的程序文件。JSP将被编译成Java源文件,最后成为servlet。
例子
<%@page contentType="text/vnd.wap.wml" import="java.util.*" %>
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="Example" title="Example JSP/WML">
<p align="center">Data current as of <%= new Date() %></p>
<p>
<a title="Data1" href="#data1">More Details</a>
</p>
</card>
<card id="data1" title="DataOne">
<p>This is the card called DataOne</p>
</card>
</wml>
例子
<?xml version="1.0" ?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<%--greeting.jsp--%>
<% response.setContentType ("text/vnd.wap.wml"); %>
<wml>
<card id="start" title="Hello">
<p>
What is your name?
<input name="Name" type="text" />
<do type="accept">
<go href="#next" />
</do>
</p>
</card>
<card id="next" title="Hello">
<p>
<%
for (int i=0; i<2; i++)
out.println ("Good-day, $(Name)! <br />");
%>
</p>
</card>
</wml>
例子(jsp使用数据库,wml显示)
<?xml version="1.0" ?>
<%@ page language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql_rt" %>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<% response.setContentType ("text/vnd.wap.wml"); %>
<wml>
<sql:setDataSource var="datasource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test"
user="root" password="12345"/>
<sql:query var="items" dataSource="${datasource}">
SELECT id, name, city FROM employee
</sql:query>
<card id="start" title="Hello">
<table border="1">
<th>name</th><th>city</th>
<c:forEach var="row" items="${items.rows}">
<tr>
<td><c:out value="${row.name}"/></td>
<td><c:out value="${row.city}"/></td>
</tr>
</c:forEach>
</table>
</card>
</wml>
简单的数据表test employee
name city
tom harbin
jerry changchun
cat shenyang
rat tieling
使用JSP(Java Server API)技术可以简单而快速地在WAP终端上生成动态的WAP页面,而且能够利用JSP的诸多功能,实现复杂的WAP应用。我们仍以WML为例,讲解JSP技术在WAP开发中的应用。
11.6.1 基本规则
使用JSP技术前,首先要建立它的开发环境。一般是在Windows NT上安装并建立Java Server Web Development Kit(JSWDK),其版本可为1.01版或更高的版本。
为了测试和浏览JSP实现的WAP应用,还需要安装WAP模拟器(浏览器),如Nokia WAP Toolkit,并安装Java Runtime Environment (JRE) 1.2.2或以上版本。
完成以上准备工作之后,就可以按照以下的基本规则使用JSP编写WML程序了。
(1) WML的标签和语句均可直接写在JSP程序中。
(2) 如果想使用JSP来处理WML的标签和语句,则需要使用“<%”和“%>”引起来,格式为:
<%
……(JSP编写的WML语句行);
%>
例如,以下几行语句就是利用JSP的out.println来输出WML的标签和语句:
<%
out.println("<p>");
out.println("Hello from script code!<br/>");
out.println("</p>");
%>
(3) JSP编写的WML语句要用引号(" ")引起来,然后再用括号括起来,而且后面还要加上分号( ; ),格式为:
JSP对象.方法/关键字(" ……WML标签或语句行 ");
例如,下面就是反映JSP书写WML语句格式的例子:
out.println("Hello from script code!<br/>");
(4) WML的文件类型可以使用JSP的response对象进行声明,也可以在声明页面语言时一块儿声明,它们的格式分别如下:
<% response.setContentType("text/vnd.wap.wml"); %>
或 <%@ page language="java" contentType="text/vnd.wap.wml" %>
(5) 最后的程序文件保存时要采用“.jsp”的扩展名,即保存为JSP的程序文件。JSP将被编译成Java源文件,最后成为servlet。
例子
<%@page contentType="text/vnd.wap.wml" import="java.util.*" %>
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="Example" title="Example JSP/WML">
<p align="center">Data current as of <%= new Date() %></p>
<p>
<a title="Data1" href="#data1">More Details</a>
</p>
</card>
<card id="data1" title="DataOne">
<p>This is the card called DataOne</p>
</card>
</wml>
例子
<?xml version="1.0" ?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<%--greeting.jsp--%>
<% response.setContentType ("text/vnd.wap.wml"); %>
<wml>
<card id="start" title="Hello">
<p>
What is your name?
<input name="Name" type="text" />
<do type="accept">
<go href="#next" />
</do>
</p>
</card>
<card id="next" title="Hello">
<p>
<%
for (int i=0; i<2; i++)
out.println ("Good-day, $(Name)! <br />");
%>
</p>
</card>
</wml>
例子(jsp使用数据库,wml显示)
<?xml version="1.0" ?>
<%@ page language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql_rt" %>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<% response.setContentType ("text/vnd.wap.wml"); %>
<wml>
<sql:setDataSource var="datasource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test"
user="root" password="12345"/>
<sql:query var="items" dataSource="${datasource}">
SELECT id, name, city FROM employee
</sql:query>
<card id="start" title="Hello">
<table border="1">
<th>name</th><th>city</th>
<c:forEach var="row" items="${items.rows}">
<tr>
<td><c:out value="${row.name}"/></td>
<td><c:out value="${row.city}"/></td>
</tr>
</c:forEach>
</table>
</card>
</wml>
简单的数据表test employee
name city
tom harbin
jerry changchun
cat shenyang
rat tieling