首先是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只允许进入登录注册的页面,没登录页面进行拦截。相关推荐

  1. java优化登录注册,Java-Web(项目)优化登录注册

    Java-Web(项目)优化登录注册 Java-Web(项目)优化登录注册 实现代码: package com.homework.dao1; public interface Login { publ ...

  2. Vue登录注册,并保持登录状态

    关于vue登录注册,并保持登录状态,是vue玩家必经之路,网上也有很多的解决方法,但是有一些太过于复杂,新手可能会看的一脸懵逼,现在给大家介绍一种我自己写项目在用而且并不难理解的一种方法. 项目中有一 ...

  3. Vue登录注册,并保持登录状态 1

    关于vue登录注册,并保持登录状态,是vue玩家必经之路,网上也有很多的解决方法,但是有一些太过于复杂,新手可能会看的一脸懵逼,现在给大家介绍一种我自己写项目在用而且并不难理解的一种方法. 项目中有一 ...

  4. python flask框架下登录注册界面_Python-用户登录 Flask-Login

    用户登录功能是 Web 系统一个基本功能,是为用户提供更好服务的基础,在 Flask 框架中怎么做用户登录功能呢?今天学习一下 Flask 的用户登录组件 Flask-Login Python 之所以 ...

  5. python登录注册接口_Python实现登录接口

    要求: 输入用户名和密码 认证成功,显示欢迎信息 用户名3次输入错误后,退出程序 密码3次输入错误后,锁定用户名 Readme: UserList.txt 是存放用户名和密码的文件,格式为:usern ...

  6. mysql登录注册留言_实现登录注册的留言板思路

    代码见 一.登录界面 1.  布局: a)      定width , height , margin:20px auto , box-shadow , border-radius b)      p ...

  7. Vue登录注册,并保存登录状态

    项目中有一些路由是需要登录才可以进入的,比如首页,个人中心等等 有一些路由是不需要登录就可以进入,比如登录页,注册页,忘记密码等等 那如何判断路由是否需要登录呢? 在router.js中添加meta区 ...

  8. typecho登录注册插件 集成聚合登录免申请开发者应用

    简介 一款typecho的登陆注册插件 支持第三方登陆 小程序H5扫码即微信扫码 QQ 微博 百度 钉钉 GitHub Gitee 华为 Gitlab 阿里云 支付宝 小米 开源中国 领英 企业微信 ...

  9. 右侧按钮登录注册html,翻转式用户登录注册界面设计

    这是一款非常实用的翻转式用户登录注册界面设计效果.该用户登录注册界面使用纯CSS3来制作,在用户点击登录和注册两个按钮时,登录和注册界面可以以水平翻转的方式来回切换,效果非常的酷. 制作方法 HTML ...

  10. mysql登录注册留言_能登录注册的留言板(1)——实现登录

    (一) 小白实现了登录操作,如图,代码在下面 一.登录界面 1.  布局: a)      定width , height , margin:20px auto , box-shadow , bord ...

最新文章

  1. Daily Scrum 11.5
  2. shiro的QuickStart
  3. 深入浅出统计学 第一章 数据的可视化
  4. 智能车s3010舵机工作电压_全国大学生智能车竞赛决战南京信息工程大学
  5. javascript实现的复制到剪贴板
  6. “哎哟,真的很快哦” 闪送宣布签约周杰伦为其品牌代言人
  7. Android模块化之MicroModule(微信Pins工程) 1
  8. [debug] “ImportError DLL load failed 找不到指定的程序”的解析和解决办法。
  9. java怎样定义和使用数组,Java一维数组的定义和使用
  10. java查看jar包依赖_java项目开发中如何查找到项目依赖的jar包?
  11. mysql data目录 恢复_利用mysql data文件夹恢复数据
  12. BitTorrent协议规范(BitTorrent Protocol Specification)之Peer Wire协议(Peer Wire Protocol)-第四部分...
  13. 海力士固态测试软件,【海力士 256G MSATA固态硬盘使用总结】性能|接口|数据|品牌_摘要频道_什么值得买...
  14. html吃豆豆小游戏源码,HTML5 Canvas吃豆豆动画
  15. Mac-wifi密码破解 2020-04-30
  16. torch-geometric安装详细步骤
  17. 动态规划 HDU 1493 QQpet
  18. 二分查找(普通、找第一个、找最后一个)
  19. 四款强大的电脑软件,每一个都是黑科技,请低调收藏!
  20. IDF2012媒体日:全新云计算解决方案

热门文章

  1. Spark Java API:Transformation
  2. 机器学习基础——RandomForest
  3. 2018/11/26
  4. Redis及Spring-Data-Redis入门学习
  5. 两种驱动系统运行的方式--分时的方式
  6. Black Hat 2017黑帽大会:8款值得一看的黑客工具
  7. Windows server 2008R2本地组与本地用户的创建和管理
  8. 139邮箱的邮件附件功能
  9. 一步一步学Silverlight 2系列(31):图形图像综合实例—实现水中倒影效果
  10. 6/100. Invert Binary Tree