Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.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 在jsp页面上显示blob_Java_Jsp_Servlets - Fatal编程技术网

Java 在jsp页面上显示blob

Java 在jsp页面上显示blob,java,jsp,servlets,Java,Jsp,Servlets,好的,所以我试图在jsp页面上显示一个带有用户名和姓氏的图像,但我只得到图像,而不是名字和姓氏…那么这里有什么问题呢。。。感谢您的帮助:) 在此处插入标题 从数据库获取数据 名字 姓 照片 形象 您的代码包括在写完图片后以及以后对o.close()的调用。这将关闭响应输出流,不再发送任何内容。不要这样做-让web容器负责关闭输出流 这应该可以解释为什么不应该显示名字和姓氏:响应流已关闭 另外,我不认为响应内容类型应该是“image/jpg”,特别是考虑到HTML元标记如何表示内容是“text

好的,所以我试图在jsp页面上显示一个带有用户名和姓氏的图像,但我只得到图像,而不是名字和姓氏…那么这里有什么问题呢。。。感谢您的帮助:)


在此处插入标题
从数据库获取数据
名字
姓
照片
形象


您的代码包括在写完图片后以及以后对
o.close()的调用。这将关闭响应输出流,不再发送任何内容。不要这样做-让web容器负责关闭输出流

这应该可以解释为什么不应该显示名字和姓氏:响应流已关闭

另外,我不认为响应内容类型应该是“image/jpg”,特别是考虑到HTML元标记如何表示内容是“text/HTML”。我认为它们应该是相同的——“text/html”


最后,也许是最重要的JSP非常古老。您可能想考虑使用FACELET(JavaServer FACTS技术)。

@ TeeWoKo,我尝试过这种方法,但甚至不能访问servlet……(@user2137186-你不能像那样将图像内容直接转储到页面中。你在创建servlet时遇到了什么问题?也许你应该再试一次,然后在遇到问题时发布一个SO问题(当然,经过适当的研究).好的,我这样传递id,然后在输入流中获取数据,然后做什么?事实上,某些东西是旧的并不一定使它过时。此外,即使它是过时的,建议OP切换技术也不可能帮助他完成当前的任务/项目。我的回答包括一个建议,带有以下表达式“可能要考虑"。这并不是居高临下或消极的,事实上,你会在这个网站上多次回复JSP问题时发现同样的情绪。@Ahmed你有没有在JSP页面上显示过一个斑点图像?亲爱的@user2137186,你可以在这个网站上找到几个已经写过的关于这个问题的答案,包括一个有b甚至连这个问题都联系到了……然而,我试图帮助您解决“无法显示firstName和lastName”的问题——这是响应流正在关闭。
<%@ page language="java" contentType="text/html; charset=windows-1256"
        pageEncoding="windows-1256"%>
        <%@ page import="java.sql.*" %>
         <%@ page import="java.io.*" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
    <title>Insert title here</title>
    </head>
    <body>
     <H1>Fetching Data From a Database</H1>
    <%

    Blob image = null;  
    byte[] imgData = null;  
    Connection con;
    String url="jdbc:mysql://localhost:3306/image";
    String uName="root";
    String pwd="root";
    Class.forName("com.mysql.jdbc.Driver").newInstance();
        con=DriverManager.getConnection(url,uName,pwd);
        String sql="Select * from image ";
        PreparedStatement stmt=con.prepareStatement(sql);

        ResultSet resultset=stmt.executeQuery();
    while(resultset.next())
    {

        Blob bl = resultset.getBlob("image");
        byte[] pict = bl.getBytes(1,(int)bl.length());
        response.setContentType("image/jpg");
        OutputStream o = response.getOutputStream();



    %>
    <TABLE BORDER="1">
    <TR>

    <TH>First Name</TH>
    <TH>Last Name</TH>
    <TH>picture</TH>
    </TR>
    <TR>

    <td>Image</td><td><%o.write(pict);%></td>
        <%o.flush();
        o.close();%>

    <TD> <%= resultset.getString(2) %> </TD>
    <TD><%= resultset.getString(3) %></TD>
    </TR>
    </TABLE>
    <BR>
    <%
    o.flush();
    o.close();
    }
    %>
    </body>
    </html>