发表于: 2017-03-18 22:41:31

1 1122


今天完成的事情:

1.学习了cookie和session

1)构造Cookie对象

Cookie(java.lang.String name, java.lang.String value)

2)设置cookie

void setPath(java.lang.String uri)   :设置cookie的有效访问路径

void setMaxAge(int expiry)  设置cookie的有效时间

void setValue(java.lang.String newValue) :设置cookie的值

3)发送cookie到浏览器端保存

void response.addCookie(Cookie cookie)  : 发送cookie

4)服务器接收cookie

Cookie[] request.getCookies()  : 接收cookie

Cookie的原理

1)服务器创建cookie对象,把会话数据存储到cookie对象中。

new Cookie("name","value");

2 服务器发送cookie信息到浏览器

response.addCookie(cookie);

3)浏览器得到服务器发送的cookie,然后保存在浏览器端。

4)浏览器在下次访问服务器时,会带着cookie信息

5)服务器接收到浏览器带来的cookie信息

request.getCookies();

这些关于cookie的常用的API还是需要知道的。


关于Session:

request.getSession();

setAttrbute("name","会话数据");

getAttribute("会话数据")


2.拦截器:

在springmvc中,定义拦截器要实现HandlerInterceptor接口,并实现该接口中提供的三个方法

  1. preHandle方法:进入Handler方法之前执行。可以用于身份认证、身份授权。比如如果认证没有通过表示用户没有登陆,需要此方法拦截不再往下执行(return false),否则就放行(return true)。
  2. postHandle方法:进入Handler方法之后,返回ModelAndView之前执行。可以看到该方法中有个modelAndView的形参。应用场景:从modelAndView出发:将公用的模型数据(比如菜单导航之类的)在这里传到视图,也可以在这里同一指定视图。
  3. afterCompletion方法:执行Handler完成之后执行。应用场景:统一异常处理,统一日志处理等。

拦截器的配置:

<!-- 配置拦截器 -->

<mvc:interceptors>

    <!-- 多个拦截器,按顺序执行 -->        

    <mvc:interceptor>

        <mvc:mapping path="/**"/> <!-- 表示拦截所有的url包括子url路径 -->

        <bean class="ssm.interceptor.HandlerInterceptor1"/>

    </mvc:interceptor>

    <mvc:interceptor>

        <mvc:mapping path="/**"/>

        <bean class="ssm.interceptor.HandlerInterceptor2"/>

    </mvc:interceptor>

</mvc:interceptors>

拦截器有执行顺序:

前面的拦截器放行,后面的拦截器才能执行preHandle

如果某个拦截器不放行,那么它的另外两个方法就不会背执行

只要有一个拦截器不放行,所有拦截器的postHandle方法都不会执行,但是只要执行过preHandle并且放行的,就会执行afterCompletion方法


明天计划的事情:

1.项目除了点错,一直要求去除override注解,好像是因为我项目的包出了问题,不应该在做项目的时候乱动的,好后悔。

2.希望完成任务五

遇到的问题:

项目出错,好几个小时都没整好。师兄救我。

收获:

1.关于昨天的乱码问题,莎莎哥一眼就找出了问题的关键,是URL编码,我的到内容是请求体里面的内容,当信息传递时,由于url不能有中文字符,所以会将其编码。更多的可以详细参考这篇文章:http://www.cnblogs.com/haha12/p/4344992.html



返回列表 返回列表
评论

    分享到