【问题标题】:JSP - Connecting and Inserting data to MySQL DatabaseJSP - 连接和插入数据到 MySQL 数据库
【发布时间】:2012-08-15 04:54:18
【问题描述】:

好吧,这就是我的情况,我在页面 (index.jsp) 上有一个表单,它将数据提交到 JSP 页面 (output.jsp),然后它将处理数据并输出结果。我想将这个结果插入到 MySQL 数据库中。

我曾尝试直接在 JSP 中使用 MySQL 做一些事情,但有人建议我不要这样做,因为它会打开安全漏洞,我相信。

所以我创建了一个 SubmitServlet.java(默认情况下,Netbeans 已将其放入 Source Packages/default 包中,而不是 JSP 文件的位置,在网页中)。我知道我必须在这里做很多连接,尽管我不完全确定如何将提交到数据库的数据从 JSP 获取到 servlet。我需要做什么?

我在 RoseIndia 阅读了几篇教程,但它们只是让我对实际需要什么感到更加困惑,所以任何帮助都会非常感激!

PS:另外值得指出的是,我对 Java Web 应用程序完全陌生,所以你越把我当成白痴越好!

【问题讨论】:

    标签: java mysql jsp servlets netbeans


    【解决方案1】:

    从 output.jsp 中调用所需的方法,将数据插入到数据库中

    <%
    <jsp:useBean id="obj" class="yourPackage.className" />
    String Success="";
    Success=sobj.myRequiredMethod("this is my result");
    %>
    

    在 yourPackage.className 类中你应该有 myRequiredMethod()

    package yourPackage;
    import java.sql.*;
    import java.util.*;
    
    public class className
        {
        String mySqlPassword="root";
        String mySqlUsername="root";
        String mySqlDatabase="jdbc:mysql://localhost:3306/yourDatabse";
    
    
    ResultSet res;
    
    
    
        public String myRequiredMethod(String result)
            {
    
            String success="";
            try
                {
    
    
                Class.forName("com.mysql.jdbc.Driver");
                Connection con = DriverManager.getConnection(mySqlDatabase,mySqlUsername,mySqlPassword);
    
                    String q="insert into myTable (resultColumn) values('" + result + "')";
                System.out.println(q);
                PreparedStatement stmt = con.prepareStatement(q);
                int pos = stmt.executeUpdate();
                System.out.println(pos);
            if(pos==1)
                    {
                        success="Successfull";
                    }
                } 
    
            catch(Exception e)
                {
            }
    
            return success;
    
            }
    }
    

    【讨论】:

      【解决方案2】:

      Rose India 不是一个学习的好地方。

      不,您需要一个或两个中间 servlet。

      将问题分解为多个部分:架构、CRUD 操作、中间层模型、服务、将 HTTP 请求编组为对象并返回、HTML、CSS 和 JavaScript。不要试图一次完成所有的事情。从一个单一的垂直开始并使其发挥作用,然后移动到下一个。

      分解是计算机科学和解决问题的标志。

      【讨论】:

      • +1 "分解是计算机科学和解决问题的标志。"值得引用!
      猜你喜欢
      • 1970-01-01
      • 2015-07-02
      • 2013-08-05
      • 1970-01-01
      • 1970-01-01
      • 2021-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多