}
result+="\n"+tool.getmessage();
dos.writeUTF(result);
dos.close();
有过开发经验的人都知道,在做JAVA开发时传输中文常常遇到乱码现象,这里我在CONTENT_TYPE里面编码方式设置成GB2312,并且在客户端发送数据时也把编码设置成GB2312,同时采用writeUTF方法,成功解决中文问题。
Web端的实现
本系统Web端采用Struts框架,严格遵循MVC模式,用户提交信息后先放到FormBean中暂存,然后在Action中实现业务方法的调用,实现代码的高度封装性和分离性。本系统只采用了一个Action作为中央控制器,通过参数关键字判断是那种查询,同时查询页面和结果页面为同一页面,在Action中查询完毕后统一放入Collection中传递到结果页面中,使得页面重用性大大提高。首页显示图7所示。
图7 首页图样
查询页面显示如图8所示。
图8 查询页面
Action作为中央控制器负责执行判断用户输入和查询,以线路查询为例,核心代码如下:
判断用户提交内容:
//如果用户按公交车号查询
if (busno != null)
try
{
busnoresult = dealbus.searchbusline(busno) ;
httpServletRequest.setAttribute("buslineresult" , busnoresult) ;
dealActionForm.setBusno(null);
busno=null;
result=null;
//返回“buslineresult”对应的页面,具体配置在struts-configure里面设置
return (actionMapping.findForward("buslineresult")) ;
}
catch (Exception e)
{
//将错误信息放到request中传递到错误页面
httpServletRequest.setAttribute("errorMsg", e.getMessage());
e.printStackTrace() ;
return (actionMapping.findForward("error")) ;
}
WAP端的实现
WAP端采用WML(Wireless Markup Language - 无线标记语言)编写,无限标记语言WML(Wireless Markup Language)是一种基于扩展标记语言XML(Extension Markup Language)的语言,是XML的子集。它可以显示各种文字、图像等数据,是由WAP论坛(http://www.wapforum.org)提出并专为无线设备用户提供交互界面而设计的,目前版本为1.1版。这些无线设备包括移动电话,呼机和个人数字助理PDA(Personal Digital Assistants)等。
WAP模块主要有首页,功能选择页面,线路查询页面,站站查询页面等组成,部分页面显示如下:
功能选择页面,让用户选择使用哪种方式进行查询,如图9所示。
图9 功能选择页面
客户端下载页面,有JAR和JAD可供选择,以兼容支持不同的手机,如图10所示。
图10 客户端下载页面
详细原理以线路查询为例,线路查询提交代码如下:
<go href="selectNumber.jsp" method="post">
<postfield name="busno" value="$(busno:n)"/>
</go>
其中$(busno:n)为变量的表示方法,:n的意思为变量中没有ESCAPE字符,即不需要进行ESCAPE八进制转码。
服务器端处理代码(selectNumber.jsp)如下:
if(busno!=null){
try{
tool.fangwen();//用户查询计数器加1
Dealbus dealbus=new Dealbus();
coll =dealbus.searchbusline(busno);//调用业务处理方法
Iterator itr=coll.iterator() ;
//将结果输出到一个String中
while (itr.hasNext())
{
result = result+(String) itr.next() ;
}
然后将结果显示在用户手机上:
<wml>
<card id="selectNumber" title="查询结果">
<p align="center">
<%=result%>
</p>
<p align="left">
<a href="xian
首页 上一页 4 5 6 7 8 9 10 下一页 尾页 7/10/10
免费基于J2ME的公交查询系统的设计与实现(七)由毕业论文网(www.huoyuandh.com)会员上传。