当前位置:编程学习 > wap >>

JSP技术在WAP开发中的应用

答案: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("<br>");

          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。

了解了以上基本规则,我们下面给出一个利用JSP向WAP浏览器显示“Hello from script code!”信息的简单程序,通过该程序大家可以进一步认识利用JSP开发WML页面的具体方法。

<!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>

     <card>

          <do type="accept">

              <go href=>
          </do>

          <p>JSP Test:<br/>

              Press accept to continue!<br/>

          </p>

     </card>
     <card>
          <do type="prev">

              <prev/>

          </do>

     <%

          out.println("<p>");

              out.println("Hello from script code!<br/>");

          out.println("</p>");
     %>

     </card>

</wml>


11.6.2 程序举例
我们下面利用JSP和WML实现一个为移动用户定时更新约会的例子。该例的应用程序共包括两个页面。第一个页面的文件是pick_appointment.jsp,它提供了一个选择卡片,当用户选择了其中某一个约会时间时,浏览器就会带着本次约会的ID号进入到第二个页面,即文件名为show_appointment_data.jsp的页面。我们在第二个页面编写了两个卡片,其中第一个卡片用于显示会面的时间,第二个卡片用于显示数据输入,让用户通过输入ID而取消约会。

程序中动态的约会数据是通过Java Bean的实例来取得的,具体过程其实是通过JDBC连接到数据库的过程。取消约会的操作是通过servlet实现的。由于用户可能随时取消某个约会,所以我们需要对pick_appointment.jsp页面进行定时刷新。下面我们就给出这一应用程序的源程序。


pick_appointment.jsp页面文件的程序代码如下:

<%@ page language="java" contentType="text/vnd.wap.wml" %>

<jsp:useBean>



<%!

// 下面创建针对每次约会的选项<option>元素

private String getOptions(mwebber.samples.AppointmentBean appointmentBean) {

     StringBuffer sb = new StringBuffer();

     int[] appointmentIDs = appointmentBean.getAppointmentIDs();

     for(int i=0; i<appointmentIDs.length; i++) {

          sb.append("<option onpick=\"show_appointment_data.jsp?id=");

          sb.append(i);

          sb.append("\">");

          sb.append(appointmentBean.getAppointmentTime(i));

          sb.append("</option>");

     }

     return sb.toString();

}

%>



<%! String strXMLPrologue = ""; %>



<%-- WML内容开始 --%>

<%= strXMLPrologue %>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/ wml_1.1.xml">

<wml>

     <card>

          <!-- 每分钟刷新一次卡片组 -->

          <onevent type="ontimer">

              <go href=>
          </onevent>



          <timer value="600"/>

          <!-- 回显卡片 -->

          <do type="prev">

              <prev/>

          </do>
          <!-- 为要选择约会而显示"select" -->

          <p>

              <select title="Appointments">

                   <%= getOptions(appointmentBean) %>

              </select>

          </p>

     </card>

</wml>

<%-- WML内容结束 --%>

show_appointment_data.jsp页面文件的程序代码如下:

<%@ page language="java" contentType="text/vnd.wap.wml" %>
<jsp:useBean>

<%

// 使用request对象的方法获取"id"参数的值

int intAppointmentID = Integer.parseInt(request.getParameter("id"));

%>

<%! String strXMLPrologue = ""; %>




<%-- WML内容开始 --%>

<%= strXMLPrologue %>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/ wml_1.1.xml">

<wml>

     <card>

          <p align="center">

           

[page_break]    <b>
                   <%= appointmentBean.getAppointmentTime(intAppointmentID) %>

              </b>

          </p>



          <p>

              <br/>

                   <%= appointmentBean.getAppointmentDetails(intAppointmentID) %>

              <br/>

              <a href=>
              <a href=>
          </p>

     </card>



     <card>

          <!--设置向服务器发送输入数据的选择项 -->

          <do type="accept">

              <go href=>
                   <postfield>

              </go>

          </do>
          <p>

              <input>

          </p>

          <p>
              <a href=>
              <br/>             <a href=>
          </p>

     </card>
</wml>

<%-- WML内容结束 --%>

上一页  [1] [2] 

上一个:应用Java技术开发WAP应用程序
下一个:Perl在WAP网站中应用实例一谈

更多图片编程知识:
更多wap疑问解答:
为什么程序都退出了还可以收到推送?如果大多设备都可以推送那运营商怎么办?
qt 4.7 sqlserver2000 存储过程调用
Android FrameBuffer读屏幕30秒后mmap失败
联通粗定位用java程序如何来请求和接受数据
为什么QT运行Android平台的程序时,mouseMoveEvent事件响应的间隔时间很长??????????
android与PC蓝牙通讯
指定大小的label 内容可变,如果内容超出label的宽度,将未能显示的部分显示在另一个label上
android如何通过wifi连接无线打印机
运行程序,release目录下产生一个乱码文件夹
分享个某机构最新安卓资料,自己验证了
求助:QT5.0 没有QPrinter吗
直接调用 openmax IL 做 h264 解码, 有人会吗?
android在锁屏界面之上添加一个View
Bada模拟器如何访问pc机上的web
18396828106@163.com
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,