JSP技术在WAP开发中的应用
wap吧
全部回复
仅看楼主
level 2
wapjay 楼主
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("
");           out.println("Hello from script code!
");      out.println("
"); %> (3) JSP编写的WML语句要用引号(" ")引起来,然后再用括号括起来,而且后面还要加上分号( ; ),格式为: JSP对象.方法/关键字(" ……WML标签或语句行 "); 例如,下面就是反映JSP书写WML语句格式的例子: out.println("Hello from script code!
"); (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页面的具体方法。 <% response.setContentType("text/vnd.wap.wml"); %>
    
         
              
                   
JSP Test:
              Press accept to continue!
                   
         
              
               <%           out.println("
");               out.println("Hello from script code!
");           out.println("");      %>      11.6.2 程序举例 我们下面利用JSP和WML实现一个为移动用户定时更新约会的例子。该例的应用程序共包括两个页面。第一个页面的文件是pick_appointment.jsp,它提供了一个选择卡片,当用户选择了其中某一个约会时间时,浏览器就会带着本次约会的ID号进入到第二个页面,即文件名为show_appointment_data.jsp的页面。我们在第二个页面编写了两个卡片,其中第一个卡片用于显示会面的时间,第二个卡片用于显示数据输入,让用户通过输入ID而取消约会。 程序中动态的约会数据是通过Java Bean的实例来取得的,具体过程其实是通过JDBC连接到数据库的过程。取消约会的操作是通过servlet实现的。由于用户可能随时取消某个约会,所以我们需要对pick_appointment.jsp页面进行定时刷新。下面我们就给出这一应用程序的源程序。 
2008年02月13日 15点02分 1
level 2
wapjay 楼主
pick_appointment.jsp页面文件的程序代码如下: <%@ page language="java" contentType="text/vnd.wap.wml" %>
<%! // 下面创建针对每次约会的选项
元素 private String getOptions(mwebber.samples.AppointmentBean appointmentBean) {      StringBuffer sb = new StringBuffer();      int[] appointmentIDs = appointmentBean.getAppointmentIDs();      for(int i=0; i
");           sb.append(appointmentBean.getAppointmentTime(i));           sb.append("");      }      return sb.toString(); } %> <%! String strXMLPrologue = ""; %> <%-- WML内容开始 --%> <%= strXMLPrologue %>
    
                   
              
                   
                   
              
                             
              
                   <%= getOptions(appointmentBean) %>                               <%-- WML内容结束 --%> show_appointment_data.jsp页面文件的程序代码如下: <%@ page language="java" contentType="text/vnd.wap.wml" %>
<% // 使用request对象的方法获取"id"参数的值 int intAppointmentID = Integer.parseInt(request.getParameter("id")); %> <%! String strXMLPrologue = ""; %> <%-- WML内容开始 --%> <%= strXMLPrologue %>
    
         

2008年02月13日 15点02分 2
level 2
wapjay 楼主
 
                   <%= appointmentBean.getAppointmentTime(intAppointmentID) %>                         
         
<%= appointmentBean.getAppointmentDetails(intAppointmentID) %>
Check off this appointment
              Back to appointments list                    
                   
              
                  
                                  
              
                   
              Back to appointment data
Back to appointments list               <%-- WML内容结束 --%>
2008年02月13日 15点02分 3
level 2
wapjay 楼主
以上是个标准得JSP文件。大家可以把中间源码换掉研究下。
2008年02月13日 15点02分 4
1