表4-1 客户端消息
序号 根元素属性 消息类型说明
1 C_login 客户端登陆系统的消息
2 C_selectC 客户端请求以课程名称进行查询的消息
3 C_selectCSMS 客户端请求以短信方式返回某课程成绩的消息
4 C_selectT 客户端请求查看某学期全部课程成绩的消息
5 C_selectTSMS 客户端请求以短信方式返回某学期课程成绩的消息
6 C_selectNew 客户端请求查看最新成绩的消息
7 C_selectNewSMS 客户端请求以短信方式返回最新成绩的消息
8 C_modifyPassword 客户端请求修改密码的消息
9 C_exit 客户端退出该系统的消息
服务器端的消息列表如表4-2所示。
表4-2 服务器端消息
序号 根元素属性 消息类型说明
1 S_relogin 服务器端向客户端返回登录是否成功的消息
2 S_reselectC 服务器端向客户端返回某课程成绩结果的消息
3 S_reselectT 服务器端向客户端返回某学期课程成绩结果的消息
4 S_reselectNew 服务器端向客户端返回查询最新成绩结果的消息
5 S_remodifyPassword 服务器端向客户端发送修改是否成功的消息
6 S_error 服务器端向客户端反馈的错误消息
3.3.2消息包的封装及解析处理
在一般的XML数据交换过程中,传递XML字符串更为方便,而不是格式化的XML Document。另外,考虑到客户端是资源受限的移动信息设备以及使用XML 文档解决传输问题更为复杂,而且容易出错。因此消息包封装之后也就是XML字符串的格式。消息包都是按照固定的XML格式进行封装,但封装的消息内容根据消息的不同类型而不同。
XML是一种数据格式,每一种数据格式都需要一个解析器将其中的信息解析出来。XML的解析器有很多,所有的解析器都包含遍历XML树、访问插入及删除元素及其属性的函数。例如,dom4j就是一个非常优秀的Java XML API,具有性能优异、功能强大和极易使用的特点,同时它也是一个开源代码,因此非常适合于服务器端的XML消息解析处理。在客户端则使用Kxml2处理XML字符串消息,因为Kxml是一个只占用很小存储空间的XML语法分析程序,小巧实用。
本文以服务器端使用dom4j进行解析消息为例子,介绍解析器对XML字符串消息的解析处理方法。重要部分程序段如下:
while{
String Msg = receive(is); //通过接收模块接收消息Msg
//把字符串转换成document对象
Document document = DocumentHelper.parseText(Msg);
Element rootElm原文请找腾讯752018766辣,文-论'文.网http://www.751com.cn ute attribute = rootElm.attribute( "type" ); //获取根节点的属性
String text = attribute.getText(); //获取属性的文本信息
if(text.equals("C_login")){ //通过属性的文本信息判断消息的类型
//获取消息内的信息,如学号、密码
StudentID = rootElm.elementText( " StudentID " );
Password = rootElm.elementText( " Password " );
//调用相对应方法
reMsg = login( StudentID , Password , con);
}
……
else if( text.equals ( " C_exi t " ) )
{ break; }
else break;
}
通过服务器解析XML消息流程如图3-1所示,可看出,dom4j的使用非常便捷,而且速度非常的快。dom4j除了解析XML文档的功能以外,还可以创建XML文档和修改XML文档。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]