随着移动办公室的热潮,现在出现了越来越多的APP。 小编作为PC端开发首次与移动端合作,为他们提供了接口。 那么,在PC上如何识别发送来的请求是移动端的呢? 如何验证用户是否已登录? 如何实现方法的调用?
环境: Eclipse tomcat
框架: SpringMVC JDBC
第一个:
在PC端的系统中填写了用户的登录认证,但是移动端的请求如何防止PC端的认证去进行移动端自己的认证呢? 就是使用“白名单”。 将移动端请求的URL放在其中,以便可以跳过PC端的登录验证。 下面是代码示例,而不是本博客的重点。
第二:
跳过PC端验证,怎么去移动端自己验证呢? 这里使用了springMVC的拦截器。 基本原理与struts的拦截器相同。
1、首先建立拦截器。 在struts中创建的拦截器类将使用继承的MethodFilterInterceptor重写其中的doIntercept方法。 springMVC的拦截器类是实现处理程序接口。 处理程序中断器有三种方法。
(1)预处理程序(http服务器请求,http服务器响应,对象处理程序) )。
执行时间:在请求处理之前调用。
执行:在请求处理之前调用该方法,因此可以在该方法中执行一些初始化操作和预处理请求。 也可以用这种方法进行一些判断,以决定是否继续请求。
执行过程:此方法的返回值为布尔值的布尔型,如果返回false,则表示请求结束,后续的Interceptor和Controller不再执行。 如果返回值为true,则继续调用下一个Interceptor的preHandle方法,如果已经是最后一个Interceptor,则调用当前请求的Controller方法。
执行顺序:在之前定义的Interceptor中执行之前的操作。
)2) posthandle (httpservletrequestrequestrequest,http servlet响应,对象手柄,模型模式响应)
执行时间:只有在处理当前请求之后preHandle返回true时才调用,但在dispatcher servlet返回并渲染视图之前调用。
执行:因此,可以使用此方法处理controller处理后返回的ModelAndView对象。 从方法的参数也可以看出这一点。
执行顺序:在先前定义的Interceptor中执行后。
(3)完成(http服务器请求、http服务器响应、对象手柄、执行请求) )。
执行时间:整个请求结束后。
执行:用于资源的清理。
2、将拦截器放置在mvc的轮廓上。
第三个:
在拦截器验证登录后,开始调用请求的方法。 这个过程其实和PC端的没什么不同。 因为合作开发中有“承诺大于配置”的说法,所以移动端承诺调用的URL前端被固定为“服务/数据同步. DO”。 这样,就可以按照普通PC端的请求找到名为Service的控制器,然后调用其中的dataSync方法。
第四个:
进入该方法后,按照约定的URL请求的后半部分,开始调用可以具体执行业务逻辑的代码。 按照约定传递的参数将使用jodd.util.ReflectUtil的invoke方法进行调用,最后返回数据。
总结:
移动端呼叫接口的实现流程如上所述,使用整个接口与PC端的要求没有很大不同,但方法的调用稍显繁琐。 通过这次界面的调试,我也真正明白了“约定大于配置”这句话的含义。