使用 Tomcat 作為 Web 伺服器,透過 Servlet/JSP 動態生成 WML (Wireless Markup Language) 內容,回應 Content-Type: text/vnd.wap.wml,即可開發 WAP 應用。WAP 閘道器負責編碼轉換,對開發者透明。
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"https://www.wapforum.org/DTD/wml_1.1.xml">
<%
response.setContentType("text/vnd.wap.wml");
out.println("<wml>");
out.println("<card title=\"MobileDate\">");
out.println(" <p align=\"center\">");
out.println("Date and Time Service<br/>");
out.println("Date is: " + new java.util.Date());
out.println("</p>");
out.println("</card>");
out.println("</wml>");
%>
package com.j2medev.mingjava;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class WapServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/vnd.wap.wml");
PrintWriter out = resp.getWriter();
out.println("<?xml version=\"1.0\"?>");
out.println("<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.1//EN\"");
out.println(" \"https://www.wapforum.org/DTD/wml_1.1.xml\">");
out.println("<wml><card title=\"MobileDate\">");
out.println(" <p align=\"center\">Date and Time Service<br/>");
out.println("Date is: " + new java.util.Date());
out.println("</p></card></wml>");
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException { doGet(req, resp); }
}
<?xml version="1.0"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"https://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>WapServlet</servlet-name>
<servlet-class>com.j2medev.mingjava.WapServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>WapServlet</servlet-name>
<url-pattern>/wapservlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>
</web-app>
部署至 Tomcat webapps 目錄,使用 WinWAP 模擬器或真機訪問:
https://localhost:8088/wap/wapservlethttps://localhost:8088/wap/waptest.jsp畫面將顯示伺服器當前日期時間,驗證 WML 輸出正確。
Content-Type 為 text/vnd.wap.wml。<wml>, <card>, <p>)。web.xml 配置 WML MIME 對應(若預設未支援)。