Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.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
Java 尝试使用tomcat注销时出现Http 500错误_Java_Tomcat_Servlets - Fatal编程技术网

Java 尝试使用tomcat注销时出现Http 500错误

Java 尝试使用tomcat注销时出现Http 500错误,java,tomcat,servlets,Java,Tomcat,Servlets,我正在制作的servlet有问题。你必须登录到一个系统,你也需要注销,我用一个文件注册用户。登录工作正常,它从文件中读取用户,但由于某些原因,注销无法执行。按下注销按钮时出现错误: 下面是LogoutServlet类的代码 package nl.hu.sp.lesson1.dynamicexample; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.

我正在制作的servlet有问题。你必须登录到一个系统,你也需要注销,我用一个文件注册用户。登录工作正常,它从文件中读取用户,但由于某些原因,注销无法执行。按下注销按钮时出现错误:

下面是LogoutServlet类的代码

    package nl.hu.sp.lesson1.dynamicexample;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;

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

public class LogoutServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

        RequestDispatcher rd = null;

        try {
            String data = null;
            File file = new File(
                    "C:/apache-tomcat-8.0.5/webapps/LoginAssignment/loggedusers.txt");
            FileReader fr = new FileReader(file);
            BufferedReader br = new BufferedReader(fr);
            while ((data = br.readLine()) != null) {
                String[] de = data.split(" ");
                if (de[0].equals("vimal")) {
                    data.trim();

                    rd = req.getRequestDispatcher("testpage.html");
                }
            }
            rd.forward(req, resp);
            br.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

您正在读取一个文本文件并搜索“vimal”,如果发现它,您正在初始化
rd
;如果未找到它,
rd
为空。它在文本文件中找不到“vimal”,并且
rd
变为null,因此它抛出null指针异常

添加空检查

if (rd != null) {
    rd.forward(req, resp);
}

代码中第39行是什么?rd.forward(req,resp);我认为在这种情况下req是null的,所以null指针异常