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只允许进入登录注册的页面,没登录页面进行拦截。相关推荐
- java优化登录注册,Java-Web(项目)优化登录注册
Java-Web(项目)优化登录注册 Java-Web(项目)优化登录注册 实现代码: package com.homework.dao1; public interface Login { publ ...
- Vue登录注册,并保持登录状态
关于vue登录注册,并保持登录状态,是vue玩家必经之路,网上也有很多的解决方法,但是有一些太过于复杂,新手可能会看的一脸懵逼,现在给大家介绍一种我自己写项目在用而且并不难理解的一种方法. 项目中有一 ...
- Vue登录注册,并保持登录状态 1
关于vue登录注册,并保持登录状态,是vue玩家必经之路,网上也有很多的解决方法,但是有一些太过于复杂,新手可能会看的一脸懵逼,现在给大家介绍一种我自己写项目在用而且并不难理解的一种方法. 项目中有一 ...
- python flask框架下登录注册界面_Python-用户登录 Flask-Login
用户登录功能是 Web 系统一个基本功能,是为用户提供更好服务的基础,在 Flask 框架中怎么做用户登录功能呢?今天学习一下 Flask 的用户登录组件 Flask-Login Python 之所以 ...
- python登录注册接口_Python实现登录接口
要求: 输入用户名和密码 认证成功,显示欢迎信息 用户名3次输入错误后,退出程序 密码3次输入错误后,锁定用户名 Readme: UserList.txt 是存放用户名和密码的文件,格式为:usern ...
- mysql登录注册留言_实现登录注册的留言板思路
代码见 一.登录界面 1. 布局: a) 定width , height , margin:20px auto , box-shadow , border-radius b) p ...
- Vue登录注册,并保存登录状态
项目中有一些路由是需要登录才可以进入的,比如首页,个人中心等等 有一些路由是不需要登录就可以进入,比如登录页,注册页,忘记密码等等 那如何判断路由是否需要登录呢? 在router.js中添加meta区 ...
- typecho登录注册插件 集成聚合登录免申请开发者应用
简介 一款typecho的登陆注册插件 支持第三方登陆 小程序H5扫码即微信扫码 QQ 微博 百度 钉钉 GitHub Gitee 华为 Gitlab 阿里云 支付宝 小米 开源中国 领英 企业微信 ...
- 右侧按钮登录注册html,翻转式用户登录注册界面设计
这是一款非常实用的翻转式用户登录注册界面设计效果.该用户登录注册界面使用纯CSS3来制作,在用户点击登录和注册两个按钮时,登录和注册界面可以以水平翻转的方式来回切换,效果非常的酷. 制作方法 HTML ...
- mysql登录注册留言_能登录注册的留言板(1)——实现登录
(一) 小白实现了登录操作,如图,代码在下面 一.登录界面 1. 布局: a) 定width , height , margin:20px auto , box-shadow , bord ...
最新文章
- Daily Scrum 11.5
- shiro的QuickStart
- 深入浅出统计学 第一章 数据的可视化
- 智能车s3010舵机工作电压_全国大学生智能车竞赛决战南京信息工程大学
- javascript实现的复制到剪贴板
- “哎哟,真的很快哦” 闪送宣布签约周杰伦为其品牌代言人
- Android模块化之MicroModule(微信Pins工程) 1
- [debug] “ImportError DLL load failed 找不到指定的程序”的解析和解决办法。
- java怎样定义和使用数组,Java一维数组的定义和使用
- java查看jar包依赖_java项目开发中如何查找到项目依赖的jar包?
- mysql data目录 恢复_利用mysql data文件夹恢复数据
- BitTorrent协议规范(BitTorrent Protocol Specification)之Peer Wire协议(Peer Wire Protocol)-第四部分...
- 海力士固态测试软件,【海力士 256G MSATA固态硬盘使用总结】性能|接口|数据|品牌_摘要频道_什么值得买...
- html吃豆豆小游戏源码,HTML5 Canvas吃豆豆动画
- Mac-wifi密码破解 2020-04-30
- torch-geometric安装详细步骤
- 动态规划 HDU 1493 QQpet
- 二分查找(普通、找第一个、找最后一个)
- 四款强大的电脑软件,每一个都是黑科技,请低调收藏!
- IDF2012媒体日:全新云计算解决方案