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

标签 java tomcat servlets

我制作的 servlet 有问题。您必须登录系统,还需要注销,我使用文件注册用户。登录工作正常,它从文件中读取用户,但由于某种原因注销没有。按注销按钮时出现错误:

enter image description here

这是类 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 变为空,因此它抛出空指针异常。

添加空检查

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

关于java - 尝试使用tomcat注销时出现Http 500错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23480328/

相关文章:

java - foreach 和 for 循环将重复记录复制到数组中

java - 如何使用 java "Open"和 "Save"

java - Spring微服务之间的通信

javascript - 谷歌 api 刷新 token 返回 null 与 react-google-login

tomcat - java.lang.ClassNotFoundException : servlet. FileServlet 使用 BalusC FileServlet

java - Servlet 不工作

tomcat - 如何对来自Tomcat服务器的下载请求进行带宽控制

eclipse webapp欢迎文件显示错误

java - 使用 servlet 向 mysql 添加数据不起作用

java - 上下文混淆 - Spring 实例化单例 bean 两次