在我的jsp中,如果我调用<form action="/sampleServlet" method="get" name="form1">
,我会得到以下异常:
http 404错误 - 找不到sampleServlet。我在中设置sampleServlet web.xml文件和url-pattern也设置为/ sampleServlet。
为什么我得到404(找不到servlet。)?
答案 0 :(得分:33)
当您在HTML中使用URL时,没有前导/它们相对于当前URL(即显示的当前页面)。领先/他们是相对于网站根:
<form action="/context-path/sampleServlet">
或
<form action="sampleServlet">
会做你想做的事。
我建议你动态地在动作路径中添加上下文。 示例(在JSP中):
<form action="${pageContext.request.contextPath}/sampleServlet">
使用此功能,您无需更改路径,例如,如果您移动文件或复制代码,或重命名上下文!
答案 1 :(得分:5)
可能会帮到你
servlet配置
<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>
Servlet代码:
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 out put
答案 2 :(得分:1)
只需使用action =&#34; sampleServlet&#34;
它适用于你。