计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

免费基于J2ME的公交查询系统的设计与实现(一)(7)

2013-06-26 01:16
导读:} result+="\n"+tool.getmessage(); dos.writeUTF(result); dos.close(); 有过开发经验的人都知道,在做JAVA开发时传输中文常常遇到乱码现象,这里我在CONTENT_TYPE里面编码方

    }
    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) 内容来自www.nseac.com
    {
 //将错误信息放到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论坛()提出并专为无线设备用户提供交互界面而设计的,目前版本为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);//调用业务处理方法

(转载自http://www.NSEAC.com中国科教评价网)

     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
上一篇:免费目录服务和身份管理系统在电力企业中的设 下一篇:没有了