模拟登录正方教务管理系统-JAVA实现

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013165110/article/details/78079576

模拟登录正方教务管理系统



这款应用能够将正方教务管理系统上的英语四六级信息查询功能、期末考试安排信息查询功能、期末考试成绩信息查询功能、课程表信息查询功能、毕业设计信息查询功能、个人头像信息查询功能在手机终端供用户查看。(以下列举两个功能模块的大概实现)。

登录模块的实现

用户打开该应用,显示登录界面。系统获取输入的信息(学号、密码与验证码),在LoginActivity的checkUser()方法中进行验证,如果验证通过,则进入系统,显示主菜单界面;具体的实现过程如下:第一,生成一个http客户端发送请求对象,对该客户端进行请求方式的设定(这里为HttpGet方式)。使用通过GET请求正方教务系统网站登录页面(http://***.***.***.***/default2.aspx?)使用火狐Firebug工具进行抓包:用户打开该应用,显示登录界面。系统获取输入的信息(学号、密码与验证码),在LoginActivity的checkUser()方法中进行验证,如果验证通过,则进入系统,显示主菜单界面;具体的实现过程如下:第一,生成一个http客户端发送请求对象,对该客户端进行请求方式的设定(这里为HttpGet方式)。使用通过GET请求正方教务系统网站登录页面(http://***.***.***.***/default2.aspx?)使用火狐Firebug工具进行抓包:



获取到Html网页信息,使用StringTokenizer分隔Html代码,定位到__VIEWSTATE属性标签,再得到__VIEWSTATE的值。第二,将用户输入的学号、姓名、验证码以及刚获取到的__VIEWSTATE的值作为请求参数,访问http://210.34.213.87/default2.aspx?,若验证通过,获取到系统主页面信息并且进入系统,Firebug显示如图5.2,显示主菜单界面;若验证失败,则弹出登录失败的提示。

 Firebug显示登录成功对应网页的的Post请求



显示登录成功返回的首页部分信息

录模块效果图




期末考试成绩模块实现

具体实现过程如下:第一,学生点击该功能模块,显示对话框,获取学生想要查询的对应学年、学期的信息。第二,网络连接,以及头信息的设置,通过访问期末考试成绩对应的网址(http:// ***.***.***.***/xscjcx_dq.aspx?xh=?&xm=?&gnmkdm=N121605)获取返回的信息,使用StringTokenier分隔截取到对应网页标识(__VIEWSTATE)的值。Firebug显示如下图:

Firebug显示期末考试安排对应网页的头信息

Firebug显示期末考试成绩网页的__VIEWSTATE字段信息


第三,将学年、学期以及__VIEWSTATE作为请求参数通过POST方法访问期末考试成绩模块网址(http://***.***.***.***/xscjcx_dq.aspx?xh=?&xm=?&gnmkdm=N121605)获取到返回的Html网页。获取到的网页信息如下图:

Firebug显示查询成绩的POST请求

期末考试成绩对应网页的部分代码

第四,使用正则表达式对其解析,先把Html网页代码转化成行,再利用java.util.regex.Pattern与java.util.regex.Matcher的功能。通过Pattern的静态方法compile()返回一个Pattern的实例,这个实例代表正则表达式,之后就可以重复使用Pattern实例的matcher()方法来返回一个Matcher的实例,代表符合正则式的实例,分析实例,通过设定条件寻找符合的正则式,即我们想要得到的关于期末考试成绩的信息。获取期末考试成绩相关字段的方法:首先,将该页面的</td>\n使用replaceAll</td>进行转换;其次使用Pattern类的compile对(?<=<td>).*(?=</td>)进行处理,获取<td>标签的内容;然后,使用matcher()返回Matcher的实例,通过find()方法将相关字段全部遍历获得。

实际显示效果:

期末考试成绩模块效果图一

期末考试成绩模块效果图二



注:部分工具介绍

正则表达式

正则表达式的原理是通过匹配字符串中的语法句式规则获得符合条件的字符串内容被应用在许多方面,类似文本编辑器、电子词典中,用于搜索与更新字段。

使用过程:把一个包含正则表达式的字符串(HTML)传递给Pattern类中的静态方法compile(),创建一个Pattern对象。然后通过使用要搜索的给定字符串作为参数调用Pattern对象的matcher()方法,获得一个Matcher对象,这个对象可以搜索与模式匹配的给定字符串。调用Matcher对象的find()方法搜索给定的字符串。如果模式匹配了,再查询匹配对象以找出模式在字符串中的位置和其他与匹配有关的信息。

Firebug网络抓包

Firebug是一个获取网页信息的强大工具,通过分析这些截取的HTTP记录,可以知道这个网站对外交互的信息。例如,Firebug中的TimeChart图也可以让我们很直观的看出访问HTTP的时间信息。Request Grid中的Time反应关注耗时比较大的请求,Received关注接收字节数比较大的请求,Result关注404、500、301、302等返回值。常用的网络抓包工具还有Wireshark、Fiddler、Charles等。



【欢迎留言交流基于网页分析的正方教务管理系统APP,代码功能都已实现。如有源码需要,可以加QQ:766178826(加好友请备注CSDN,作者心血,有偿哦,非诚勿扰)!


关键词:Android;Java;正方教务管理系统;学习信息查询;网页分析


猜你喜欢

转载自blog.csdn.net/u013165110/article/details/78079576