WAP建站入门教程
来源:yesky
被读3031次
转载请注明出处-中国设计秀-cnwebshow.com
使用PHP动态输出WML页面
请先看一个简单的PHP例子:
<?php
header ("Content-Type: text/vnd.wap.wml");
echo "<?xml version="1.0"?>n"
?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" http://www.wapforum.org/DTD/wml_1.1.xml">
<!-- Source Generated by WML Deck Decoder -->
<wml>
<card id=”main” title=”PHP WML”>
<p>
<?php
echo "hello,worldn";
?>
</p>
</card>
</wml>
header ("Content-Type: text/vnd.wap.wml");
echo "<?xml version="1.0"?>n"
?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" http://www.wapforum.org/DTD/wml_1.1.xml">
<!-- Source Generated by WML Deck Decoder -->
<wml>
<card id=”main” title=”PHP WML”>
<p>
<?php
echo "hello,worldn";
?>
</p>
</card>
</wml>
启动Nokia WAP Toolkit,在“Go”下选择“Open Location”,并输入URL地址(图2-30):
图 2-30 输入URL地址
使用Nokia WAP Toolkit测试结果显示如下(图2-31):
图 2-31 测试结果显示
下面演示的是如何使用WML与PHP实现动态交互。演示的内容是:用户在WML页面中输入用户名和密码,然后提交给服务器端;服务器端将动态生成WML显示用户的输入,并返还到客户端。整个演示包括登录页面logon.wml和服务端脚本程序logon.php。
logon.wml
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<!-- Source Generated by WML Deck Decoder -->
<wml>
<card>
<p>
User:<input name="user" value="admin"/>
Password:<input name="password" value="whoami"/>
</p>
<do type="accept">
<go href="http://127.0.0.1/php4/logon.php">
<postfield name="user" value=" $(user)"/>
<postfield name="password" value=" $(password)"/>
</go>
</do>
</card>
</wml>
logon.php
<?php
header ("Content-Type: text/vnd.wap.wml");
echo "<?xml version="1.0"?>n"
?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<!-- Source Generated by WML Deck Decoder -->
<wml>
<card>
<p>
<?php
echo "Hello ! $(user) <br/>n";
echo "Password is $(password) <br/>n";
?>
</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">
<!-- Source Generated by WML Deck Decoder -->
<wml>
<card>
<p>
User:<input name="user" value="admin"/>
Password:<input name="password" value="whoami"/>
</p>
<do type="accept">
<go href="http://127.0.0.1/php4/logon.php">
<postfield name="user" value=" $(user)"/>
<postfield name="password" value=" $(password)"/>
</go>
</do>
</card>
</wml>
logon.php
<?php
header ("Content-Type: text/vnd.wap.wml");
echo "<?xml version="1.0"?>n"
?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<!-- Source Generated by WML Deck Decoder -->
<wml>
<card>
<p>
<?php
echo "Hello ! $(user) <br/>n";
echo "Password is $(password) <br/>n";
?>
</p>
</card>
</wml>
启动Nokia WAP Toolkit,在“Go”下选择“Open Location”,并输入URL地址(图2-32):
图 2-32 输入URL地址
在模拟器上出现(图2-33):
图 2-33 登录界面
在确定输入后(图2-34):
图 2-34 从服务器端返回的处理结果
使用Servlet动态输出WML页面
下面有两个简单的例子程序,先看第一个简单例子:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class WapServlet extends HttpServlet
{
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, java.io.IOException
{
response.setContentType("text/vnd.wap.wml");
PrintWriter out = response.getWriter();
xmlHeader(out);
out.println("<wml>");
out.println("<card title = "JavaTest">");
out.println("<p>Hello! This comes from a servlet!</p>");
out.println("</card>");
out.println("</wml>");
}
public void xmlHeader(PrintWriter out)
{
out.println("<?xml version="1.0"?>");
out.println("<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "+""http://www.wapforum.org/DTD/wml_1.1.xml">");
}
}
import javax.servlet.*;
import javax.servlet.http.*;
public class WapServlet extends HttpServlet
{
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, java.io.IOException
{
response.setContentType("text/vnd.wap.wml");
PrintWriter out = response.getWriter();
xmlHeader(out);
out.println("<wml>");
out.println("<card title = "JavaTest">");
out.println("<p>Hello! This comes from a servlet!</p>");
out.println("</card>");
out.println("</wml>");
}
public void xmlHeader(PrintWriter out)
{
out.println("<?xml version="1.0"?>");
out.println("<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "+""http://www.wapforum.org/DTD/wml_1.1.xml">");
}
}
下面是Nokia提供的一个例子程序:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
/*
* HelloWorldServlet - a very simple servlet
*/
public class HelloWorld extends HttpServlet
{
String m_text;
// the initialization parameter is read during
// the initialization of the servlet
public void init(ServletConfig config) throws ServletException
{
super.init(config);
m_text = config.getInitParameter("text");
if (m_text == null)
{
m_text = "This is a simple test servlet.";
}
}
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException
{
PrintWriter out = response.getWriter();
out.println("<?xml version="1.0"?>");
out.println("<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML1.1//EN""http://www.wapforum.org/DTD/wml_1.1.xml">");
out.println("<wml>");
out.println("<card id="card1" title="Hello World">");
out.println("<p>");
out.println(m_text);
out.println("</p>");
out.println("</card>");
out.println("</wml>");
// Remember to close the out object
out.close();
}
public String getServletInfo()
{
return "The simple HelloWorld servlet.";
}
}
import javax.servlet.*;
import javax.servlet.http.*;
/*
* HelloWorldServlet - a very simple servlet
*/
public class HelloWorld extends HttpServlet
{
String m_text;
// the initialization parameter is read during
// the initialization of the servlet
public void init(ServletConfig config) throws ServletException
{
super.init(config);
m_text = config.getInitParameter("text");
if (m_text == null)
{
m_text = "This is a simple test servlet.";
}
}
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException
{
PrintWriter out = response.getWriter();
out.println("<?xml version="1.0"?>");
out.println("<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML1.1//EN""http://www.wapforum.org/DTD/wml_1.1.xml">");
out.println("<wml>");
out.println("<card id="card1" title="Hello World">");
out.println("<p>");
out.println(m_text);
out.println("</p>");
out.println("</card>");
out.println("</wml>");
// Remember to close the out object
out.close();
}
public String getServletInfo()
{
return "The simple HelloWorld servlet.";
}
}
使用JSP动态输出WML页面