eclipse中空指针问题.

问题遇到的现象和发生背景

在eclipse上写添加学生信息时报错

问题相关代码,请勿粘贴截图

InsertSevlet中的部分代码:

response.setContentType("text/html;charset=utf-8");
HttpSession session=request.getSession();
//PrintWriter out=response.getWriter();

    String id=request.getParameter("id");
    String name=request.getParameter("name");
    String sex=request.getParameter("sex");
    String age=request.getParameter("age");
    String address=request.getParameter("address");
    Player p=null;
    Worksql w=null;
    if(id.equals("")||name.equals("")||sex==null||age.equals("")||address.equals("")){
        session.setAttribute("insertstr","请填写完整!");
        request.getRequestDispatcher("/insertfail.jsp").forward(request,response);

    }else{
        p=new Player();
        w=new Worksql();
        p.setId(id);
        p.setName(name);
        p.setSex(sex);
        p.setAge(age);
        p.setAddress(address);
        Player p1=w.selectInformation(p);
        if(id.equals(p1.getId())){

            session.setAttribute("insertstr","已经有此学生!");
            request.getRequestDispatcher("/insertfail.jsp").forward(request,response);
        }else{
            int n=w.insertInformation(p);
            if(n!=0){

                request.getRequestDispatcher("/insertok.jsp").forward(request,response);
            }
        }
    }
运行结果及报错内容

HTTP状态 500 - 内部服务器错误

类型 异常报告

描述 服务器遇到一个意外的情况,阻止它完成请求。

例外情况
java.lang.NullPointerException
Servlet.InsertServlet.doGet(InsertServlet.java:42)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

console:

严重: 在路径为[/Test]的上下文中,servlet[Servlet.InsertServlet]的Servlet.service()引发异常
java.lang.NullPointerException

我的解答思路和尝试过的方法
我想要达到的结果

建议你debug一下。看哪里空指针了。空指针就是这个参数为null但是你却使用它的方法。所以空指针异常。

InsertServlet.java:42
这行代码看一下。

Player p1=w.selectInformation(p);

是不是查询的结果p1为空,导致后面判断时,p1.getId()空指针异常了。

打个断点一步步走一下看看。
另外.equals方法你这么用不太建议,一般情况把比较的值放前面,参数放后面,可以防止空指针。例如

if(("").equals(id)||("").equals(name)){}