2016-09-24 50 views
0

我試圖執行一個servlet程序,它將選擇一種顏色並通過servet顯示它。我已經正確地配置了tomcat服務器。但是當我試圖運行代碼時,index.HTML文件正常打開,但是當我點擊提交按鈕時,它假設打開我的servlet文件,它將顯示我選擇的顏色。但是,而不是讓我的servlet我得到一個404錯誤。這是下面給出的代碼。任何建議?無法連接到Netbeans中的servlet文件

import java.io.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 

public class ColorPostServlet extends HttpServlet { 

public void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws IOException, ServletException{ 
    String color = request.getParameter("color"); 
    response.setContentType("text/html"); 
    PrintWriter pw = response.getWriter(); 
    pw.println("<B>The Selected Color is:"); 
    pw.println(color); 
} 
} 

這裏是我的html文件

<html> 
<head> 
    <title> </title> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
</head> 
<body> 
<center> 
    <form name="Form1" 
      method="post" 
     action="http://localhost:8084/ServletExample/ColorGetPost"> 
     <B>Color:</B> 
     <select name="color" size="1"> 
      <option value="Red">Red</option> 
      <option value="Blue">Blue</option> 
      <option value="Green">Green</option> 
     </select> 
     <br><br> 
     <input type="submit" value="Submit"> 
    </form> 
</center> 
</body> 
</html> 

當我運行這個程序,我發現了網頁,我可以選擇的顏色:

screenshot

但點擊後提交按鈕我收到404錯誤。爲servlet

xml文件

<servlet> 
    <servlet-name>ColorPostServlet</servlet-name> 
    <servlet-class>ServletExample.ColorPostServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>ColorPostServlet</servlet-name> 
    <url-pattern>/ColorPostServlet</url-pattern> 
</servlet-mapping> 
<session-config> 
    <session-timeout> 
     30 
    </session-timeout> 
</session-config> 

my app "ServletExample"

+0

是否'ColorPostServlet'已經有一個'包ServletExample;'? '/ ColorPostServlet' **不是**'/ ColorGetPost',除非你的應用程序被部署爲'ServletExample',那麼'/ ServletExample/ColorGetPost'也是不正確的。 –

+0

是的,ColorPostServlet.java駐留在包ServletExample –

回答

0

在窗體中有錯誤的行動網址。

<form name="Form1" 
method="post" 
action="http://localhost:8084/ServletExample/ColorGetPost"> 

應該指向服務器URL:

<form name="Form1" 
method="post" 
action="http://localhost:8084/ServletExample/ColorPostServlet"> 

所以基本上:行動= 「HTTP://本地主機:端口]/[項目名]/[ServletName]」

+1

謝謝,現在它工作。 –

0

它必須作爲評論,但由於缺乏足夠的聲譽發佈作爲答案。

你想提交您的形式ColorPostServlet所以你的形式,動作一定要ColorPostServlet(什麼是url-pattern的規定)

<form name="Form1" 
     method="post" 
    action="ColorPostServlet">