2011-09-20 21 views
2

我有2個參數,UserPass。我想將它們發送到一個servlet。Servlet:doGet和doPost

如果我使用servlet的doGet方法就應該是這樣的:

"link?User="+TextFieldValue+"&pass"textFieldValue 

user= UserName.getValue(); 
pass= password.getValue(); 

Resource newPictureResource = new ExternalResource("http://localhost:8888/PieChart?UserName="+name+"&Password="+pass); 
Success.setSource(newPictureResource); 
editContent.addComponent(Success); 

它們發送到servlet中:

String UserName = request.getParameter("UserName"); 
    String Password = request.getParameter("Password"); 

它的工作原理(測試)

如果Username + pass是正確的,然後他得到一張「成功」的圖片張貼在屏幕上。

但沒有人通過URL傳遞參數。

我的問題:如何使用doPost這個servlet的方法發送參數?

info:即時消息在帶有Vaadin portlet的liferay門戶上工作。

回答

3

您不要發送參數doPost(..)。你收到他們那裏。 HTTP有許多方法,其中兩個是GET和POST。客戶端選擇使用哪種方法。 POST最常用於HTML表單 - <form method="POST"

Vaadin應該能夠發送POST請求,以及 - 見this thread

1

不知道如何Vaadin相互作用,但通常的portlet請求的處理方式不同。雖然The Book of Vaadin - Portal Integration看到配置和行動處理的一些見解。

如果你正在尋找一種方式來處理這兩種請求類型沒有邏輯的重用,簡單地通過,進行後選擇您所提交的方法或從您的應用程序接口,可以獲取:

@Override 
protected void doGet(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    processRequest(request, response); 
} 

@Override 
protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    processRequest(request, response); 
} 

protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    // Enter logic here 
}