前台html页面的img标签图片想动态从数据库获取,如何获取?

前台html页面的img标签图片想动态从数据库获取,如何获取?,第1张

1、这个在数据库中存储img图片的地址,前台放置img服务器标签,后台读取数据库中的img图片地址赋值。

2、可以在后台进行html拼接,拼接出img标签,然后输出前台,使用Ajax,在后台写好获取数据库中img图片地址的方法。

3、前台,在页面加载时,base64码字符串传到前台转换即可展示图片:<imgsrc="data:image/jpgbase64,<%=base64Path%>"width="50%"height="50%"/>。

4、之后会再发一个带图片预览的用ajax存储图片的Demo。

5、读取时就是从数据库读取对应数据再转化成图片显示出来。

扩展资料

img元素向网页中嵌入一幅图像。

请注意,从技术上讲,<img>标签并不会在网页中插入图像,而是从网页上链接图像。<img>标签创建的是被引用图像的占位空间。

<img>标签有两个必需的属性:src属性和alt属性。

<img>标签的src属性是必需的。它的值是图像文件的URL,也就是引用该图像的文件的的绝对路径或相对路径。

为了整理文档的存储,创作者通常会把图像文件存放在一个单独的文件夹中,而且通常会将这些目录命名为"pics"或者"images"之类的名称。

在W3School在线教程中,我们的工程师把大部分常用的图像都存放到一个名为"i"的文件夹中,"i"是"images"的缩写,这样做的好处是可以最大程度地简化路径。

在HTML中,<img>标签没有结束标签。在XHTML中,<img>标签必须被正确地关闭。

在HTML4.01中,不推荐使用image元素的"align"、"border"、"hspace"以及"vspace"属性。

在XHTML1.0StrictDTD中,不支持image元素的"align"、"border"、"hspace"以及"vspace"属性。

eption

产生这个异常的原因是变量没有初始化,也就是说变量在没有赋值的情况下被使用了

没用接触过你给出代码中的类,所以我也说不太准

分析了一下,觉得问题应该是出在这里

ResultSet rs = DatabaseTool.executeQuery(strSQL)

if (rs.next()) {

当你输入的值在数据库中无法找到时,DatabaseTool类的executeQuery并没有返回ResultSet对象,而是返回了null

建议你修改一下if语句

在if (rs.next())语句外层增加一层if语句if (rs!=null)

修改后应该是

try {

ResultSet rs = DatabaseTool.executeQuery(strSQL)

if(rs!=null){

if (rs.next()) {

String income =rs.getString("income")

dayincome = Float.parseFloat(income)

}else{

JOptionPane.showMessageDialog(null, "没有收入!")

}

}

else{

JOptionPane.showMessageDialog(null, "没有ResultSet对象!")

}

}

catch (Exception exx) {

exx.printStackTrace()

JOptionPane.showMessageDialog(null, "程序出现异常!")

}

试试行不行吧,不保证啊

我把你的代码稍微改造了下,我这边是可以显示图片的。代码如下:

数据库 *** 作部分:

package com.database

import java.io.InputStream

import java.sql.*

/**

 * @作者 王建明

 * @创建日期 13-10-7

 * @创建时间 下午12:32

 * @版本号 V 1.0

 */

public class DataBaseUtil {

public static InputStream getImageStreamFromDataBase() {

Connection conn = null

try {

Class.forName("com.mysql.jdbc.Driver")

conn =

DriverManager.getConnection("jdbc:mysql://localhost/quickstart", "root", "123456")

Statement stmt = conn.createStatement()

String sql = "select book_image from tbl_book where id=1 "

ResultSet rs = stmt.executeQuery(sql)

if (rs.next()) {

return rs.getBinaryStream("book_image")

}

} catch (Exception e) {

System.out.println("出现异常: " + e.getMessage())

} finally {

try {

if (conn != null)

conn.close()

} catch (SQLException e) {

e.printStackTrace()

}

}

return null

}

}

servlet部分:

package com.servlet

import com.database.DataBaseUtil

import javax.servlet.ServletException

import javax.servlet.http.HttpServlet

import javax.servlet.http.HttpServletRequest

import javax.servlet.http.HttpServletResponse

import java.io.IOException

import java.io.InputStream

import java.io.OutputStream

/**

 * @作者 王建明

 * @创建日期 13-10-7

 * @创建时间 下午12:18

 * @版本号 V 1.0

 */

public class ShowImage extends HttpServlet {

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request, response)

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

InputStream in = DataBaseUtil.getImageStreamFromDataBase()

OutputStream toClient = response.getOutputStream()

response.reset()

response.setContentType("image/jpg")//或gif

int len = 10*1024*1024

byte[] P_Buf = new byte[len]

int i

while((i = in.read(P_Buf)) != -1){

toClient.write(P_Buf, 0, i)

}

in.close()

toClient.flush()

toClient.close()

}

}

web.xml中的servlet配置:

    <servlet>

        <servlet-name>ShowImage</servlet-name>

        <servlet-class>com.servlet.ShowImage</servlet-class>

    </servlet>

    <servlet-mapping>

        <servlet-name>ShowImage</servlet-name>

        <url-pattern>/showImage</url-pattern>

    </servlet-mapping>

页面中加载图片方式:

<img src="showImage" />

希望对你有帮助O(∩_∩)O~


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6424781.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-22
下一篇2023-03-22

发表评论

登录后才能评论

评论列表(0条)

    保存