Servlet的doGet不是从JSP表单调用的

时间:2010-05-03 12:10:15

标签: jsp tomcat servlets

我在JSP页面上有这段代码

<form action="LoginServlet" method="get">
    <input type="text" name="username" /> 
    <input type="text" name="password" /> 
    <input type="submit" value="Submit" />
</form>

当我按提交时,我得到:

  

页面无法显示页面   你正在寻找目前   不可用。该网站可能是   遇到技术困难,   或者您可能需要调整浏览器   设置。

不会调用

LoginServlet.doGet方法。 但是当我再次按Enter键(在地址栏中)时,我的doGet方法被调用。

有什么问题?我正在使用Java EE eclipse和Tomcat

1 个答案:

答案 0 :(得分:1)

您的web.xml文件中包含哪些内容?

您的WEB-INF / web.xml文件需要将JSP中指定的LoginServlet与Java类LoginServlet相关联。 (为清楚起见,我更改了值的名称。)

因此,如果你的JSP中有

<form action="jspAction" method="get"> 
    <input type="submit" value="Submit" /> 
</form> 

并且您的Java类是

package com.me

import javax.servlet.*;
import javax.servlet.http.*;

public class LoginServlet extends HttpServlet {
  public void goGet(HttpServletRequest request, 
     HttpServletResponse response)
        throws ServletException, IOException
  {
     //your code
  }
}

您的web.xml文件将

<web-app>
    <!-- Standard Action Servlet Configuration -->
    <servlet>
        <servlet-name>myServletName</servlet-name>
        <servlet-class>com.me.LoginAction</servlet-class>
    </servlet>
    <!-- Standard Action Servlet Mapping -->
    <servlet-mapping>
        <servlet-name>myServletName</servlet-name>
        <url-pattern>jspAction</url-pattern>
    </servlet-mapping>
</web-app>

因此web.xml文件将myServletName与servlet类com.me.LoginAction相关联。然后,对http://localhost:8080/myApp/jspAction的任何请求都将被定向到myServletName,最终被定向到com.me.LoginAction。