发表于: 2017-11-10 23:39:38

1 755


今天完成的事情:

1.交任务四

2.写完拦截器,然后通过拦截器判断Token的信息,从而知道登录的状态,实现页面的跳转是否拦截。

3.实现第二个步骤,大概完成任务五。

要实现通过判断登录状态,来决定是否可以访问/u形式的URL页面。首先就是拦截这个URL,然后进行状态判断,对token判断后,根据返回出来的信息,决定是否要放行,最终达到页面跳转或者返回登录的作用。

明天计划的事情:

实现任务五登录注册时,给密码进行MD5加密,提交任务五。

遇到的问题:

就是拦截器的逻辑一直转不过来。

理想是想实现很多的功能,但总是办不到。

收获:

学习拦截器相关知识

1.拦截器结构图

网上的图片,那个sso就就相当于我们所要求的职业页面。

也就是说,那个地方放的是用户登录以后才可以看到的页面。

2.拦截器执行原理

(1)拦截请求的url

(2)从cookie中获取token

(3)如果没有token,则直接拦截,打回登录页面

(4)获取到token,查询用户信息,返回信息

(5)返回ture,则拦截放行。若返回false,则拦截不通过,指定页面不可以访问。

3.拦截器的实现

在SpringMvc中配置拦截器:

在springmvc中需要实现HandlerInterceptor接口。

4.拦截器总结

       拦截器可以让你在Action和result被执行之前或之后进行一些处理。同时,拦截器也可以让你将通用的代码模块化并作为可重用的类。拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。同时也是提供了一种可以提取action中可重用的部分的方式。比较显而易见的就是能够切实保障用户的财产信息安全,为有关部门提供权限或者职权领域的有效划分与约束。

二、深度思考

1.什么是session?什么是cookie?session和cookie有什么区别?什么场景适用于session?什么场景适用于cookie?

(1)session

session机制是一种服务器端的机制,服务器使用一种类似散列表的结构来保存信息。

当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端里的请求里是否已包含了一个session标识--sessionID,如果已经包含一个sessionID,则说明以前已经为此客户端创建过session,服务器就按照sessionID把这个session检索出来使用(检索不到,可能会新建一个),如果客户端请求不包含sessionID,则为此客户端创建一个session并且声称一个与此session相关联的sessionID,sessionID的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个sessionID将被在本次响应中返回给客户端保存。

(2)Cookie

Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。

(3)cookie 和session 的区别:

1)cookie数据存放在客户的浏览器上,session数据放在服务器上。

2)cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗   考虑到安全应当使用session。

3)session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能   考虑到减轻服务器性能方面,应当使用COOKIE。

4)单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

(4)用法

将登陆信息等重要信息存放为SESSION

其他信息如果需要保留,可以放在COOKIE中

2.拦截器、过滤器、监听器各有什么作用?

(1)java的拦截器 

主要是用在插件上,扩展件上比如 hivernate spring struts2等。有点类似面向切片的技术,在用之前先要在配置文件即xml文件里声明一段的那个东西。

(2)过滤器

所谓过滤器顾名思义是用来过滤的,在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的action进行业务逻辑,比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者struts的action前统一设置字符集,或者去除掉一些非法字符(聊天室经常用到的,一些骂人的话)。filter 流程是线性的, url传来之后,检查之后,可保持原来的流程继续向下执行,被下一个filter, servlet接收等.

(3)监听器

作用是会对特定的事件产生产生一个处理。监听在很多模式下用到。比如说观察者模式,就是一个监听来的。Servlet监听器用于监听一些重要事件的发生,监听器对象可以在事情发生前、发生后可以做一些必要的处理。







返回列表 返回列表
评论

    分享到