當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Springboot只允许进入登录注册的页面,没登录页面进行拦截。
生活随笔
收集整理的這篇文章主要介紹了
Springboot只允许进入登录注册的页面,没登录页面进行拦截。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先是index.html頁面:
<body style="text-align:center;"><form action="/denglu" method="post" id="text_form"><input type="text" name="name"></input><input type="password" name="password"></input><input type="submit" value="登錄"></input></form> </body>然后是main.html頁面:
<body><h1>這是登錄后的頁面<h1> </body>然后是Login的controller
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;@Controller public class Login {@RequestMapping("/denglu")public String tiaozhuan( HttpServletRequest request,HttpServletResponse response) {String name=request.getParameter("name");String password=request.getParameter("password");System.out.println("登錄的用戶名為:"+name+",密碼為:"+password);HttpSession session = request.getSession();String user=name+password;session.setAttribute("User", user);HttpSession Loginsession = request.getSession();Object users = Loginsession.getAttribute("User");System.out.println("users:"+users);if(users==null){System.out.println("user數據庫獲取為空");return "index";}else if(users.equals("nullnull")){System.out.println("未輸入相關參數");System.out.println("");return "index";}else { System.out.println("正常進入");return "main";} }@RequestMapping("/index")public String tiaozhuan1( ) {return "index"; } }然后是配置類:
import org.slf4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.stereotype.Controller; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set;/*** 登錄驗證攔截**/ @Controller @Component public class LoginInterceptor extends HandlerInterceptorAdapter {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception {String basePath = request.getContextPath();String path = request.getRequestURI();if(!doLoginInterceptor(path, basePath) ){//是否進行登陸攔截return true;}HttpSession session = request.getSession();Object users = session.getAttribute("User");System.out.println("users:"+users);if(users==null){String requestType = request.getHeader("X-Requested-With");if(requestType!=null && requestType.equals("XMLHttpRequest")){response.setHeader("sessionstatus","timeout");response.getWriter().print("index");return false;} else {System.out.println("尚未登錄,跳轉到登錄界面");response.sendRedirect(request.getContextPath()+"index");}return false;}return true;}/*** 是否進行登陸過濾* @param path* @param basePath* @return*/private boolean doLoginInterceptor(String path,String basePath){path = path.substring(basePath.length());Set<String> notLoginPaths = new HashSet<>();//設置不進行登錄攔截的路徑:登錄注冊和驗證碼//notLoginPaths.add("/");notLoginPaths.add("/index");notLoginPaths.add("/signin");notLoginPaths.add("/login");notLoginPaths.add("/register");notLoginPaths.add("/kaptcha.jpg");notLoginPaths.add("/kaptcha");if(notLoginPaths.contains(path)) return false;return true;} }?訪問:http://localhost:8080/index? 會到登錄界面,登錄即可。
?訪問:http://localhost:8080/denglu? 也會到登錄界面,登錄即可。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Springboot只允许进入登录注册的页面,没登录页面进行拦截。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 美篇app如何添加音乐
- 下一篇: gradle idea java ssm