发表于: 2018-02-12 00:10:21

9 834


昨天基本完成登录注册的加密解密

今天准备Cookie的记住用户信息

(参考文档)

http://www.cnblogs.com/muzongyan/archive/2010/08/30/1812552.html

具体实现的代码

if (loginResult != null && Pwd1.equals(pwd) && loginResult.getName().equals(name)) {

//保存到cookies

Cookie cookie=new Cookie("pwd",Pwd1);

Cookie cookie1=new Cookie("name",name);

//cookies进行设置

cookie.setMaxAge(60);

cookie1.setMaxAge(60);

cookie.setPath("/");

cookie1.setPath("/");

//添加到请求

response.addCookie(cookie);

response.addCookie(cookie1);

mav.addObject("welcome", "欢迎来到修真院学习");

mav.setViewName("/index");

return mav;//一个登陆成功的页面 "redirect:/login";

                                             

运行用户登录

查看ChromeCookie保存的信息

查看一下详细的信息

接下来就是要拦截要区分用户的登录后面才能访问

拦截器的配置

接下里就是访问

自己访问直接访问

现在解决样式加载

再次访问

最终的目的实现了

接下来看看深度思考

 

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

session 是一个抽象概念,开发者为了实现中断和继续等操作,将 user agent server 之间一对一的交互,抽象为会话,进而衍生出会话状态,也就是 session 的概念。

cookie 是一个实际存在的东西,http 协议中定义在 header 中的字段。可以认为是 session 的一种后端无状态实现。

 

自己的理解session是在创建一个会话中保存的信息,只要这个会话不关闭,session的记录的信息都会被传递到下一个访问的页面,就像我们在淘宝购买东西一样,一件商品,我们可以点开,最开始的基础介绍到详细的参数---->中间一直是session的记录

 

Cookie是在登录过程中,你保存在浏览器或者是本机的自己的用户信息和浏览记录的信息,是有具体的数据保存下来的.

 

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

过滤器(Filter):当你有一堆东西的时候,你只希望选择符合你要求的某一些东西。定义这些要求的工具,就是过滤器。

拦截器(Interceptor):在一个流程正在进行的时候,你希望干预它的进展,甚至终止它进行,这是拦截器做的事情。

监听器(Listener):当一个事件发生的时候,你希望获得这个事件发生的详细信息,而并不想干预这个事件本身的进程,这就要用到监听器。

 

后面再补一点
开始要哪个登录的权限的区分----->就准备用filter过滤来做,师兄说可以不用,直接判断一下就是
package com.fuwei.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.http.HttpServletRequest;
@WebFilter(filterName="/AuthFilter",urlPatterns="/index"
       ,initParams={@WebInitParam(name ="EXCLUDED_PAGES" , value = "/index;indexAction")})
public class AuthFilter implements Filter {
   private String excludedPages;
   private String[] excludedPageArray;
   private String excludedPageArray1;
   public void init(FilterConfig fConfig) throws ServletException {
       excludedPages = fConfig.getInitParameter("EXCLUDED_PAGES");
       if (null!=excludedPages && excludedPages.length()!=0) { // 例外页面不为空
           excludedPageArray = excludedPages.split(String.valueOf(';'));
           System.out.println(excludedPageArray.toString());
           excludedPageArray1=excludedPageArray.toString();
       }
   }
   public void destroy() {
       System.out.println("+++++++++++++++++++++++++++++++");
       this.excludedPages = null;
       this.excludedPageArray = null;
   }
   public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
       HttpServletRequest req = (HttpServletRequest) request;
       boolean isExcludedPage = false;
       excludedPageArray1=excludedPageArray.toString();
       for (String page : excludedPageArray) {// 遍历例外url数组
           // 判断当前URL是否与例外页面相同
           if (req.getServletPath().substring(1).equals(page)) { // 从第2个字符开始取(把前面的/去掉)
               System.out.println(page + ", you're excluded.");
               isExcludedPage = true;
               break;
           }
       }
       if (isExcludedPage) {//在过滤url之外
           chain.doFilter(request, response);
       } else {// 不在过滤url之外
       }
   }}
还有webXML的过滤配置
//针对登录验证才能访问的页面
   <filter>
       <filter-name>AuthFilter</filter-name>
       <filter-class>com.fuwei.filter.AuthFilter</filter-class>
   </filter>
   <filter-mapping>
   <filter-name>AuthFilter</filter-name>
   <url-pattern>/index</url-pattern>
   </filter-mapping>
但是在实现的时候一直出问题----->后面这里不会用到filter的过滤
我全部还原------->就是开始实现的那个样子
可能后面就开始弄任务6啦----->后面才学到要用那个filter的时候再来好好研究一下
师兄推荐我学一下shiro
先查一下吧
Shiro登录认证(原理:用户提交 用户名和密码  -> shiro 封装令牌 
-> realm 通过用户名将密码查询返回 
-> shiro 自动去比较查询出密码和用户输入密码是否一致-> 进行登陆控制
登录验证的机制
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。
看介绍这个还是感觉不错的令牌的登录----->准备任务6啦



 

今天完成的事情:Cookie的记录用户登陆的信息还有filter的拦截实现

 

今天遇到的困难:开始对Cookie不熟悉,不知道怎么弄,后面熟悉啦(找到合适的文档) 感觉还可以,还有那个,资源加载的问题(解决了)

后面发现问题啦------->明天再解决(filter没有实现..>>>只是实现了类似的Url的效果>>>>后面在完善一下)我部署项目的时候才发现

空指针----->找不到地方(断点找到哪里没有值,但是不知道怎么添加获取不到值)

明天的计划:开始任务继续完成filter的过滤实现,最近做的有点,慢慢做了最近亲戚串门,到处走,时间比较零散,就是提前完成,12.00提交,明天好串门

 



返回列表 返回列表
评论

    分享到