转自:http://blog.csdn.net/u013200864/article/details/47278233
前言:
作为一名Android开发人员,网络数据都是web开发人员提供,每次让他们写一个接口都跟求神拜佛一样,与其求别人还不如自己动手,这是八百年前写的word,今天把它记在csdn,防止以后忘记还可以看看。
1.接口的数据源来自于数据库。(这里没办法提供方法教你怎么查数据,自己去网站上学吧,我觉得挺不错的)
http://www.w3school.com.cn/sql/sql_wildcards.asp
2.我所写接口的框架是structs+spring+ibatis,要会接口首先要学会这三个框架怎么用。下面是myecplise开发的web项目结构图张这样:
我们有个大概的了解了,之后你新建一个Javaweb项目都会有个web.xml,这个是入口,我们来看看它里面有啥:
web.xml中的东西我没办法讲述的很清楚,待会儿附上源码,公司人说每次新建项目的时候直接复制一下改改就好了,这大概就是通病一是比较懒,而是一个个敲麻烦还要全懂。
3.先说接口,顺序好像反了,这是以登陆为例:
BaseAction类继承ActionSupport类(xwork.jar),我们在BaseAction类写了一些基本的输出方法,就是手机端不是向web请求嘛,web响应后要给手机东西,就好比我登陆的时候给用户名和密码给web,web就去服务器查询是否有这号人,如果有或者没有,web就得告诉手机端,输出格式一般给的是json格式,这是web端的BaseAction类,这个类里面还有HttpServletRequest(手机端传给web的用户名和密码,web就是从这里取出),HttpServletResponse的到他们的实例,以及HttpSession对象,session就是浏览器缓存,比如你登陆别人的网站,别人就可以通过session吧你的账号记录下来。用gessession就可得到。
4,我们写一个LoginAction继承BaseAction,其中写一个登陆的方法如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
5.LoginService为接口,里面定义了一系列方法,loginService为其对象,而接口中就有刚调用的Loginmobile方法名,而其方法体在LoginserviceImpl中实现,LoginserviceImpl实现LoginService接口,方法体如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
6.LoginDao 也是接口类,他的实现类是LoginDaoImpl,LoginDao 类申明了一个Loginmobile方法名,其方法体在LoginDaoImpl中实现。具体实现为:
LoginDaoImpl类继承AbstactTemplateDao 类()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
现在知道大致的流程了吧,总结一下:
一个登陆模块我们把它划在一个包下,不管是web还是手机登陆都放这里,一个登陆包下分四个分支,一个action层,一个service层(业务逻辑层),一个dao层(数据库操作层),一个Entry(实体类,对应数据库表) ,四个层次,如下图:
打箭头的代表要配置,所有的继承Baseaction的类以及各自的service实现类和dao的实现类都要在各自对应的文件中配置,比如loginaction就要在applicationContext-action中配置如下
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
dao的实现类也是一样,在applicationContext-dao中注册
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
structs也有类似的配置,而之前说的web.xml中吧spring中下的四个文件配置了。sping中的applicationContext是用来配置ibatis的,上面有个图画错了哈,最后就是你写的接口的url是这样拼起来的。
http:192.168.0.100:8080/loginAction/startLogin.action?username=”123”&password=”123456”
其中:
192.168.0.100你电脑ip,8080tomcat端口号,loginAction为applicationContext-action中登陆所在类class=”org.U9APP.login.action.LoginAction”它的name值,startLogin为登陆类下的刚写的登陆方法名。action,?后为参数,usname为key,这个是web和手机对接key,123为用户名,123456为密码,这个key可以换成其他的字符串不过你要知其意思并且要和手机一直才能收到。