自动登录小demo报空指针异常(NullPointerException)

自动登录小demo报空指针异常(NullPointerException)

这是一个登录小demo 密码用户名是固定的 然后利用session实现自动登录功能
前端代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form action="lo.do" method="post">
        <table>
            <tr>
                <td>姓名</td>
                <td><input type="text" name="user"></td>
            </tr>
            <tr>
                <td>密码</td>
                <td><input type="password" name="password"></td>
            </tr>
            <tr>
                <td><input type="submit" value="登录"> </td>
            </tr>
        </table>
    </form>
</body>
</html>

自动登录url servlet

package cn.baidu.c_autologin;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebServlet("/In.do")
public class IndexServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        //判断是否有session,如果有值,登录,没有就登陆界面 
        //获取session对象,非创建方式
        HttpSession session = request.getSession();
        //判断存在session的对象和存储的信息
        String name = (String)session.getAttribute("name");
        //登陆的session name 盖亚  因为是简单测试 所以默认只要用户名对就自动登录
        if(session !=null && name.equals("盖亚")){
           String html="<font size='7' color='green'>欢迎铁子来到直播间</font><a href='login.html'> <input type='button' value='注销'></a>";
			//登录成功以后假设到一个页面成功
           response.getWriter().append(html);
        }else {
           //如果 session里面没有值的话 说明 之前没有登陆过 重定向到登录界面
           response.sendRedirect(request.getContextPath()+"/login.html");
        }
    }
}

错误图:

在这里插入图片描述知道了这里的错误是在

 if(session !=null && name.equals("盖亚")){

解决方案

 if(session !=null && "盖亚".equals(name)){

错误原因:

session.getAttribute("name"); //我们这个时候如果还没有存入 name 的话  会得到 null
//而我后来也用
String name="";
System.out.println(name.equals("盖亚"));  //测试发现 结果就是空指针异常

所以下回我们在使用equals()方法的时候要尽量确定前面的值一定不能为空

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可能是您在实现ApplicationContextAware接口时出现了问题。当一个类实现了ApplicationContextAware接口后,它将能够获取到应用程序的ApplicationContext对象,并在需要时使用它。 NullPointerException异常通常意味着您尝试在一个空引用上调用方法或访问属性。在这种情况下,可能是因为您没有正确地注入或设置ApplicationContext对象,导致它为空。 请确保您已经将ApplicationContext正确注入到实现ApplicationContextAware接口的类中。您可以通过以下方式来实现: 1. 确保您的类已经声明为一个Spring bean,并且通过配置文件或注解正确地注入了ApplicationContext对象。 2. 如果使用XML配置文件,您需要添加以下内容: ```xml <bean id="yourBeanName" class="YourClassName" /> ``` 3. 如果使用注解配置,您需要确保您的类上使用了@Component注解,并且通过@Autowired注解将ApplicationContext对象注入到该类中。 ```java @Component public class YourClassName implements ApplicationContextAware { private ApplicationContext applicationContext; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext = applicationContext; } } ``` 请注意,以上示例中的"YourClassName"应该替换为您实际的类名,"yourBeanName"应该替换为您实际的bean名称。 如果您在实现上述步骤后仍然遇到NullPointerException异常,请检查您的配置是否正确,并确保ApplicationContext对象已经正确注入到您的类中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值