簡體   English   中英

使用GET調用Java Servlet,但使用POST處理請求-從技術上講,通過doGet調用doPost仍然是GET操作嗎?

[英]Calling Java Servlet with GET but processing request with POST - calling doPost via doGet technically still a GET action?

我在JSP頁面上有一個鏈接,該鏈接通過GET調用servlet,如下所示:

https://myserver.com/servlet/ServletTest

沒有要傳遞的參數,但是它將在后端插入並可能更新數據。 按照慣例,我應該使用POST。 ServletTest Servlet中,從技術上通過doGet調用doPost仍然是GET操作嗎?

public void doGet(HttpServletRequest req, HttpServletResponse resp)
{
    doPost(req,resp);
}

public void doPost(HttpServletRequest req, HttpServletResponse resp)
{
    //process the incoming request
}

就像我說的那樣,我沒有從客戶端推送任何參數,因此,在JSP頁面上創建一個空Form可能沒有多大意義。 最終,我想執行POST操作而不必使用Form。

Servlet最終將創建一個令牌,以供以后用於REST API調用。 因此,POST可能是正確的操作,而不是GET。 我認為這不是必要的信息。 抱歉,我沒有在早期將其包括在內。

謝謝。

這樣做沒有問題。 您可以在doGet中執行代碼,因為您的Servlet正在處理get請求。 約定有待打破:)

例如,如果要設計REST Api,則應遵守約定,並且如果需要這種方法,通常是由於設計不當所致。 否則,如果只是要執行操作的URL,則使用get請求進行調用或從另一個方法調用一個方法都沒有問題,因此您可以接受兩種請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM