【问题标题】:How to gather user input in a JSP so that it can be stored in database如何在 JSP 中收集用户输入以便将其存储在数据库中
【发布时间】: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 %> 中。

【问题讨论】:

  • 你好...你好...那里有人...回声???
  • 对不起……我能理解……不再重复。谢谢你的回答..

标签: java jsp jdbc


【解决方案1】:

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

这是一步一步的:

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

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

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

     <form action="servleturl" method="post">
         <input type="text" name="link">
         <input type="text" name="source">
         <input type="submit">
     </form>
    
  4. 然后创建一个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; 指向的位置相同)。

  5. 然后创建一个 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 之类的东西来管理你的数据源连接。除了减少您需要编写的行数外,它还有助于连接管理

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-10
        • 2012-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-22
        • 2014-06-04
        相关资源
        最近更新 更多