2013-08-27 34 views
0

我正在研究NetBeans中的Java Web應用程序。我製作了一個JSP頁面,可以將一行添加到SQL數據庫,但我想允許用戶輸入。爲此,我創建了一些文本輸入框。我希望用戶能夠輸入一個字符串,然後將這些字符串保存爲SQL數據庫的varchar數據。有沒有辦法做到這一點?使用HTML表單在SQL數據庫中添加/編輯數據文本輸入框

這裏是爲了使文字輸入一個代碼:

<p>Name</p> 
<input type="text" name="Name" value="" size="100"/> 

下面是代碼添加一行到數據庫:

<sql:update var="attempt1" dataSource="jdbc/testaddressbook"> 
     INSERT INTO people (fullName, address, telephone, email) 
     VALUES ("testerName3", "testerAddress", "testerPhone", "testerEmail") 
    </sql:update> 

回答

1

你需要的JDBC (Java Data Base Connectivity)一些基本的瞭解, Servlet。有噸的方式來實現你想要什麼,但低於是一個小例子,來給你一些想法:

1.創建一個servlet來處理用戶輸入和數據插入到SQL

package mycoolapp; 

public RegistrationServlet extends HttpServlet { 
    protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { 

    // Obtain submitted form data 
    String name = req.getParameterName("Name"); 
    String address = req.getParameterName("Address"); 
    String phone = req.getParameterName("Phone"); 
    String email = req.getParameterName("Email"); 

    // Setup your database datasource, this is different for each db vendor. On production environment most likely you need a connection pooled datasource 
    DataSource ds = // setup ds here.. 
    Connection conn = ds.getConnection(); 

    // Prepare the SQL statement to insert, plug in the values 
    PreparedStatement stmt = conn.prepareStatement("INSERT INTO people (fullName, address, telephone, email) VALUES (?, ?, ?, ?)"); 
    stmt.setString(1, name); 
    stmt.setString(2, address); 
    stmt.setString(3, phone); 
    stmt.setString(4, email); 

    // Execute the insert 
    stmt.executeUpdate(); 
    conn.close(); 

    // Dispatch into success page 
    RequestDispatcher requestDispatcher = req.getRequestDispatcher("/registerSuccess.jsp"); 
    requestDispatcher.forward(req, res); 
    } 
} 

2.聲明和地圖上的WEB-INF/web.xml部署描述符中的servlet

下面設置將映射的servlet到http://myhost/mywarname/register

<web-app> 
    <servlet> 
    <servlet-class>mycoolapp.RegistrationServlet</servlet-class> 
    <servlet-name>RegistrationServlet</servlet-name> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>RegistrationServlet</servlet-name> 
    <url-pattern>/register</url-pattern> 
    </servlet-mapping> 
</web-app> 

3.配置您的形式張貼到servlet

<form method="post" action="register"> 
    .... 
</form> 

警告幾句:

  • servlet代碼上面沒有配備相應的異常和錯誤處理
  • 上面的JDBC代碼沒有附帶適當的事務管理
  • 上面的例子並不意味着行業標準的最佳實踐,它實際上是一種陳舊的方法。它顯示了Java servlet和數據庫交互如何工作的基本原理。當您構建正確的應用程序時,請考慮使用網絡框架,如SpringJSF或其他。
相關問題