java - 如何在没有表单的情况下为每个循环将一个值从一个 JSP 页面发送到另一个 JSP 页面?

标签 java html jsp

尝试使用 session ,但不起作用。

我正在从外部数据库上传数据并将其显示在我的页面上。所有字符串都加载良好,并且图像也加载,但每次循环时我都会得到相同的图像(数据库行中的最后一个图像)而不是不同的图像。我需要一种方法将“id”值从一个页面传递到另一个页面,以便能够构建指向正确 id 的 SQL 查询。

我尝试使用一个带有静态字符串的简单类,并在循环的每次迭代中存储/更改其值,以便我可以在任何地方调用它。 我尝试通过在每次迭代中设置其属性来使用 session 。

尝试打印这两个方法的值,它们只返回值 19 一次(最后一个图像行的 ID)。

我还尝试使用隐藏输入并设置其值,并尝试在 image.jsp 中获取该值。这不起作用,因为我没有使用表格。

那么如何在每次循环时将更新后的 id 值从第一页发送到 image.jsp 呢?

首页

<body>

<div class="container">
    <div class="row">

<%
    String dbURL = "jdbc:mysql://1.1.1.1:3306/dbname";
    String dbUser = "";
    String dbPass = "";
    Connection conn;


    try{
        DriverManager.registerDriver(new com.mysql.jdbc.Driver());
        conn = DriverManager.getConnection(dbURL, dbUser, dbPass);

        Statement statement = conn.createStatement();
        ResultSet resultset =
                statement.executeQuery("select image, name, age, gender, contact, description, id from driver");

        while(resultset.next()) {
            session.setAttribute("userid", resultset.getString(7)); //trying with sessions
            TempClass.idValue = resultset.getString(7); //trying with a static String value
%>

        <div class="col-sm-4">
            <div class="k-cust_box">
                <h3><%= resultset.getString(2) %></h3>
                <hr>
                <input name="secret" value="<%= resultset.getString(7) %>"  type="hidden"> <!-- Trying with hidden input value -->
                <img class="k-profile-img" src="image.jsp" height="100px" border="1" style="float: left; overflow: hidden" width="33%">
                <div class="k-driver-inner-box">
                    <h5>Age: <%= resultset.getString(3) %></h5>
                    <h5>Gender: <%= resultset.getString(4) %></h5>
                    <h5>Contact: <%= resultset.getString(5) %></h5>
                </div>
                <h5 class="k-fl-lt"><%= resultset.getString(6) %></h5>
            </div>
        </div>
<%}
}catch (Exception e){
    e.printStackTrace();
}
%>
        </div>
        </div>

</body>

图像.jsp

<body>
<%
    String dbURL = "jdbc:mysql://1.1.1.1:3306/dbname";
    String dbUser = "";
    String dbPass = "";
    Connection conn;
    byte[] pict = null;

    Object id = session.getAttribute("userid"); //trying to get session id and returns 19 only once. 
    String userid = request.getParameter("secret"); //trying to get hidden input value - this always returns null. Expected. 
    String staticId = TempClass.idValue;  //trying to get static value and returns 19 only once. 

    try{
        DriverManager.registerDriver(new com.mysql.jdbc.Driver());
        conn = DriverManager.getConnection(dbURL, dbUser, dbPass);

        Statement statement = conn.createStatement();
        ResultSet resultset =
                statement.executeQuery("select image from driver where id = '" + id + "'"); //this id value has to change on each loop to be able to load different images. 
        response.setContentType("image/jpg");
        while(resultset.next()) {
            Blob bl = resultset.getBlob(1);
            pict = bl.getBytes(1,(int)bl.length());
        }
        OutputStream o = response.getOutputStream();
        o.write(pict);
    }catch (Exception e){
        e.printStackTrace();
    }
%>
</body>

最佳答案

在第一页中,img 标签,

src="image.jsp?id=<%=resultset.getString(7)%>" 

image.jsp 中,

String id = request.getParameter("id");

关于java - 如何在没有表单的情况下为每个循环将一个值从一个 JSP 页面发送到另一个 JSP 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35506872/

相关文章:

html - 在 angularjs 和 ionic-v1 中的一个公共(public)标题栏中只显示一个图标

jsp - HttpServletRequest#getParts()返回一个空列表

javascript - 如何将输入 datetimepicker.js 中的数据发送到 jsp 并将该数据保存在 db 中

javascript - 从 JSTL 代码在 javascript 中设置数组值

java - 将 HashMap 值传递给 url

java - OOM 异常 - 位图大小超出 VM 预算

java - 按列读取文本文件并在java中创建二维数组

html - 如何更改 Bootstrap 中网格的宽度?

java - 如何在jsp页面上简单的显示一个值?

c# - 使用大写和小写标记解析 HTML Agility Pack?