11

在我的jsp中,如果我打电话<form action="/sampleServlet" method="get" name="form1">,我会得到以下异常:

http 404 错误--未找到 sampleServlet。我在 web.xml 文件中设置了 sampleServlet,并且 url-pattern 也设置为 /sampleServlet。

为什么我得到 404(未找到 servlet。)?


UIWebView -> “添加到阅读列表未显示”

我有一个UIWebView,我在其中打开了一个网站。该网站包含许多超链接。当我在 Safari 中长按它时,我得到一个操作表: 添加到阅读列表复制打开正在显示。但是在我的 UIWebView添加到阅读列表中没有显示(低于 6.1)。

4

3 回答 3

37

当您在 HTML 中使用 URL 时,没有前导 / 它们相对于当前 URL(即显示的当前页面)。使用前导 / 它们是相对于网站根目录的:

<form action="/context-path/sampleServlet">

或者

<form action="sampleServlet">

会做你想做的。

我建议您在动作路径中动态添加上下文。示例(在 JSP 中):

<form action="${pageContext.request.contextPath}/sampleServlet">

有了这个,您将永远不必更改路径,例如,如果您移动文件或复制代码,或重命名您的上下文!

于 2013-05-22T05:16:20.047 回答
5

可能会帮助你

小服务程序配置

<servlet>
    <servlet-name>sampleServlet</servlet-name>
    <servlet-class>test.sampleServlet</servlet-class>
  </servlet>
<servlet-mapping>
    <servlet-name>sampleServlet</servlet-name>
    <url-pattern>/sampleServlet/</url-pattern>
  </servlet-mapping>

小服务程序代码:

package test;

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


public class sampleServlet extends HttpServlet{

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException{
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<body>");
        out.println("<h1>Hello Servlet Get</h1>");
        out.println("</body>");
        out.println("</html>"); 
    }
}

JSP代码:

<html>
  <body>
     <form action="/sampleServlet/" method="GET">
      <input type="submit" value="Submit form "/>
     </form>
  </body>
</html>

您可以单击提交按钮,然后您可以看到 servlet 输出

于 2013-05-22T07:02:32.213 回答
0

只需使用 action="sampleServlet"

它会为你工作。

于 2015-08-31T12:15:16.790 回答