最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)文章

最新評論

平武县| 腾冲县| 威宁| 保靖县| 固镇县| 广东省| 长顺县| 高密市| 栖霞市| 道孚县| 平潭县| 沙田区| 沿河| 长春市| 军事| 呼伦贝尔市| 钟山县| 伊宁市| 安平县| 武城县| 新兴县| 长宁县| 西平县| 茂名市| 罗田县| 瑞丽市| 耿马| 泾源县| 贺兰县| 托克逊县| 海原县| 望奎县| 茂名市| 蒙自县| 竹溪县| 鹤庆县| 大宁县| 信丰县| 大埔县| 芮城县| 谷城县|