如何在 JSP 中收集用户输入以便将其存储在数据库中

Posted

技术标签:

【中文标题】如何在 JSP 中收集用户输入以便将其存储在数据库中【英文标题】:How to gather user input in a JSP so that it can be stored in database 【发布时间】:2010-08-19 20:44:58 【问题描述】:

我不知道 JSP。我已经编写了下面的 Java JDBC 代码,它必须集成到 JSP 中。

import java.net.URL;
import java.net.URLConnection;
import java.sql.*;
public class searchlink
public static void main(String args[]) throws Exception 
    Connection con=null;
    Statement stmt=null;
    Statement stmtR=null;
    String link="http://www.topix.com/rss/city/ellensburgwa";
    String source="Sample";
    if(con==null)
            SQLConnection.setURL("jdbc:sqlserver://192.168.2.53\\SQL2005;user=sa;password=365media;DatabaseName=LN_ADWEEK");
            con=SQLConnection.getNewConnection();
            stmt=con.createStatement();
            stmtR=con.createStatement();
    
    ResultSet rs;
    boolean hasRows=false;
    rs=stmt.executeQuery("select url from urls where url='"+link+"'");
    while(rs.next())
        hasRows=true;
        //String mem=rs.getString(1);
        System.out.println("This URL already exists in DB");
    if (!hasRows)
    
        PreparedStatement insertUrlStatement = con.prepareStatement("INSERT INTO urls VALUES(?, ?, ?, ?, ?)");
        insertUrlStatement.setInt(1, 21211);
        insertUrlStatement.setString(2, link);
        insertUrlStatement.setString(3, source);
        insertUrlStatement.setInt(4, 1);
        insertUrlStatement.setInt(5, 0);
        insertUrlStatement.executeUpdate();
             
           
        

最初,我的任务是创建一个文本框并将用户在其中输入的值分配给上面代码中的 String 命名链接。

请告知如何为此构建 JSP 程序。另外,请让我知道是否要对上面的 Java 代码进行任何更改以集成到 JSP 中,或者我可以将整个程序包含在 <% content %> 中。

【问题讨论】:

你好...你好...那里有人...回声??? 对不起……我能理解……不再重复。谢谢你的回答.. 【参考方案1】:

首先,您应该avoid 在 JSP 文件中编写 Java 代码。

这是一步一步的:

    至少了解 HTTP 和 html。至此,您需要了解 HTTP 的全部内容并区分“服务器端”和“客户端”的概念。您还需要学习 HTML 作为 Web 标记语言和 HTML forms 来收集用户输入。 This answer contains helpful links。

    学习 JSP 和 Servlet。您需要了解 JSP 是一种基于 Java 的视图技术,它提供了一个模板来编写 HTML/CSS/JS,然后将这些模板发送到网络浏览器。 This answer contains helpful links.

    学习了 1 和 2,开始使用带有必要输入字段的简单 HTML 表单创建 JSP 文件:

     <form action="servleturl" method="post">
         <input type="text" name="link">
         <input type="text" name="source">
         <input type="submit">
     </form>
    

    然后创建一个extendsHttpServlet 的类,它收集这些输入参数并在doPost() 方法中保存在数据库中:

     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
         String link = request.getParameter("link");
         String source = request.getParameter("source");
         LinkDAO dao = new LinkDAO();
         try 
             dao.save(link, source);
          catch (SQLException e) 
             throw new ServletException("Saving in DB failed", e);
         
         request.getRequestDispatcher("result.jsp").forward(request, response);
     
    

    servleturlurl-pattern 上的web.xml 文件中映射此servlet(至少,它应该与您的&lt;form action&gt; 指向的位置相同)。

    然后创建一个 DAO 类来执行必要的 JDBC 工作:

     public class LinkDAO 
         public void save(String link, String source) throws SQLException 
             // Your original code here. You should however modify it to make it
             // free of potential resource leaking.
         
     
    

    要了解更多如何开始使用 DAO 模式,您可能会发现 this article 很有用。

【讨论】:

【参考方案2】:

是时候学习一些基础知识了:

模型-视图-控制 (MVC) 模式将是一个非常好的开始。你很幸运——Java 中有很多实现:

http://en.wikipedia.org/wiki/Model%E2%80%93View%E2%80%93Controller#Java

【讨论】:

【参考方案3】:

如果你克服了这个障碍,还建议你使用 springs JdbcDaoSupport 之类的东西来管理你的数据源连接。除了减少您需要编写的行数外,它还有助于连接管理

【讨论】:

以上是关于如何在 JSP 中收集用户输入以便将其存储在数据库中的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JDBC 将用户在 jsp 输入类型“时间”中输入的值插入 MYSQL 数据库

查询 MySQL 数据库客户端

在 Android Studio 中从用户那里获取图片并进行编码,以便可以将其存储在数据库中

如何将html表单数据存储在cookie中,以便在提交表单后它仍然存在

如何将所有数据存储在单个数组中,以便我可以轻松地将其作为请求发布?

JPA:如何避免简单地加载对象,以便将其 ID 存储在数据库中?