geek的技术日志,记录每一次技术思考的闪光点。

springMVC框架下如何实现移动端接口调用——流程简介

随着移动办公的热潮,现在出现了越来越多的APP,小编作为一个PC端的开发第一次和移动端合作,给他们提供接口。那么在PC是如何识别发来的请求是移动端的?如何验证用户是否登录?如何实现方法的调用?

        环境:Eclipse+tomcat

        框架:SpringMVC+JDBC

第一:

          在PC端的系统中我们都是填了用户登录验证的,那么如何让移动端发来的请求避免PC端的验证走移动端自己的那一套验证呢?就是使用“白名单”。将移动端请求的URL配置到其中,这样就可以跳过PC端的登录验证,这里不是本篇博客重点不再代码举例。

 

第二:

         跳过PC端的验证,如何走移动端自己的验证呢?这里使用了springMVC的拦截器。基本原理和struts的拦截器是一样的。

 

        1、首先编写一个拦截器,在struts中编写的拦截器类是继承的MethodFilterInterceptor重写其中的doIntercept方法。在springMVC中的拦截器类是实现HandlerInterceptor接口。HandlerInterceptor有三个方法:

               (1) preHandle(HttpServletRequestrequest, HttpServletResponse response, Object handle)

                          执行时间:在请求处理之前调用。

                          执行作用:由于该方法在请求处理之前调用,所以可以在这个方法中进行一些初始化操作或者对请求进行预处理。也可以在这个方法中进行一些判断来决定请求是否要继续进行下去。

                          执行过程:该方法的返回值是布尔值Boolean类型的,当它返回为false 时,表示请求结束,后续的Interceptor 和Controller 都不会再执行;当返回值为true 时就会继续调用下一个Interceptor 的preHandle 方法,如果已经是最后一个Interceptor 的时候就会是调用当前请求的Controller 方法。

执行顺序:先定义的Interceptor中的先执行。

 

              (2)postHandle(HttpServletRequestrequest, HttpServletResponse response, Object handle,ModelAndView modelAndView)

                        执行时间:在当前请求进行处理之后并且preHandle返回true时才会被调用,但是该方法会在DispatcherServlet进行视图返回渲染之前被调用。

                        执行作用:所以可以在这个方法中对controller处理之后返回的ModelAndView对象进行操作,从方法的参数中也可以看出。

                        执行顺序:先定义的Interceptor中的后执行。

 

             (3) afterCompletion(HttpServletRequestrequest, HttpServletResponse response, Object handle,Exception ex)

                        执行时间:在整个请求结束之后。

                        执行作用:用于进行资源清理。

        2、将拦截器配置到mvc的配置文件中。

第三:

        拦截器验证登录完毕后,开始调用请求的方法,这个过程其实就和PC端的没有什么区别了。合作开发中有一句话叫做“约定大于配置”,所以约定好移动端调用的URL前端固定为“Service/dataSync.do”,这样就可以按照正常的PC端的请求找到Service这个Controller然后调用其中的dataSync方法。

 

第四:

        当进入到这个方法之后,按照约定好的URL请求的后半部分开始调用具体能够执行业务逻辑的代码。根据约定传来的参数使用jodd.util.ReflectUtil中的invoke方法进行调用,最后返回数据。

 

小结

        移动端调用接口实现的流程如上,使用了拦截器整体和PC端的请求没有大的区别,只是方法的调用比较稍微繁琐一些。本次接口的调试也真正的体会了“约定大于配置”这句的含义。下一篇博客通过代码看看具体是如何实现的。

未经允许不得转载:极客技术 » springMVC框架下如何实现移动端接口调用——流程简介

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址