学习淘淘商城第九十一课(单点登录、注册页面展示)

       首先我们将单点登录系统所需要的静态资源文件放到taotao-sso-web工程的WEB-INF目录下,静态资源文件大家可以到:http://download.csdn.net/detail/u012453843/9867008这个地址进行下载。


         由于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下(除非你配置的视图解析器的位置是别的目录)

 

        资源映射代码如下:

<!-- 配置资源映射 -->
	<mvc:resources location="/WEB-INF/css/" mapping="/css/**"/>
	<mvc:resources location="/WEB-INF/js/" mapping="/js/**"/>
	<mvc:resources location="/WEB-INF/images/" mapping="/images/**"/>

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


        PageController的代码如下:

package com.taotao.sso.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * 展示登录和注册页面的Controller
 * @author 志鹏
 *
 */
@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,可以看到如下图所示界面。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值