在我的jsp如果我叫<form action="/sampleServlet" method="get" name="form1">
,我得到以下異常:<形式行動= 「/ sampleServlet」 讓我異常
HTTP 404錯誤 - sampleServlet不found.I在 網絡設置sampleServlet .xml文件和url-pattern也設置爲/ sampleServlet。
爲什麼我得到404(找不到servlet)?
在我的jsp如果我叫<form action="/sampleServlet" method="get" name="form1">
,我得到以下異常:<形式行動= 「/ sampleServlet」 讓我異常
HTTP 404錯誤 - sampleServlet不found.I在 網絡設置sampleServlet .xml文件和url-pattern也設置爲/ sampleServlet。
爲什麼我得到404(找不到servlet)?
當您在HTML中使用URL時,如果沒有前導/它們是相對於當前URL(即當前頁面顯示)。憑藉領先的/他們是相對於網站根:
<form action="/context-path/sampleServlet">
或
<form action="sampleServlet">
會做你想要什麼。
我建議你動態地在動作路徑中添加上下文。 例子(JSP):
<form action="${pageContext.request.contextPath}/sampleServlet">
有了這個,你將永遠不會有改變路徑,例如,如果您將您的文件或複製你的代碼,或重命名你的背景!
可以幫助你
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出把
只要用行動=「sampleServlet」
它會爲你工作。
謝謝你..它的工作.. – user2365917
不客氣 –
這是給我一個404錯誤以下URL:http://127.0.0.1:8888/${pageContext.request.contextPath}/fileUpload – anon58192932