Android平台与SSH2的通信
2015-07-13樊红林
樊红林
摘要:该文设计并实现了由SSH2框架作为后台,Android移动设备和PC浏览器作为客户端,其中SSH2采用了分层的方式,由下至上分别是持久持,DAO层,业务层,服务层,WEB层。通过分层使得系统具有较高的扩展性,便于将来维护。Android通过JSON传递数据给后台,而PC浏览器直接通过网页的方式提交数据给后台。
关键词: Android;SSH2;JSON;分层
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2015)13-0035-01
如今的智能手机变得越来越普及,特别是基于Android和ios操作系统的手机随处可看到,因此开发手机软件变得由为重要,但是如何解决Android与后台的数据传输变得极其重要。Struts2当中可以加入JSON插件,使得Struts2可以帮你处理Android传送过来的数据。但是也可以通过Servlet解决这个问题。
1 系统架构设计
整个系统架构,如图1所示。
1.1 Android客户端
Android客户端当,主要是通过Activity组成,其中包括了多个View,就形成了所看到的界面,但是这还不能实现需要的功能,后台通过取得组件,之后进行逻辑的处理。Activity之间也可以进行跳转。当要传递数据给后台实现逻辑功能的时候,Android直接把数据封闭好传递给Servlet。如http:localhost:8080/Book/ LoginServlet?name=name&password=password。服务器端接收传递来的参数,并封闭实现功能,完成逻辑功能后,把返回的参数通过JSON进行封闭,返回给Android客户端进行处理。
1.2 PC客户端
通过浏览器浏览网页是主要的方式,所以PC客户端的开发也重要,主要采用HTML,JSP,等技术就可以实现完整的功能。客户端提交HTTP请求就可以发送给后台处理。
1.3 服务器
服务器端主要是由Struts2,Spring, Hibernate 组成,通过DAO层,服务层,WEB层实现分层。
Web层负责表现层与服务层的交互,用户提交的请求能过Struts2进行拦截,交给Action进行处理,浏览器传递过来的数据就可以能过此来进行处理。
业务层负责调用DAO的方法,进行数据的增删查改。并且负责给WEB层提供接口方法,实现中间层的功能。
DAO层负责与数据库进行交互。
2 Android与Servlet
以下代码为Android客户端后台封装数据后,发送给Servlet。
String urlString=http:localhost:8080/BookLoginServlet ?name=name&password=password
jsonObject = HttpUtil.query(urlString);
2.1 后台BaseServlet实现方式
由于加入了Spring框架,因此可以交给Spring来管理Servlet,并且只是处理Android提交过来的数据,浏览器提交的数据交给Struts2来进行处理。BaseServlet 继承至HttpServlet。
BaseServlet如下:
private ApplicationContext application;
application=WebApplicationContextUtils.getWebApplicationContext (getServletContext());}
public ApplicationContext getApplicationContext() {
return this.application;}
2.2 LoginServlet继承BaseServlet
LoginServlet继承至BaseServlet接收Android客户端传递过来的参数,并且把返回的数据进行封闭返回给Android客户端,主要代码如下:
String username = req.getParameter("name");
String password = req.getParameter("password");
//业务逻辑处理并返回值
JSONObject jsonObject = new JSONObject();
jsonObject.put("hasUser", hasUser);
3 结语
本文章实现了Android的通信,能够较好地与SSH2后台进行通信,达到了移动端开发的目地,从而对今后的开发有极大的帮助。通过此种思路,使浏览器传递的数据和Android传递的数据可以分开处理,更容易分成多个模块分别开发。
参考文献:
[1] Bruce Eckel. Thinking in Java[M]. Upper Saddle River, New Jersey, USA: PrenticeHall,2006.
[2] (美)威尔德, 斯尼德, 等. SpringFramework 2入门经典[M]. 赵利通 译. 北京:清华大学出版社,2009.
[3] 刘京华. Java Web整合开发王者归来[M]. 北京:清华大学出版社,2010(14).
[4] 姚昱旻, 刘卫国. Android的架构与应用开发研究[J]. 计算机系统应用,2008,17(11):110-112.