gpt4 book ai didi

java - CheckFilter 中出现 NullPointerException?

转载 作者:行者123 更新时间:2023-12-01 23:38:14 26 4
gpt4 key购买 nike

由于 NPE,我在 Filter 类中遇到了困难。我知道这意味着什么,我检查了空可能性,但没有成功。如果您能帮助我的话,原因是什么?这是我的代码..

   public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {

HttpServletRequest req = (HttpServletRequest) request;
HttpSession session = req.getSession();
RequestDispatcher rd = null;


if (session != null) {

Person user = (Person) session.getAttribute("person");
String personType=user.getType(); **<----- EXCEPTION HERE**

让我告诉你我项目的这一部分...我有一个与 servlet、jsp、MysqlDB、Filters 和 java 类相关的 Web 应用程序...我想用我的 Filter 检查所有 jsp 的安全性登录用户的用户类型为 USER、ADMIN 或 MANAGER。在我的代码上方,我检查了是否有任何 session 启动( session != null),如果没有将用户再次重定向到登录页面...那么我如何在这里避免 NPE?谢谢回复

此代码与用户是否为管理员以及是否为管理员连续,然后继续...第一个范围是 if(session!=null).. 因此,如果为 false,则过滤器将用户重定向到 login.jsp。如果您愿意,我可以发布代码。

最佳答案

原因是user对象为null。即使 session.getAttribute("person") 返回 null

,转换也会起作用

您需要对用户进行null检查

Person user = (Person) session.getAttribute("person");
if(user != null) {
String personType=user.getType();
}

关于java - CheckFilter 中出现 NullPointerException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18332676/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com