2009-11-04 17 views
0

我在Apache Tomcat中使用簡單的博客servlet中有一段Java代碼。我根據上一頁中的表單生成頁面,其中包括髮布該帖子的鏈接。我希望用戶單擊該鏈接在課程後面調用方法。這是可能的,如果是這樣,怎麼樣?在tomcat中調用servlet中的方法生成HTML

回答

1

是的。該鏈接可以指向該servlet(或任何servlet),並且在處理該請求時,請調用您喜歡的任何方法。

public void doGet(HttpServletRequest req, HttpServletResponse res) 
    throws IOException, ServletException { 

    ... whatever I want ... 

    anyMethod(req, res); 

    ... whatever I want again ... 
} 
+0

我的問題是,我需要的數據來自一個頁面上的參數,然後就是下一個靜態文本。我如何將數據從一頁保存到下一頁。我知道這是一個不好的問題。謝謝 – Igman 2009-11-04 23:31:25

+0

謝謝你們。我知道了。你們都很棒。 – Igman 2009-11-04 23:40:12

+0

查看HttpSession。您可以調用getAttribute()和setAttribute()來跨請求存儲數據。 – 2009-11-04 23:43:02

1

鏈接生成GET請求。因此,如果您想在GET請求期間執行一些Java代碼,則需要創建一個實現了doGet()的Servlet,並相應地執行所需的代碼邏輯。

如果必要,可以使用通常的查詢字符串的方式像href="myservlet?name1=value1&name2=value2"或 - 更多SEO friendly-像href="myservlet/value1/value2"路徑,您可以訪問使用HttpServletRequest#getPathInfo()的一部分傳遞請求參數。

處理請求後,servlet需要將請求轉發到JSP以顯示頁面。這可以通過request.getRequestDispatcher("page.jsp").forward(request, response)完成。

myservlet後面的servlet類顯然是映射到/myservlet/*url-pattern

希望這會有所幫助。

[編輯]作爲您後來的評論揭示之一,您想要將請求範圍數據傳遞給下一個請求。這種情況下,只需將它們作爲請求參數傳遞給下一個請求。如果他們已經可以作爲請求參數,然後就去做:

href="myservlet?name1=${param.name1}&name2=${param.name2}" 

否則,如果是唯一可用的模型數據,它們,然後像​​做:

href="myservlet?name1=${data.name1}&name2=${data.name2}" 

裏面的doGet()方法,你可以通過HttpServletRequest#getParameter()以通常的方式重新獲得它們。

祝你好運。

相關問題