我的Apache Tomcat安裝目錄爲C:\ Apache的Tomcat的7.0.42HTML表單自動調用,而不提交的Servlet
對於網絡應用程序文件夾中,我創建的index.html和WEB-INF文件夾中。
的index.html
<html>
<form action="MyServlet" method="post">
<pre>
Enter A: <input type="text" name="fieldA">
Enter B: <input type="text" name="fieldA">
Add <input type="radio" name="operation" value="add">
Sub <input type="radio" name="operation" value="sub">
Add <input type="radio" name="operation" value="mul">
Div <input type="radio" name="operation" value="div">
<input type="submit" value="submit">
Result: <input type="text" name="result">
<pre>
</form>
</body>
</html>
在WEB-INF文件夾中,我創建web.xml和文件夾命名爲 「類」
的web.xml
<web-app>
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
在的webapps/pravesh /我創建的WEB-INF/classes文件夾MyServlet.java
MyServlet.java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.io.IOException;
import javax.servlet.ServletException;
public class MyServlet extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out=response.getWriter();
out.println("<html><body>");
out.println("doGet");
out.println("</body></html>");
out.close();
}
}
我啓動的tomcat服務器正在運行,就像我輸入localhost:8080時顯示的那樣。
問題: - 1)當我輸入localhost:8080/pravesh/index.html時,它不顯示我的html頁面。相反,它會自動提交表單並運行MyServlet並打印
doGet
頁面上雖然如果我刪除整個WEB-INF文件夾,HTML頁面顯示出來。
2)如果將doPost()放在MyServlet.java中,並將index.html表單的方法更改爲post,則表示「HTTP方法GET不受此URL支持」,而不是doGet()。
什麼應該是正確的url-pattern,使index.html頁面顯示出來? – theSilentOne
查看我的答案更新。祝你好運! –