2013-08-02 31 views
0

我的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()。

回答

1

<url-pattern>/*</url-pattern>趕上/pravesh/index.html。所以,servlet MyServlet處理請求(實際上是一個GET請求)。

您需要一種不會陷入應用程序靜態資源的模式。在您的窗體您有:

<form action="MyServlet" method="post"> 

的模式應該是:

<url-pattern>/MyServlet</url-pattern> 
+0

什麼應該是正確的url-pattern,使index.html頁面顯示出來? – theSilentOne

+0

查看我的答案更新。祝你好運! –