java - 在servlet中从表(oracle)中获取数据并传递给jsp

标签 java sql oracle jsp servlets

在我的数据库中,表名称是abc,它只包含一行,如下所示:

                F         S         T        FO     FI
              10/2=?      2         3        5      1

其中第一列名称=F, 第二列名称是 S, 第三列名称是 T,依此类推。

在 home.jsp 中------------

 <form action="NewServlet1" method="post">

Enter Table Name :<input type="text" name="table"> 
                   <input type="submit" value="Display">   
</form>

在NewServlet1中doPost---------

    String tb=request.getParameter("table");   
    ResultSet rs=st.executeQuery("Select * from "+tb);

    while (rs.next()) {

      rs.getString("F");
      rs.getString("S");
      rs.getString("T");
      rs.getString("FO");
      rs.getString("FI"); 
        }
    request.setAttribute("fi", "F");
    request.setAttribute("fi1", "S");
    request.setAttribute("fi2", "T");
    request.setAttribute("fi3", "FO");
    request.setAttribute("fi4", "FI");
    request.getRequestDispatcher("result.jsp").forward(request, response);

结果.jsp--------------------------------

         String abc="", abc1="",abc2="",abc3="",abc4="";
 abc= (String) request.getAttribute("fi");
  abc1= (String) request.getAttribute("fi1");
   abc2= (String) request.getAttribute("fi2");
    abc3= (String) request.getAttribute("fi3");
     abc4= (String) request.getAttribute("fi4");
 out.println(abc);
  out.println(abc1);
   out.println(abc2);
    out.println(abc3);
     out.println(abc4);

我应该在这样的浏览器页面中获得值(value)

10/2=?
 2
 3
 5
 1

但我现在是这样的:

F S T FO FI

我哪里错了??提前致谢......

最佳答案

while (rs.next()) {

  rs.getString("F");
  rs.getString("S");
  rs.getString("T");
  rs.getString("FO");
  rs.getString("FI"); 
}

您没有存储和使用表格中选定的值,而是为属性设置固定值。

request.setAttribute("fi", "F");   // fixed string F
request.setAttribute("fi1", "S");  // fixed string S
request.setAttribute("fi2", "T");  // fixed string T
request.setAttribute("fi3", "FO"); // fixed string F0
request.setAttribute("fi4", "FI"); // fixed string FI

您可以使用类似的代码来代替上面的代码

if (rs.next()){ //I used `if` since we expect only one row. 
    request.setAttribute("fi", rs.getString("F"));   
    request.setAttribute("fi1", rs.getString("S"));  
    request.setAttribute("fi2", rs.getString("T"));  
    request.setAttribute("fi3", rs.getString("FO")); 
    request.setAttribute("fi4", rs.getString("FI")); 
}

request.getRequestDispatcher("result.jsp").forward(request, response);

关于java - 在servlet中从表(oracle)中获取数据并传递给jsp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28395558/

相关文章:

java - 如何像 Eclipse 一样清理 IntelliJ IDEA 中的项目缓存?

sql - 获取具有最高值的行的所有字段

sql - 如何使用SQL分组和计算行数,其中一列的值为<= x,另一列的值为> x?

.net - 尝试删除多个对象时NHibernate TooManyRowsAffectedException

java - 如何将游标或记录列表传递给pl/sql中的java过程?

java - Protobuf + java java.lang.IndexOutOfBoundsException : Invalid index 0, 大小为 0

java - Eclipse IDE 死代码警告有两个条件——如何抑制它?

java - 如何使用 Gradle 5.x 生成 JPA 元模型

sql - 使用 min/max 的嵌套 SQL 查询返回了太多的记录(这是新的)

java - 使用 Apache Camel Framework 将数据持久化为 Oracle DB 中的 BLOB/CLOB 数据类型