2014-11-23 69 views
1

我正在研究一個簡單的java serverlet。看起來好像服務器沒有獲取參數。這是我的doPost()代碼。Java Serverlet請求參數爲空

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

     String a = request.getParameter("a"); 
     String b = request.getParameter("b"); 
     System.out.println("I started doing something " + a + " " + b); 

    } 

這是我的web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 
<display-name>AutoPresServerlet</display-name> 
<welcome-file-list> 
<welcome-file>index.html</welcome-file> 
<welcome-file>index.htm</welcome-file> 
<welcome-file>index.jsp</welcome-file> 
<welcome-file>default.html</welcome-file> 
<welcome-file>default.htm</welcome-file> 
<welcome-file>default.jsp</welcome-file> 
</welcome-file-list> 
<servlet> 
<description></description> 
<display-name>Main</display-name> 
<servlet-name>Main</servlet-name> 
<servlet-class>com.altechwebdesign.java.autopres.Main</servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name>Main</servlet-name> 
<url-pattern>/Main</url-pattern> 
</servlet-mapping> 
</web-app> 

我使用的是先進的REST客戶端Chrome瀏覽器發送POST請求。

回答

0

您需要一個表單或jsp頁面來攜帶html輸入類型值並觸發一個servlet。
那麼只有你的servlet可以得到這個值
我會建議寫和呼叫動作/主要form的表單代碼。
流程應該是這樣的,你已經證明使用解釋了爲什麼參數爲null證據

index.jsp-> submitform->主要的servlet

0

沒有。

看起來好像服務器沒有獲取參數。

我認爲這意味着您有證據表明您的doPost方法實際上被調用。這表明web.xml正確地將請求指向您的servlet代碼。

這意味着參數未顯示的原因是它們沒有被正確提供。但是,這發生在客戶端代碼和/或它發送的請求中,而您沒有向我們展示過。

(也有可能您沒有任何證據,並且您的「如果看起來......」只是一個猜測,如果是這樣的話,您需要查明發生了什麼,以及/或向我們展示您實際擁有的證據。)

我也不明白爲什麼您在此提到了JSP。您沒有向我們展示任何JSP代碼,它不太可能與您的問題直接相關。

0

的Servlet可以在代碼中獲取參數當且僅當你的行動被觸發如下數據(無論是GET或POST) A = test_for_a & B = test_for_b

你可以添加一些輸入/選擇/文本區域帶名稱(這將是您在servlet中使用的參數名稱,即a和b)。

那麼,我敢打賭,ajax將是另一種解決方案,超出了我們的範圍。