2011-04-29 84 views

回答

0

我可以從我的 客戶端數據庫填充文本框嗎?

是的,你可以。

步驟: -

  1. 連接到數據庫的servlet。
  2. 在servlet中檢索數據並將其傳遞給jsp。
  3. 從jsp請求中獲取該數據。
  4. 使用scriptlet或jstl在jsp中顯示數據。

填充在JSP中使用文本框數據如下:

假設你有User對象,然後保存用戶信息...

<input type="text" value="<%= user.getName()%>" /> 
1

創建servlet它加載數據,將其放入請求範圍並將請求轉發給JSP。如果您想在客戶端打開鏈接/書籤時執行此操作,請在doGet()方法中執行此操作。或者,當客戶提交表單時想要執行此操作時,請使用doPost()方法執行此操作。

下面是其預裝從DB特定產品基於請求參數的例子:

Product product = productService.find(request.getParameter("id")); // Do your DB access job. 
request.setAttribute("product", product); // It'll be available by ${product}. 
request.getRequestDispatcher("/WEB-INF/product.jsp").forward(request, response); // Let JSP display it. 

地圖這個servlet上的/product的URL模式,那麼你就可以通過http://example.com/somecontext/product?id=123

叫它

JSP中,您只需設置HTML輸入元素的value屬性以將其顯示爲輸入元素的值。由於這是敏感的XSS attacks當你打印它像其他答案中建議的平原時,你想使用JSTLfn:escapeXml()來避免XSS攻擊。

<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> 
... 
<input type="text" name="name" value="${fn:escapeXml(product.name)}" /> 
<input type="text" name="description" value="${fn:escapeXml(product.description)}" /> 
<input type="text" name="price" value="${fn:escapeXml(product.price)}" /> 

注意小腳本(那些<% %>的東西)是poor practice並請求屬性(如在其他答案建議將無法正常工作,即<%= product.getName() %>風格)不提供即時訪問,也沒有提供標準XSS轉義設施。

相關問題