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

JSP无法指向JavaEE和Tomcat9中Servlet类中的Post方法

戈安翔
2023-03-14
<form action="/login.do" method="Post">
Enter 
<br/><br/>
Your Name <input type="text" name="name"/>
<br/><br/>
Password <input type="text" name="password"/>
<br/><br/>
<select name="Gender">
<option value="Male">Male</option>
<option value="Female">Female</option>
</select>
<br/><br/>
<input type="submit" value="Login"/>

我的servlet:

@WebServlet(urlPatterns = "/login.do")
public class LoginServlet extends HttpServlet{
protected void doGet(HttpServletRequest request, javax.servlet.http.HttpServletResponse response) 
        throws ServletException, IOException{
    request.getRequestDispatcher("/WEB-INF/view/login.jsp").forward(request, response);


}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String name =request.getParameter("name");
    String password = request.getParameter("password");
    String gender = ((String)request.getParameter("Gender")=="Female")? "Ms.":"Mr.";

    if(new ValidateUser().validate(name, password)){
    request.setAttribute("name", name);
    request.setAttribute("password", password);
    request.setAttribute("gender", gender);
    request.getRequestDispatcher("/WEB-INF/view/welcome.jsp").forward(request, response);;
    } else {
    request.setAttribute("errorMes", "Login Failed");
    request.getRequestDispatcher("/WEB-INF/view/login.jsp").forward(request, response);;    
    }
}

根据一个教程,当我在jsp页面中单击to按钮时,它将触发Servlet类中的doPost()方法。

但是,我一直得到HTTP状态404-/login.do错误

<?xml version="1.0" encoding="UTF-8"?>
<!-- webapp/WEB-INF/web.xml -->
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">

  <display-name>To do List</display-name>
  <welcome-file-list>
    <welcome-file>login.do</welcome-file>
  </welcome-file-list>

我有这个pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.in28minutes</groupId>
    <artifactId>in28Minutes-first-webapp</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

<dependencies>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId>
        <version>6.0</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <verbose>true</verbose>
                    <source>1.7</source>
                    <target>1.7</target>
                    <showWarnings>true</showWarnings>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <path>/</path>
                    <contextReloadable>true</contextReloadable>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

共有1个答案

蒲曦
2023-03-14

我的建议是:

您应该在表单标记的action参数中设置您在localhost:8081/in28minutes-first-webapp/login.do页面上的位置,而不是localhost:8081/login.do。尝试设置以下设置之一:action=“login.do”action=“localhost:8081/in28minutes-first-webapp/login.do”action=“/in28minutes-first-webapp/login.do”

我尝试了“${PageContext.Request.ContextPath}/login.do”,但仍然会出现错误

 类似资料:
  • 我有2个问题 1)我有一个login.jsp页和索引页。一旦我验证了用户(在servlet ie中),用户将被重定向到index.jsp页面。我用servlet的这条线重定向它 这个过程运行良好。但是当我刷新页面时,我会被重定向回登录页面。另外,我注意到在index.jsp页面上,我得到的名字而不是index.jsp,即我的servlet名称得到displayed.for这样的例子得到代替显示 2

  • 问题内容: 大家好,我为用户创建了一个jsp页面,他们可以在其中更新现有详细信息,并在提交数据库时更新记录。 1.> Accountdetails.java 2.> success.jsp 3.> web.xml 这里的问题是当填写所有字段并单击提交时,它无法更新它。 它进入其他部分,显示更新数据失败。 当我sys出它显示SQL是 我也试过 至 但仍然无法更新。 请帮助我纠正错误,因为我现在不知道

  • 本文向大家介绍JSP、Servlet中get请求和post请求的区别总结,包括了JSP、Servlet中get请求和post请求的区别总结的使用技巧和注意事项,需要的朋友参考一下 在学习JavaWeb最初的开始阶段,大家都会遇到HttpServlet中的doGet和doPost方法。前两天看《Head First Servlets & JSP》看到其中讲关于Servlet中get请求和post请求

  • 我正在做一个简单的表单验证。我无法转发到jsp页面。请参阅下面的代码。行B和行C工作正常,但行A产生错误 行B和行C成功地转到请求的页面,但行A产生此错误

  • 问题内容: 为什么在下面的代码中,使用类变量作为方法指针会导致未绑定的方法错误,而使用普通变量则可以正常工作: 完整错误: 问题答案: 我喜欢从下至上查看这种行为。 Python中的函数充当“描述符对象”。因此,它具有一种方法。 对具有此类方法的类属性的读取访问将“重定向”到该方法。对类的属性访问以方式执行,而对实例的属性访问则映射到。 函数的方法的任务是将函数包装在一个方法对象中,该对象将包装参

  • 我无法运行我的程序。它应该将信息从JSP页面获取到servlet,这样就可以通过java类中的方法进行验证。然后,经过验证后,servlet确定是将消息发送到上一个JSP页面还是发送到成功的JSP页面。当我运行这个程序时,它会把我带到注册器。jsp页面。我输入信息,然后点击提交。它把我拖到了404找不到的页面。该链接说它正在尝试将我指向CreateUser。JavaServlet。它不应该那样做。