Spring mvc实现用户登录的方法(拦截器)

  

用户登录时,将用户信息放到会话中

        包cn.woniubushiniu.controller;      进口cn.woniubushiniu.po.User;   进口org.springframework.stereotype.Controller;   进口org.springframework.ui.Model;   进口org.springframework.web.bind.annotation.RequestMapping;   进口org.springframework.web.bind.annotation.RequestMethod;      进口javax.servlet.http.HttpSession;      @ controller   公开课用户控件{/* *   *向用户登录页面跳转   */@RequestMapping (value=" https://www.yisu.com/login ",方法=RequestMethod.GET)   公共字符串toLogin () {   返回“登录”;   }/* *   *用户登录   * @param用户   * @param模型   * @param会话   * @return   */@RequestMapping (value=" https://www.yisu.com/login ",方法=RequestMethod.POST)   公共字符串登录(用户用户模型模型,HttpSession会话){//获取用户名和密码   字符串的用户名=user.getUsername ();   字符串密码=user.getPassword ();//些处横板从数据库中获取对用户名和密码后进行判断   如果用户名!=null&, username.equals (“admin”),和密码!=null&, password.equals (“admin”)) {//将用户对象添加到会话中   session.setAttribute (“USER_SESSION”、用户);//重定向到主页面的跳转方法   返回“重定向:主要”;   }   model.addAttribute(“味精”、“用户名或密码错误,请重新登录!”);   返回“登录”;   }      @RequestMapping (value=" https://www.yisu.com/main ")   公共字符串toMain () {   返回“主”;   }      @RequestMapping (value=" https://www.yisu.com/logout ")   公共字符串注销(HttpSession会话){//清除会话   session.invalidate ();//重定向到登录页面的跳转方法   返回“重定向:登录”;   }      }      之前      

拦截未登录的用户

        公共类LoginInterceptor实现HandlerInterceptor {      @Override   公共布尔preHandle (HttpServletRequest请求,HttpServletResponse响应对象o){抛出异常//获取请求的瑞:去除http: localhost: 8080这部分剩下的   字符串uri=request.getRequestURI ();//你的:除login . jsp了是可以公开访问的,其他的URL都进行拦截控制   如果(uri.indexOf(“/登录”)在=0){   返回true;   }//获取会话   HttpSession会话=request.getSession ();   用户用户=(用户)session.getAttribute (“USER_SESSION”);//判断会话中是否有用户数据,如果有,则返回真,继续向下执行   如果(用户!=null) {   返回true;   }//不符合条件的给出提示信息,并转发到登录页面   请求。setAttribute(“味精”,“您还没有登录,请先登录!”);   request.getRequestDispatcher (“/web - inf/login . jsp的jsp/?。提出(请求、响应);   返回错误;   }      @Override   公共空postHandle (HttpServletRequest HttpServletRequest HttpServletResponse HttpServletResponse,对象o, ModelAndView ModelAndView){抛出异常      }      @Override   公共空afterCompletion (HttpServletRequest HttpServletRequest HttpServletResponse HttpServletResponse,对象o,异常e){抛出异常      }   }      

配置文件
  

  

配置到春天的配置文件中

        & lt; !——登录拦截器——比;   & lt; mvc: interceptor>   & lt; mvc:=映射路径“/* *”/比;   & lt; bean类=" cn.woniubushiniu.interceptor.LoginInterceptor "/比;   & lt;/mvc: interceptor>   & lt;/mvc: interceptors>   之前      

配置网络。xml拦截所有的url,并设置需要扫描的春天文件

        & lt; !——配置前端控制器——比;   & lt; servlet>   & lt; servlet-name> springmvc   & lt; servlet-class> org.springframework.web.servlet.DispatcherServlet   & lt; init-param>   & lt; param-name> contextConfigLocation   & lt; param-value>类路径:springmvc-config.xml   & lt;/init-param>   & lt; load-on-startup> 1 & lt;/load-on-startup>   & lt;/servlet>   & lt; servlet-mapping>   & lt; servlet-name> springmvc   & lt; url-pattern>/& lt;/url-pattern>   & lt;/servlet-mapping>   之前      

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Spring mvc实现用户登录的方法(拦截器)