ImageShowAction.java是用于显示图片的Action,这个action先把数据库里的图片取出,用Blob类型的变量存起来,用方法Blob.getByte

(long pos,int length)取出图片的byte[]数组,最后在response对象里设置图片格式,用ServletOutPutStream输出即可。下面是示例代码:

Action中代码:

/**
* test show image in jsp
* @param ActionMapping mapping...
* @throws SQLException
* @author wjs
* @date 2008-2-3
*/
public ActionForward showImage(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
   int length = 0;
   ServletOutputStream toClient = null;
   byte[] buf=null;
   CommodityService service = new CommodityService();
   List list = service.getCommodityByX(null, null);
   Commodity commodity = (Commodity) list.get(2);//取得商品对象
   Blob image = commodity.getImage();//取得以blob格式存储图片信息
   try {
    //is = image.getBinaryStream();//取得二进制流
    length = (int)image.length();//取得流中的可用字节总数
    //buf=new byte[length];//设定字节数组长度
    buf=image.getBytes(1,length);//获取Blob字节数组
    response.setContentType("image/jpeg");
    toClient=response.getOutputStream();//获取输出流
    for (int i = 0; i < buf.length; i++) {
     toClient.write(buf[i]);//输出到页面
    }
    toClient.close();//关闭输出流
   } catch (SQLException se) {
    se.printStackTrace();
   } catch (IOException e) {
    e.printStackTrace();
   }
   return mapping.findForward("showImage");//跳转到指定页面
}

 struts.config.xml配置如下:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" 

"http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
<data-sources />
<form-beans>
   <form-bean name="userActionForm" type="com.mt.struts.UserActionForm" />
   <form-bean name="commodityForm" type="com.mt.struts.CommodityForm" />
</form-beans>

<global-exceptions />
<global-forwards>
   <!-- <forward name="error" path="/error.jsp" />-->
</global-forwards>
<action-mappings>
   <action attribute="userActionForm" input="/form/userAction.jsp" name="userActionForm" parameter="postMethod" 

path="/userAction" scope="request" type="com.mt.struts.UserAction">
    <forward name="ok" path="/index.jsp" />
    <forward name="login" path="/login.jsp" />
    <forward name="userList" path="/back/userlist.jsp"></forward>
   </action>
   <action attribute="commodityForm" input="/form/commodity.jsp" name="commodityForm" parameter="postMethod" 

path="/commodityAction" scope="request" type="com.mt.struts.CommodityAction">
    <forward name="goodList" path="/goodlist.jsp" />
    <forward name="goodAdd" path="/back/goodadd.jsp" />
    <forward name="showImage" path="/back/showimage.jsp" />
   </action>
</action-mappings>

<message-resources parameter="com.mt.struts.ApplicationResources" />
</struts-config>


 JSP页面部分代码:

<body>
    This a struts page. <br>
    <html:image src="/commodityAction.do?postMethod=showImage"></html:image>
</body><!--这里用的是struts标签-->

 其中showImage.do在struts-config.xml中配置定义为commodityAction.java

 

黑色头发  http://heisetoufa.iteye.com