Java Filter 将未登录的用户重定向到登录页面

2023-11-26

我试图制作一个过滤器来阻止未登录的用户访问某些页面。为此,我制作了一个包含以下内容的过滤器类doFilter method

HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
String url = request.getRequestURI();
boolean allowedRequest = false;

System.out.println(url);

if(urlList.contains(url)) {
    allowedRequest = true;
    System.out.println("in list");
}

if (!allowedRequest) {
    Object o = request.getSession().getAttribute("UserInfo");
    if (null == o) {
        System.out.println("Hey i am in");
        response.sendRedirect("/login.jsp");
    }
}

chain.doFilter(req, res);

} // end of doFilter

为了允许不需要用户登录的页面,我在 init() 中创建了一个 arraylist url-list

现在发生了一件非常奇怪的愚蠢的事情。假设我有两个页面 home.jsp 和 dcr.jsp。当我尝试在不登录的情况下访问 home.jsp 时,我成功重定向到 login.jsp 但当我尝试访问 dcr.jsp 时,它没有被重定向,尽管它进入了我可以理解的循环 if(null == o)因为我在控制台中打印了该行。这是我在服务器中得到的输出 这是我在服务器中得到的输出

/dcrmaintenance.jsp

Hey i am in

这告诉我 null == o 是正确的。

页面 dcr.jsp 访问会话对象,并且由于用户未登录,因此它按预期获取 java.lang.NullPointerException 但我无法理解为什么即使在进入循环后也没有发生重定向。如果有人可以指出在哪里我犯了一个错误,我们将不胜感激。


After response.sendRedirect("/login.jsp"); do return;.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java Filter 将未登录的用户重定向到登录页面 的相关文章

随机推荐

  • 将 Rails Gem Active Admin 与关联结合使用

    我正在尝试新的 Rails gemhttp activeadmin info 而且效果很好 但是我找不到任何有关如何跨协会使用它的文档 例如 class Membership lt ActiveRecord Base belongs to
  • 在 PHPUnit 中,如何模拟不属于类的函数?

    我目前正在从事的项目包含面向对象和过程化 PHP 代码的混合体 所以我有这样的事情 function doStuff value x value 1 return x class MyClass private field public f
  • ACTION_USER_PRESENT、ACTION_SCREEN_ON、ACTION_BOOT_COMPLETED 的广播接收器

    我正在创建一个使用广播接收器的类 我想接收有关手机解锁的广播 但有一些问题 请帮帮我 我的 Manifest xml 是
  • 当表单再次显示时,单选按钮保存最后选中的而不是所需的按钮

    我有一些TRadioButtons on Form2并打电话Form2 from Form1用这个代码 procedure TForm1 btnCallForm2Click Sender TObject begin Form2 RadioB
  • Swift 异步加载图像

    我正在研究从 url 异步显示图像 我尝试创建一个新线程来下载图像 然后刷新main thread func asyncLoadImg product Product imageView UIImageView let downloadQu
  • 在 Spring Boot 中创建自定义 Jasypt PropertySource

    我正在使用 Spring Boot 创建一个访问数据库的简单 Web 应用程序 我通过设置来利用数据源的自动配置功能spring datasource 属性在application properties 一切都非常顺利 而且速度非常快 干得
  • 在 Libgdx 屏幕之间切换

    我仍在研究这个 libgdx 项目 并且正在尝试找出将屏幕更改为游戏屏幕的最佳方法 现在 当单击按钮时 我需要它转换到游戏屏幕 我已经看到了一些扩展游戏类的实现 但我不确定这里最好的方法是什么 这是主要的应用程序类 public class
  • Bootstrap 模式表单提交后不会关闭

    我需要做的是显示一个弹出窗口 向我的数据库添加一条新记录 我使用 bootstrap 3 我喜欢它 因为我没有使用一行 jquery 而且我有非常好的形式 显然它们是基于 jquery 我正在通过 ajax 验证我的表单 但现在的问题是我的
  • 为什么 .NET 中不检查异常?

    我知道谷歌搜索我可以找到合适的答案 但我更喜欢听听您的个人 也许是技术 意见 Java 和 C 在抛出异常方面存在差异的主要原因是什么 在 Java 中 抛出异常的方法的签名必须使用 throws 关键字 而在 C 中 您不知道在编译时是否
  • MySQL 选择 JOIN 3 个表

    我有三个基本表 tblUsers usrID usrFirst usrLast 1 John Smith 2 Bill Jones 3 Jane Johnson pm data id date sent title sender id th
  • WPF 日历:粗体指定日期?

    我正在创建一个窗口 该窗口使用 WPF 日历来浏览在所示月份的指定日期创建的文档 当日历更改月份时 我会在数据库中搜索该月创建的所有文档 并用它来创建该月内包含文档的日期列表 在日历控件中 我想将包含文档的日期加粗 就像 Outlook 将
  • 在 3D 中拟合直线

    是否有任何算法可以从一组 3D 数据点返回直线方程 我可以找到大量的资料来给出 2D 数据集中的直线方程 但没有一个是 3D 的 如果您试图从其他两个值中预测一个值 那么您应该使用lstsq与a参数作为自变量 加上一列 1 来估计截距 和b
  • 加快从 pyodbc 插入 SQL Server 的速度

    In python 我有一个从一个数据库中选择数据的过程 Redshift via psycopg2 然后将该数据插入到SQL Server via pyodbc 我选择执行读 写而不是读 平面文件 加载 因为行数约为每天 100 000
  • jQuery 插件也适用于动态创建的元素

    我正在编写一个 jquery 插件 它应该处理链接上的额外信息以指定打开行为 例如 我想支持如下标记 a href somewhere class openmode a a href somewhere class openmode a a
  • 用于文档创建的元数据中是否有 Firestore 时间戳?

    我想知道 Cloud Firestore 是否在元数据中为每个文档创建时间戳 如果是 该元数据是否可用 我知道我可以出于任意原因在文档中创建自己的时间戳 但我只对文档本身的创建时间感兴趣 提前致谢 对于最新的 firestore beta
  • SQL SERVER 表变量上的非聚集索引?

    如何在表变量上创建非聚集索引 创建表 risk rskid 整数 在 risk rskid 上创建非聚集索引 r rskid nc 这是行不通的 My proc 我该如何优化它 ALTER PROCEDURE dbo SPR LV004 T
  • PostgreSQL + Rails citext

    我正在尝试迁移到使用 PostgreSQL 8 4 的heroku 它有一个 citext 列类型 这很好 因为该应用程序是为 MySQL 编写的 有没有办法将 citext 与 Rails 一起使用 这样如果迁移在 MySQL 上运行 c
  • 如何使用 UIBarButtonSystemItem 更改 UIBarButtonItem 标识符? (迅速)

    我想用代码从 播放 更改为 暂停 来更改 UIBarButtonItem 的标识符 我怎样才能做到这一点 Thanks 1 初始化一个新按钮 change to play let button UIBarButtonItem barButt
  • 有没有办法在异常时启动 Ruby 调试器?

    有没有办法在代码抛出异常时启动 Ruby 调试器 而无需我像这样包装代码 begin do something rescue debugger end 我希望以这样的方式来实现 do something部分引发异常 调试器将启动 如果不必修
  • Java Filter 将未登录的用户重定向到登录页面

    我试图制作一个过滤器来阻止未登录的用户访问某些页面 为此 我制作了一个包含以下内容的过滤器类doFilter method HttpServletRequest request HttpServletRequest req HttpServ