WAP和Servlet交互

 

WAP介绍

      WAP 是一种用于在无线终端(比如数字移动电话)进行信息服务的主要的标准。

WAP 标准基于因特网标准(HTML、XML 以及 TCP/IP)。它包括 WML 语言规范、WMLScript 规范以及无线电话应用接口规范(WTAI)。

WAP 由 WAP 论坛(WAP forum )发布,被爱立信、摩托罗拉、诺基亚以及 Unwired Planet 创建于 1997 年。论坛的成员目前占据着超过 90% 的全球手机市场,同时又是领先的基础设施提供商、软件提供商及其他机构。您可以在我们的 WAP 论坛页面找到有关 WAP 论坛的更多信息。

 

WAP的学习

 

       wap的学习曲线较低,类似于html和jsp。我们可以参考W3CSchool的教程来学习。具体的网址为:

http://www.w3school.com.cn/wap/index.asp

 

WAP前台

     wap前台是一个wml文件,有一定的页面规范。可以参看一个页面,其主要功能为:显示下拉框,点击查询后请求后台Servlet,在后台截获参数,并输出。代码如下:

<?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="Order" title="Query Inventory"> 
  <p> 
  <select name="Items" title="Items">
   <option value="Books">Books</option>
   <option value="Music">Music</option>
   <option value="Video">Video</option>
   <option value="Software">Software</option>
  </select>
  </p> 
  <do type="accept" label="Query">
   <go href="http://localhost:8080/TestWap/wapservlet" method="get">
    <postfield name="Items" value="$(Items)"/>
   </go>
  </do>
 </card> 
</wml>

 

WAP和JSP结合

         结合的原因主要是利用jsp的语法来进行页面的展现也就是使用(<% %>)。首先建立jsp页面,修改该页面,加入如下信息:

<?xml version="1.0"?>
<%@page contentType="text/vnd.wap.wml; charset=utf-8"%>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

         或者

<%@page contentType="text/vnd.wap.wml; charset=gb2312"%><?xml version="1.0"?>//这里不能换行
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

 

通过结合jsp后,我们就可以使用jsp的语法进行页面上简单的逻辑处理,跟纯的jsp页面是一样的,不过是在jsp页面中嵌入了wap内容,并指定上下文类型为wap。


Servlet后台

      

package com.bj.test;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class WapServlet extends HttpServlet
{

    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException
    {
        String select = request.getParameter("Items");
        System.out.println(select);
    }

    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException
    {
        doGet(request,response);
    }
}


 

Web.xml中配置

<servlet>
  <servlet-name>Wapservlet</servlet-name>
  <servlet-class>com.bj.test.WapServlet</servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>Wapservlet</servlet-name>
  <url-pattern>/wapservlet</url-pattern>
 </servlet-mapping>


总结

       wap只是一种手机上页面,同html,jsp,asp的理解上可以认为一致(它们的确不同)。那么这样我们就可以将jsp,html中技术完全迁移到wap上,例如:jstl,velocity等等页面渲染引擎。学会知识的迁移。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章