0

我有一个index.jsp文件有两种不同类型的表格

<form action="searchpath" name="searchForm" method="get">
<p>BedType</p>
   <select name="bedType">
     <jsp:include page="/WEB-INF/embeds/bedType.jsp"/>
   </select>
   <p>Max Price</p>
     <input size="10" maxlength="10" name="mPrice"/>
     <br/><br/>
     <input name="Reset" type="reset" value="RESET" class="input"/> <input type="submit" class="input" value="SUBMIT"/>
</form>

    <form action="loginController" method="post" id="loginForm">
        Please Login :<input name="username" size="30" maxlength="30"/> 
        Password : <input name="pass" type="password" size="30" maxlength="30"/>    
        <input type="submit" value="SUBMIT" class="input"/>
    </form>

我认为action定向到的字段类型web.xml <url-pattern>/searchpath</url-pattern>将允许我将我在这些表单中放置的任何输入信息定向到该路径的 servlet。也就是说,第一个表单将与我的searchpathservlet 交互。当我尝试提交表单并打印出信息时,似乎没有任何效果,而且我一直收到一个http 404 error. 有人可以帮我解决这个问题吗?

网页.xml:

  <servlet-mapping>
    <servlet-name>Search</servlet-name>
    <url-pattern>/searchpath</url-pattern>
  </servlet-mapping>

在我的 search.java servlet 中:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.println("<HTML>");
    out.println("<HEAD>");
    out.println("<TITLE>Static Servlet</TITLE>");
    out.println("</HEAD>");
    out.println("<BODY>");
    out.println("<h1>WTF</h1>");
        out.println("</BODY>");
    out.println("</HTML>");
4

1 回答 1

1

检查浏览器 URL。您缺少上下文。

假设您在http://localhost:8080/test/index.jsptest运行,您的上下文路径在哪里。

所以,调用 Servlet 的时候应该是http://localhost:8080/test/searchpath

在你的情况下,它不是那样的。

因此,添加 cotextpath 将解决您的问题。

例如action="<%=request.getContextPath()%>/searchpath"

于 2012-05-05T09:36:37.783 回答