【问题标题】:doPost method is not getting called when clicked submit in the jsp file在jsp文件中单击提交时不会调用doPost方法
【发布时间】:2018-07-14 12:10:57
【问题描述】:

我正在关注此链接中的教程。https://www.youtube.com/watch?v=pOUDEFVjUXM。我没有使用任何 IDE。我没有使用注释,而是配置web.xml 文件。我正在使用Tomcat。正在使用的文件如下。

LoginServlet.java

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import javax.servlet.ServletException;
import java.io.PrintWriter;

public class LoginServlet extends HttpServlet
{
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
  {
    request.getRequestDispatcher("login.jsp").forward(request,response);
  }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
  {
    response.getWriter().println("Success");
  }
}

web.xml

<web-app>
  <servlet>
    <servlet-name>loginservlet</servlet-name>
    <servlet-class>LoginServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>loginservlet</servlet-name>
    <url-pattern>/login</url-pattern>
  </servlet-mapping>
</web-app>

login.jsp

<form method="post" action="/login">
  <input type="text" name="username"/>
  <input type="password" name="password"/>
  <input type="submit" name="Submit"/>
</form>

当我在 login.jsp 页面中输入用户名和密码时,我得到the following error in Tomcat

HTTP 状态 404
类型:状态报告
消息:登录
说明:源服务器没有找到目标资源的当前表示或不愿意透露 htat 的存在。

但是在教程中,doPost 方法被调用了。我被困住了。请帮忙。

【问题讨论】:

    标签: java xml jsp servlets web-applications


    【解决方案1】:

    我想你错过了将你的 url 添加到你的 contextPath 中。 在tomcat中contextPath与项目名称重合。

    在你的 login.jsp 中替换 action="/[myProjectName]/login"

    【讨论】:

    • 不,我做到了。这是我使用的网址。 localhost:9090/ServletProject/login。输入用户名和密码后,页面被重定向到 localhost:9090/login。
    • 在 /login your projectName 之前添加操作 -> 你必须调用 post 到 localhost:9090/ServletProject/login
    • 对不起。我不太明白你想说什么。能否请您详细说明。
    • 当您点击登录链接时会导致 localhost:9090/login,但您需要的是导致 localhost:9090/ServletProject/login。所以问题可能出在 login.jsp 中,尝试用“ServletProject/login”替换表单中的操作
    • 它不工作。这次错误消息更改为“消息/ServletProject/ServletProject/login”。此外,在我正在关注的视频教程中,在 34:32,页面被重定向到 localhost:8080/login。
    猜你喜欢
    • 1970-01-01
    • 2012-07-21
    • 2017-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多