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

时间:2010-08-19 20:44:59

标签: java jsp jdbc

我不懂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 %>中。

3 个答案:

答案 0 :(得分:4)

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

这是一步一步:

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

  2. 学习JSP和Servlet。您需要了解JSP是一种基于Java的视图技术,它提供了一个用于编写HTML / CSS / JS的模板,然后将其发送到Web浏览器。 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. 然后创建一个extends HttpServlet的类,它收集这些输入参数并以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);
     }
    

    将此servlet映射到web.xml url-pattern servleturl上的<form action>(至少应该与 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. } } 指向的位置相同)。

  5. 然后创建一个DAO类,它执行必要的JDBC操作:

    {{1}}

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

答案 1 :(得分:0)

时间去学习一些基础知识:

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

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

答案 2 :(得分:0)

如果你越过那个障碍id也建议你使用类似spring JdbcDaoSupport来管理你的数据源连接。除了减少您需要编写的行数外,它还有助于连接管理