您的位置:首页 > 其它

淘淘商城系列——单点登录之注册页面与登录页面的展示

2017-06-14 15:36 639 查看
首先我们把下图所示的单点登录系统所需要的静态资源文件放到taotao-sso-web工程当中。



记得将css、js、images放到webapp目录下,将jsp目录放到WEB-INF目录下,如下图所示。



由于taotao-sso-web工程的web.xml文件当中配置的拦截形式是”/”(如下图所示),这也就意味着它会拦截所有的请求,包括我们的静态资源文件,我们直接访问的话就会报404(找不到资源的错误),可能有些小白跟我一样,对拦截请求不明白,之所以有拦截器就是为了系统的安全,把一些认为不安全的请求给过滤掉,以”/”拦截的话会把所有请求都拦截住,也就是说,所有的请求都要经过严格的检查,如果被拦截下来的请求在系统中找不到对应的资源或方法来响应的话,就会出现404的错误。我们见过以”*.html”为过滤条件的情景,这种情况下只有”.html”结尾的请求才会被拦截,其它请求不会被拦截。那么小白们可能提出问题了,既然所有请求都被拦截了,那么为何我们可以访问Controller中的方法呢?这是由于我们是以Restful的形式来访问Controller方法的,请求被拦截后,发现Controller中刚好有定义好的请求规则满足要求,于是允许访问Controller的该方法,如果稍微与Controller层所定义的请求规则不一致则会报404的错误。同理,我们要访问静态资源,请求被拦截后,如果没有规则告诉SpringMVC我们要访问的静态资源在哪里的话,就会报404的错误,也就是说,总得有个人告诉我我要访问的资源放在哪儿吧(就像Controller那样,告诉请求,我这儿定义好了很多规则,如果你满足我的规则条件,我就让你访问,否则,免谈),只把请求拦截下来,啥也不告诉它,它就蒙圈了,不知道要怎么访问了。



为了解决静态资源被拦截而无法访问的问题,我们在springmvc.xml文件中配置下资源映射(也相当于制定好访问规则)如下图所示,我们之所以只配置了css、images、js的资源映射,而没有配置jsp的映射是由于我们并不会直接去访问jsp资源文件,而是会经过Controller的方法,返回逻辑视图,通过逻辑视图去springmvc.xml文件中的视图解析器配置当中去匹配要访问的资源文件,视图解析器会自动帮我们在返回的逻辑视图后面加上”.jsp”,而且指定路径就在WEB-INF/jsp/目录下,因此我们的jsp文件一定要放在WEB-INF下(除非你配置的视图解析器的位置是别的目录)。



下面我们便来通过Controller方法来访问我们的登录和注册页面,我们在taotao-sso-web工程的com.taotao.sso.controller包下新建一个PageController类,如下图所示,两个方法返回的逻辑视图可不是随便写的,而是要与我们的jsp目录下的注册页面register.jsp和登录页面login.jsp去掉.jsp后的名字一致,这样返回的register和login去springmvc.xml文件中的视图解析器中找到要访问的资源文件的目录并且视图解析器自动给register和login加上.jsp从而变成了register.jsp和login.jsp,从而也就可以访问到WEB-INF下面的静态页面了。



为方便大家复制,现将PageController类的代码贴出。

/**
* 登录注册页面展示Controller
* <p>Title: PageController</p>
* <p>Description: </p>
* <p>Company: www.itcast.cn</p>
* @version 1.0
*/
@Controller
public class PageController {

@RequestMapping("/page/register")
public String showRegister() {
return "register";
}

@RequestMapping("/page/login")
public String showLogin() {
return "login";
}

}


最后我们便来测试下是否能正常访问到登录和注册页面,首先要启动zookeeper和redis服务器,然后启动taotao-sso(如果已经启动了,则不用动)和taotao-sso-web工程(如果原来taotao-sso-web工程处于启动状态,要重启),启动成功后,我们先来访问下注册页面,在浏览器地址栏中输入
http://localhost:8088/page/register
,可以看到如下图所示界面。



我们再在浏览器地址栏中输入
http://localhost:8088/page/login
,回车,可以看到如下图所示界面。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐