欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring mvc 實現(xiàn)用戶登錄的方法(攔截器)

 更新時間:2018年07月16日 14:26:27   作者:蝸牛不是牛  
這篇文章主要介紹了Spring mvc 實現(xiàn)用戶登錄的方法(攔截器),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

用戶登錄時,將用戶信息放到session中

package cn.woniubushiniu.controller;

import cn.woniubushiniu.po.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import javax.servlet.http.HttpSession;

@Controller
public class UserController {
  /**
   * 向用戶登錄頁面跳轉(zhuǎn)
   */
  @RequestMapping(value = "/login",method = RequestMethod.GET)
  public String toLogin(){
    return "login";
  }

  /**
   * 用戶登錄
   * @param user
   * @param model
   * @param session
   * @return
   */
  @RequestMapping(value = "/login",method = RequestMethod.POST)
  public String login(User user, Model model, HttpSession session){
    //獲取用戶名和密碼
    String username=user.getUsername();
    String password=user.getPassword();
    //些處橫板從數(shù)據(jù)庫中獲取對用戶名和密碼后進行判斷
    if(username!=null&&username.equals("admin")&&password!=null&&password.equals("admin")){
      //將用戶對象添加到Session中
      session.setAttribute("USER_SESSION",user);
      //重定向到主頁面的跳轉(zhuǎn)方法
      return "redirect:main";
    }
    model.addAttribute("msg","用戶名或密碼錯誤,請重新登錄!");
    return "login";
  }

  @RequestMapping(value = "/main")
  public String toMain(){
    return "main";
  }
  
  @RequestMapping(value = "/logout")
  public String logout(HttpSession session){
    //清除session
    session.invalidate();
    //重定向到登錄頁面的跳轉(zhuǎn)方法
    return "redirect:login";
  }
  
}

攔截未登錄的用戶

public class LoginInterceptor implements HandlerInterceptor {

  @Override
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {
    //獲取請求的RUi:去除http:localhost:8080這部分剩下的
    String uri = request.getRequestURI();
    //UTL:除了login.jsp是可以公開訪問的,其他的URL都進行攔截控制
    if (uri.indexOf("/login") >= 0) {
      return true;
    }
    //獲取session
    HttpSession session = request.getSession();
    User user = (User) session.getAttribute("USER_SESSION");
    //判斷session中是否有用戶數(shù)據(jù),如果有,則返回true,繼續(xù)向下執(zhí)行
    if (user != null) {
      return true;
    }
    //不符合條件的給出提示信息,并轉(zhuǎn)發(fā)到登錄頁面
    request.setAttribute("msg", "您還沒有登錄,請先登錄!");
    request.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request, response);
    return false;
  }

  @Override
  public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {

  }

  @Override
  public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {

  }
}

配置文件

配置到spring 的配置文件中

<!--登錄攔截器-->
    <mvc:interceptor>
      <mvc:mapping path="/**"/>
      <bean class="cn.woniubushiniu.interceptor.LoginInterceptor"/>
    </mvc:interceptor>
  </mvc:interceptors>

配置web.xml 攔截所有url,并設(shè)置需要掃描的spring文件

<!--配置前端控制器-->
  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • springboot?html調(diào)用js無效400問題及解決

    springboot?html調(diào)用js無效400問題及解決

    這篇文章主要介紹了springboot?html調(diào)用js無效400的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • java線程組構(gòu)造方法源碼解析

    java線程組構(gòu)造方法源碼解析

    這篇文章主要為大家介紹了java線程組構(gòu)造方法源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • SpringBoot修改子模塊Module的jdk版本的方法 附修改原因

    SpringBoot修改子模塊Module的jdk版本的方法 附修改原因

    這篇文章主要介紹了SpringBoot修改子模塊Module的jdk版本的方法 附修改原因,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Java常見異常及處理方式總結(jié)

    Java常見異常及處理方式總結(jié)

    今天給大家?guī)淼氖荍ava的相關(guān)知識,文章圍繞著Java異常展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • JAVA基礎(chǔ)-GUI

    JAVA基礎(chǔ)-GUI

    這篇文章主要介紹了JAVA中關(guān)于GUI的相關(guān)知識,文中代碼非常詳細,供大家參考和學習,感興趣的朋友可以了解下
    2020-06-06
  • Spring?BeanDefinition父子關(guān)系示例解析

    Spring?BeanDefinition父子關(guān)系示例解析

    這篇文章主要為大家介紹了Spring?BeanDefinition父子關(guān)系示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • java學習之理解自動拆裝箱特性

    java學習之理解自動拆裝箱特性

    這篇文章主要介紹java自動拆裝箱特性以及java自動拆裝箱的應用,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家早日升職加薪
    2021-09-09
  • Java微信小程序oss圖片上傳的實現(xiàn)方法

    Java微信小程序oss圖片上傳的實現(xiàn)方法

    這篇文章主要介紹了Java微信小程序oss圖片上傳的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • 深入理解Java的接口與抽象類

    深入理解Java的接口與抽象類

    本文主要介紹java 的接口和抽象類,對接口和抽象類進行介紹對比,深入理解,有需要的小伙伴可以參考下
    2016-07-07
  • Java util concurrent及基本線程原理簡介

    Java util concurrent及基本線程原理簡介

    這篇文章主要介紹了Java util concurrent及基本線程原理簡介,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04

最新評論