淘淘商城——单点登录检查数据是否可用

首先我们要确保taotao-sso-web工程依赖了taotao-sso-interface工程以及是否依赖了jackson相关jar包(用来将对象转为json字符串),查看”Maven Dependencies”下的包,如果有taotao-sso-interface以及下图红框框住的三个jackson包说明已经依赖好了,如果大家按照我的节奏一步步来,应该是没有问题的哟!
这里写图片描述
下面我们添加对dubbo服务的引用,即在springmvc.xml配置文件中添加如下配置:

<dubbo:reference interface="com.taotao.sso.service.UserRegisterService" id="userRegisterService" />

这里写图片描述
下面我们在taotao-sso-web工程的src/main/java目录下的com.taotao.sso.controller包中新建一个UserController类,如下图所示。
这里写图片描述
为了大家方便复制,现将UserController类的代码给出。

/**
 * 用户管理Controller
 * <p>Title: UserController</p>
 * <p>Description: </p>
 * <p>Company: www.itcast.cn</p> 
 * @version 1.0
 */
@Controller
public class UserController {

    @Autowired
    private UserRegisterService userRegisterService;

    @RequestMapping(value="/user/check/{param}/{type}", method=RequestMethod.GET)
    @ResponseBody
    public TaotaoResult checkUserInfo(@PathVariable String param, @PathVariable Integer type) {
        TaotaoResult result = userRegisterService.checkUserInfo(param, type);
        return result;
    }


}

下面我们来测试一下这个用户注册接口是否好用。在测试之前,先将taotao-sso服务工程打包到本地maven仓库中,还有别忘了启动zookeeper服务哟!!!
接着我们便依次启动taotao-sso服务工程和taotao-sso-web表现层工程,启动好之后,我们在浏览器地址栏中输入http://localhost:8088/user/check/zhangsan/1,回车,可惜的是我们会看到如下图所示的错误。
这里写图片描述
这里之所以没有事先把错误都排查掉,是为了和大家一起学习下如何解决问题。
404错误是找不到对应的接口,也就是我们的访问请求并没有被拦截,这是由于taotao-sso-web工程的web.xml文件中配置过滤条件造成的,如下图所示,可以看到当前配置的拦截请求是以”*.html”结尾的。
这里写图片描述
那么我们不妨在请求地址的最后加上.html结尾,如下图所示,404问题虽然没了,但出来个406错误,出现406错误与SpringMVC框架有关,我们在请求的末尾加上.html后,SpringMVC便把请求返回的结果当做html页面来渲染,但是我们返回的是TaotaoResult对象,它本身是无法被渲染成html的,因此就会抛出406的错误。可见,我们在请求的结尾加.html是不可行的。
这里写图片描述
不能在结尾加.html还有更重要的一个原因,那就是接口文档,在接口文档中明确给出了请求的格式,如下图所示,可以看到请求并没有以.html结尾,我们作为开发人员不能擅自在请求后面加.html。
这里写图片描述
那么,我们应该怎样解决这个问题呢?其实也很简单,那就是将web.xml文件的过滤条件改为”/”,如下图所示。
这里写图片描述
下面重启taotao-sso-web工程,然后在浏览器地址栏中输入http://localhost:8088/user/check/zhangsan/1,回车,可以看到如下图所示结果。data返回false说明zhangsan这个用户名已经被别人注册过了。
这里写图片描述
接着把用户名修改为”zhangsan1234”,如下图所示,可以看到这个用户名还没有被注册。
这里写图片描述
我们再测试下电话,我们在数据库tb_user表中复制一个已经注册过的电话,比如13488888888,然后在浏览器地址栏中输入http://localhost:8088/user/check/13488888888/2,回车,可以看到如下图所示结果,可以看到该手机号已经被注册了。
这里写图片描述
随便修改下手机号,然后再测试一下,如下图所示,可以看到这个手机号没有被注册过。
这里写图片描述
下面我们再测试下邮箱是否合法,可以看到”aa@a”这个邮箱已经被注册过了。
这里写图片描述
我们修改下邮箱,再试试,如下图所示,可以看到这个邮箱没有被注册过。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/a_blackmoon/article/details/80535654
今日推荐