当前位置: 首页 > 知识库问答 >
问题:

Java servlet submit按钮不工作

刘焱
2023-03-14

我一直在写一个小的登录servlet。登录部分工作得很好,但当我按下logout submit按钮时--什么也没有发生。
Servlet代码下面是:

public class LoginServlet extends HttpServlet {
    /**
     * 
     */
    private static final long serialVersionUID = 7638796169158385551L;
    private Database database = Database.getInstance();

    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        out.write("<html><head><title>Login form</title></head>");
        if (!database.connected) {
            outLoginForm(out);
        } else {
            out.write("Hello " + database.getLoginName() + "!");
            outLogoutForm(out);
        }
        out.write("</body></html>");
    }

    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        if (request.getParameter("loginsub") != null) {
            if (isParameterEmpty(request, "login")
                    || isParameterEmpty(request, "pass")) {
                response.getWriter().write("Some fields are empty");
                doGet(request, response);
            }
            try {
                database.connect(request.getParameter("login"),
                        request.getParameter("pass"));
            } catch (ExceptionInInitializerError ex) {
                response.getWriter().write("Login or password is incorrect");
            }
        } else if (request.getParameter("logoutsub") != null) {
            database.disconnect();
        }
        doGet(request, response);
    }

    private boolean isParameterEmpty(HttpServletRequest request,
            String parameter) {
        if (request.getParameter(parameter).isEmpty())
            return true;
        return false;
    }

    protected void outLoginForm(PrintWriter out) {
        out.write("<FORM method =\"POST\">");
        out.write("Login:<input type=\"text\"name=\"login\"><br>");
        out.write("Password:<input type=\"password\"name=\"pass\"><br>");
        out.write("<input type=\"submit\"name=\"loginsub\" value=\"Login\"/><br>");
        out.write("</FORM><br>");
    }

    protected void outLogoutForm(PrintWriter out) {
        out.write("<FORM method =\"POST>\">");
        out.write("<input type=\"submit\"name=\"logoutsub\" value=\"Logout\"/><br>");
        out.write("</FORM><br>");
    }
}

有谁能帮我找出出了什么问题吗?我是JSP和Java servlet的新手。

共有1个答案

柯新翰
2023-03-14

有一个问题在行下面(在post后面多一个>

 out.write("<FORM method =\"POST>\">");

将其替换为

out.write("<FORM method =\"POST\">");
 类似资料:
  • 我有一个问题使添加到购物车按钮工作。不确定是哪一部分代码导致了这个问题。但是,问题的链接是:https://barkerbespoke.com/collections/tie-collection/products/black-wool 你有什么建议?

  • 我面临commandButton的问题,它只有在类型为submit时才起作用。有没有人可以看一下,让我知道是否有解决办法?下面的代码非常简单,并有足够的建议来说明我需要什么。方法test()未执行。方法runSubmit已成功执行。 我需要测试方法在没有提交的情况下执行,因为原始页面确实在提交期间执行了验证,test()方法必须在没有提交的情况下执行,因为这是提交之前的一个初步操作。 我正在使用P

  • 我是Python新手,对GUI编程更是新手。 我有一个按钮和两个旋转箱,我想在点击开始按钮后禁用它们。我在谷歌上搜索了5种禁用Tkinter按钮的不同方法,但似乎都不起作用。理论上,旋转箱应该以同样的方式被禁用,但我只是运气不好。对整个图形用户界面感到非常沮丧。 和是两个spinbox 正如您所看到的,我尝试对按钮使用,但它不起作用。我见过各种各样的代码,在所有的大写字母、大写字母和不同的引号中都

  • 所以我在我的一个程序中使用cardLayout,我试图使它成为当你点击一个按钮时下一个面板加载。我有一个panelHolder类,其中保存了cardlayout,每次按下面板上的按钮时,它都会调用panelHolder类中的一个方法,该方法根据按钮将某个布尔变量设置为true,并调用repaint(其中显示了面板)。由于某种原因,我的按钮坏了,我似乎找不出原因。有人能帮帮我吗?

  • 我使用的是Laravel5.2框架,我已经使用命令创建了auth。我的AuthController中有以下内容: 这些在我的路线上。php文件: 登录/注册时,一切正常,但当我按下注销按钮时,没有任何变化,我仍然登录。我想要的是在单击注销按钮后重定向到auth/login视图。请帮忙。

  • 我在堆栈中有2个片段,它们都包含EditText。(红色编辑文本来自底部片段) 当我点击软键“下一步”按钮时,光标应该移动到第二个编辑文本,但它跳到了底部片段编辑文本。 如果我使用“fragmentManager”。replace(new TopFragment())',因此堆栈中只有一个片段,没有问题,光标移动到第二个编辑文本。 “碎片Manager.replace(...)”不是一个解决方案,