Listing 1

<?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="from" title="Please Login">

 <p>

 Username: <input name="username" type="text" value=""/>

 Password: <input name="password" type="password" value=""/>

 </p> 

<do type="accept" label="Do Login" >

 <go href="/struts-wap/logon.do">

 <postfield name="username" value="$(username)" />

 <postfield name="password" value="$(password)" />

 </go></do>

 </card>

</wml>

Listing 2

The Logn Page (logon.jsp)

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

<%@ taglib uri="/Web-Inf/struts-logic.tld" prefix="logic" %>

<%@ taglib uri="/Web-Inf/struts-wml.tld" prefix="wml" %>

<wml:wml>

<wml:form action="/logon.do" type="logon.LogonForm">

<wml:card id="from" title="Please Login" label="Do Login">

<p>

Username: <wml:input type="text" property="username" value=""/>

Password: <wml:input type="password" property="password" value=""/>

</p>

</wml:card>

 </wml:form>

</wml:wml>

 Look at the first line:

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

Listing 3

package ianwyhere.samples.login;

import ianywhere.framework.*;

public class Login extends Application

{

protected boolean create() 

throws Exception 

{

 return true; 

private void unhandledEvent(String s, String s1, Object obj)

 { 

}

 public Login() 

addFilter(new FormLoginFilter(new iAWSUserDatabase()));

public ResponseGenerator index()

{

return _generator; 

private static ResponseGenerator _generator = 

new StaticTextGenerator("Login successful"); 

}