> 文档中心 > SpringMVC-07-拦截器

SpringMVC-07-拦截器

1.首先写一个登录页面

      $Title$      

登录页面 首页

2.写相应的请求

package com.yyf.controller;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpSession;@Controller@RequestMapping("/user")public class LoginController {    @RequestMapping("/main")    public String main(){ return "main";    }    @RequestMapping("/goLogin")    public String GOLogin(){ return  "login";    }    @RequestMapping("/login")    public String login(String username, String password, HttpSession session, Model model){ model.addAttribute ("username",username); session.setAttribute ("userInfo",username); return "main";    }    @RequestMapping("/GOOut")    public String GOOut(HttpSession session,String username){ session.removeAttribute (username); return "login";    }}

3。编写拦截器及登录和主页界面 同时增加一个注销的功能,移除sessionID

    <a href="https://www.csdndoc.com/tag/%e9%a6%96%e9%a1%b5" title="View all posts in 首页" target="_blank" style="color:#0ec3f3;font-size: 18px;font-weight: 600;">首页</a>

首页

正在登录的用户:${username}
注销
    登录   用户名    密码       
package com.yyf.config;import org.springframework.web.servlet.HandlerInterceptor;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class LoginInterceptor implements HandlerInterceptor {    @Override    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HttpSession session = request.getSession ();// 已经登录的情况下可以放行 if (session.getAttribute ("userInfo")!=null){     return true; }// 登录页面也可以放行    if (request.getRequestURI ().contains ("/goLogin")){ return true;    }//    第一次走登录页面也可以放行 if (request.getRequestURI ().contains ("/login")) {     return true; } request.getRequestDispatcher ("/WEB-INF/jsp/login.jsp").forward (request,response); return false;    }}

字库吧