91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

资溪县| 龙川县| 临武县| 上犹县| 白玉县| 霍城县| 城步| 武隆县| 齐齐哈尔市| 岳阳县| 建平县| 阿荣旗| 绵竹市| 建德市| 祁连县| 滁州市| 昌都县| 双城市| 宁南县| 丰原市| 河南省| 仁寿县| 宜兰县| 新绛县| 驻马店市| 江城| 萨嘎县| 武隆县| 罗甸县| 南澳县| 大新县| 孝昌县| 衢州市| 海伦市| 桃园市| 伊通| 南华县| 龙州县| 邵阳县| 平湖市| 乌鲁木齐市|