中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-09-19 12:33:36 來源:腳本之家 閱讀:175 作者:蝸牛不是牛 欄目:編程語言

用戶登錄時,將用戶信息放到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 {
  /**
   * 向用戶登錄頁面跳轉
   */
  @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();
    //些處橫板從數據庫中獲取對用戶名和密碼后進行判斷
    if(username!=null&&username.equals("admin")&&password!=null&&password.equals("admin")){
      //將用戶對象添加到Session中
      session.setAttribute("USER_SESSION",user);
      //重定向到主頁面的跳轉方法
      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();
    //重定向到登錄頁面的跳轉方法
    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中是否有用戶數據,如果有,則返回true,繼續向下執行
    if (user != null) {
      return true;
    }
    //不符合條件的給出提示信息,并轉發到登錄頁面
    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,并設置需要掃描的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>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汾西县| 社会| 宜都市| 濉溪县| 丘北县| 湟中县| 葵青区| 土默特左旗| 乌审旗| 长宁区| 孙吴县| 太仓市| 普安县| 三都| 石城县| 贵德县| 马龙县| 富裕县| 禹城市| 柘荣县| 栖霞市| 平果县| 罗定市| 彝良县| 边坝县| 平陆县| 辰溪县| 瑞丽市| 搜索| 云龙县| 高要市| 淄博市| 许昌县| 黄龙县| 榆社县| 凌云县| 安国市| 遂宁市| 旅游| 阳山县| 榆中县|