2011-04-21 48 views
1

我正在使用NetBeans創建一個Web應用程序,該應用程序允許手機用戶掃描QR碼並檢索日記的上一個/下一個標題信息。回家的一點是,用戶不會輸入數據。 QR碼將包含URL末尾的搜索字符串,我希望搜索在頁面加載時開始並輸出包含搜索結果的頁面。目前(由於簡單),我的模型只是解析一個MARC記錄小樣本的XML文件。呵呵,最重要的是...我是用java編程和使用netbeans的全新技術。我不知道javabeans是什麼,或者任何更先進的技術。所以,這個背景解釋是我的問題。jsp與servlet通過URL參數進行通信,而不是表單

我已經創建了一個java類(main方法)來解析我的xml並正確地檢索結果。我有一個index.jsp與我的html。在index.jsp中,使用get從我的URL獲取標題信息沒有問題。 但我不知道如何將這些參數傳遞給包含我的java代碼的servlet。如果我設法將搜索字符串發送到servlet,那麼我不知道如何將這些數據發送回index.jsp以顯示在瀏覽器中。

到目前爲止,我見過的每個例子都假定您正在獲取表單數據,但我需要找到,處理並返回頁面加載的參數...... IOW,無需用戶輸入。

感謝您的任何建議。 Ceci

回答

2

只要把必要的預處理代碼doGet()方法servlet的:

String foo = request.getParameter("foo"); 
// ... 
request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response); 

並調用servlet的URL,而不是例如JSP一個http://example.com/page?foo=bar而不是http://example.com/page.jsp?foo=bar結合URL模式/page/*上的servlet映射。

+0

謝謝!這是有道理的。按照您的建議編輯servlet,並調用servlet的URL而不是JSP,這是「排序」工作。我現在想要做的只是在從URL中檢索的參數的servlet中使用一個簡單的println。 IOW,我的JSP在將瀏覽器指向servlet URL +變量後加載,但我沒有看到我的servlet從URL檢索到的參數,並且我不知道如何將結果放在我的JSP的特定位置。我在這裏看到了一些在JSP中討論EL的文章,但這些文章是針對POST /表單情況的。 – Ceci 2011-04-21 18:19:33

+0

只需在JSP中使用'$ {param.foo}'來獲取JSP中的參數。如果它是POST或GET,它*真*無所謂。它只對servlet中的工作流程很重要。另見http://stackoverflow.com/tags/servlets/info,這可能也是有用的http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files – BalusC 2011-04-21 18:22:56

+0

謝謝!你真的幫了忙。像魅力一樣工作 – Ceci 2011-04-21 18:41:46

0

請記住,您的JSP頁面將在內部編譯爲一個servlet。因此,您可以檢索該字符串並將其打印回相同的JSP中。例如假設你在一個名爲參數字符串param你有這樣的事情在你的JSP:

<% 
String param = request.getParameter("param"); 
out.println("String passed in was " + param); 
%> 

最後一件事,你提到的主要方法 - 只有獲取獨立應用程序執行 - 而你說的網絡/ JSP:o

+1

感謝您的快速響應。這正是我的問題。我將所有的代碼作爲主要方法...爲什麼我正在考慮servlet。我沒有問題從URL中檢索我的變量並將其保存在JSP中。我可以輸出到頁面就好了。但是我不能簡單地將我的java代碼複製到我的jsp中,所以我無法啓動我的XML解析器。我已經足夠新的編碼,自學了我需要的XPath,這是一個血,汗水和眼淚的情況。因此,在我離開的兩天內重寫它的想法可能接近不可能。 – Ceci 2011-04-21 16:58:47

+0

不僅如此,自十年以來,使用JSP * scriptlets *也受到阻礙。另見http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files – BalusC 2011-04-21 17:05:23

+0

是的,在做了一些研究之後,我發現把很多代碼放在JSP中是很糟糕的形式。把事情分開是有道理的。我對於如何將數據傳遞給我的解析程序然後返回到JSP中感到茫然。我認爲我通過將代碼創建爲主類來犯了一個「架構」錯誤。哎呀,我甚至不知道如何將代碼複製到servlet中,更不用說在JSP和servlet之間移動數據。看起來我夢想着爲我的java課程開發一個項目,它超越了新編程學生的技能。 – Ceci 2011-04-21 17:17:09

2

可以使用request.getParameter("paramName");

獲得servlet的URL參數,你可以從Servlet中使用轉發請求,由servlet來JSP中的屬性傳遞給頁面。

請參見

相關問題