Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Servlets doGet和doPost方法处的Nullpointer异常_Servlets - Fatal编程技术网

Servlets doGet和doPost方法处的Nullpointer异常

Servlets doGet和doPost方法处的Nullpointer异常,servlets,Servlets,这是获取Nullpointer异常的servlet代码。没有需要初始化的对象。有什么问题吗 package sms.controller; import sms.model.DbConnection; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.Date; import java.sql.PreparedStatement; import

这是获取Nullpointer异常的servlet代码。没有需要初始化的对象。有什么问题吗

package sms.controller;

import sms.model.DbConnection;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class StaffManagementServlet extends HttpServlet {

Connection con = null;
Statement st = null;
ResultSet rs = null;
PrintWriter out;
JSONArray jsonArray;
JSONObject jsonObject;
private static final long serialVersionUID = 1L;

/**
 * @see HttpServlet#HttpServlet()
 */
public StaffManagementServlet() {
    super();
    // TODO Auto-generated constructor stub
}

/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
 *      response)
 */
protected void doGet(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doPost(request, response); //line 50
}

/**
 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
 *      response)
 */
protected void doPost(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub

    String action = request.getParameter("action");
    System.out.println(action+"--------");
    if (action.equalsIgnoreCase("registration")) { //line 63
        userRegistration(request, response);
    }
    if (action.equalsIgnoreCase("login")) {
        userLogin(request, response);
    }
    if (action.equalsIgnoreCase("section")) {
        getSection(request, response);
    }
    if (action.equalsIgnoreCase("question")) {
        getQuestion(request, response);
    }
    if (action.equalsIgnoreCase("semister")) {
        getSemister(request, response);
    }
    if (action.equalsIgnoreCase("branch")) {
        getBranch(request, response);
    }
    if (action.equalsIgnoreCase("forget")) {
        forgetPassword(request, response);
    }
    if (action.equalsIgnoreCase("setPass")) {
        setPassword(request, response);
    }

}
这是我在服务器上运行sevlet时遇到的错误

java.lang.NullPointerException
sms.controller.StaffManagementServlet.doPost(StaffManagementServlet.java:63)
sms.controller.StaffManagementServlet.doGet(StaffManagementServlet.java:50)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

操作
为空。因此,对其调用方法会引发NullPointerException。您需要向请求传递一个操作参数,或者在
doPost()
方法中处理操作为null的可能性。

您的操作为null,因此在调用action.equalsIgnoreCase(“注册”)时。它抛出NullPointerException

这种情况下的最佳做法是在比较时使用常量作为第一个变量。

if ("registration".equalsIgnoreCase(action)) {
    // ....

} else if ("login".equalsIgnoreCase(action)) {
    // ....
}

// ....

else {
     throw new ServletException("Invalid action");
     // OR process default action here if action missing
}

设置为字符串action=“”+request.getParameter(“action”);和action永远不会为null,而是字符串“null”或使用yoda样式来比较字符串。让我们看看你的要求。