Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将动态值传递给java serlvet?_Java_Oracle_Servlets - Fatal编程技术网

如何将动态值传递给java serlvet?

如何将动态值传递给java serlvet?,java,oracle,servlets,Java,Oracle,Servlets,(更新) 我正在使用java servlet和oracle sql构建酒店管理系统。 我从数据库打印一个html表,如果我更改了传递给另一个servlet的值,我需要更新一行。 这是我的第一个servlet if(request.getParameter("hotelTableBtn") != null){ String query = "select * from Hotels"; response.setCharacterEncoding("utf-8

(更新)

我正在使用java servlet和oracle sql构建酒店管理系统。
我从数据库打印一个html表,如果我更改了传递给另一个servlet的值,我需要更新一行。
这是我的第一个servlet

    if(request.getParameter("hotelTableBtn") != null){
        String query = "select * from Hotels";
        response.setCharacterEncoding("utf-8");
        Connection conn;

        try{
            conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","system","root");
            Statement st = conn.createStatement();
            ResultSet rs = st.executeQuery(query);
            ResultSetMetaData metaData = rs.getMetaData();
            int columnCount = metaData.getColumnCount();

            pw.println("<table border=1 style=border-collapse:collapse>");  
            pw.println("<tr>");

            for(int i = 1; i <= columnCount; i++){
                pw.println("<th>" + metaData.getColumnName(i));
            }

            pw.println("</tr>");
            pw.println();
            String name = "";

            while(rs.next()){                       
                int i;
                int row = rs.getRow();

                pw.write("<form action=/ThesisAdmin/PrintTables method=post target=_self>");
                pw.println("<tr>");


                for(i = 1; i <= columnCount; i++){

                    if(i == 1)
                        name = "name";
                    else if (i == 2)
                        name = "category";
                    else if (i == 3)
                        name = "address";
                    else if (i == 4)
                        name = "phone";
                    else
                        name = "email";

                    pw.println("<td style=border:none> <input type=text value=" + rs.getString(i) + " name=" + name + "> </td>");                           
                }
                    pw.println("<td> <input type=submit value=update name=updateBtn> </td>");

                    pw.println("</tr>");
                    pw.write("</form");

                    pw.println();
                }
                pw.println("</table>");

        }catch (Exception e){
            pw.write("" + e);
        }
    }
我像这样更新了代码,但只有第一个按钮起作用。有什么想法吗? 先谢谢你

(更新)

最后,我的程序通过每行添加一个新表来工作。我还添加了一个删除按钮。解决方案:

            pw.println("<table border=1 style=border-collapse:collapse>");  

            pw.println();
            String name = "";
            int cnt = 0;    

            while(rs.next()){                       
                int i;
                //int row = rs.getRow();

                pw.println("<tr>");
                pw.println("<table><tr><td>");
                pw.println("<tr>");

                if(cnt == 0){
                    for(i = 1; i <= columnCount; i++){
                        pw.println("<th>" + metaData.getColumnName(i));
                    }
                    cnt = 1;
                }


                pw.println("</tr>");
                pw.write("<form action=/ThesisAdmin/PrintTables method=post target=_self>");

                for(i = 1; i <= columnCount; i++){

                    if(i == 1)
                        name = "name";
                    else if (i == 2)
                        name = "category";
                    else if (i == 3)
                        name = "address";
                    else if (i == 4)
                        name = "phone";
                    else
                        name = "email";

                    pw.println("<td style=border:none> <input type=text value=" + rs.getString(i) + " name=" + name + "> </td>");                           
                }

                    pw.println("<td> <input type=submit value=update name=updateBtn> </td>");
                    pw.println("<td><input type=submit value=delete name=deleteBtn> </td>");

                    pw.write("</form>");
                    pw.write("</td></tr></table>");
                    pw.println("</tr>");
                    pw.println();
                }
                pw.println("</table>");
pw.println(“”);
println();
字符串名称=”;
int-cnt=0;
while(rs.next()){
int i;
//int row=rs.getRow();
pw.println(“”);
pw.println(“”);
pw.println(“”);
如果(cnt==0){

对于(i=1;i数据库表和html表中的每一行代表一个对象。
每个对象必须有一个id

您应该向每行添加一个带有对象id的隐藏输入字段。

每行/对象都有一个单独的表单。

您忘记了实际问题。“我需要”不是问题。请稍后编辑,谢谢。请您详细解释一下“动态行值”是什么意思?也许举个例子会有帮助。也许“动态”这个词不合适,但我需要更新表值并将它们发送到数据库,但这无助于理解您的意思。请尝试解释为什么无法使用正常的GET/POST参数传输数据。抱歉,我真的不明白您的问题所在。请给出一个示例举例说明你传递数据的困难。也许你还没有完全理解自己的问题,那么向橡皮鸭解释一下可能会有帮助。
            pw.println("<table border=1 style=border-collapse:collapse>");  

            pw.println();
            String name = "";
            int cnt = 0;    

            while(rs.next()){                       
                int i;
                //int row = rs.getRow();

                pw.println("<tr>");
                pw.println("<table><tr><td>");
                pw.println("<tr>");

                if(cnt == 0){
                    for(i = 1; i <= columnCount; i++){
                        pw.println("<th>" + metaData.getColumnName(i));
                    }
                    cnt = 1;
                }


                pw.println("</tr>");
                pw.write("<form action=/ThesisAdmin/PrintTables method=post target=_self>");

                for(i = 1; i <= columnCount; i++){

                    if(i == 1)
                        name = "name";
                    else if (i == 2)
                        name = "category";
                    else if (i == 3)
                        name = "address";
                    else if (i == 4)
                        name = "phone";
                    else
                        name = "email";

                    pw.println("<td style=border:none> <input type=text value=" + rs.getString(i) + " name=" + name + "> </td>");                           
                }

                    pw.println("<td> <input type=submit value=update name=updateBtn> </td>");
                    pw.println("<td><input type=submit value=delete name=deleteBtn> </td>");

                    pw.write("</form>");
                    pw.write("</td></tr></table>");
                    pw.println("</tr>");
                    pw.println();
                }
                pw.println("</table>");