我想在JSP页中显示存储在ORACLE数据库中的图片,500分! 回答的各位老大,请来此接分吧,多谢了,其实我是struts的标签库不会,不知道怎么去写那个img,所以只好问了,这个没有水平的问题,谢谢各位的回答,多谢了,其他的几个板块(j2se基础类,j2se扩展类,j2EE,框架开源)里面的已经揭帖了,所以要接分的快啊,我可能这两天就结帖了啊!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.<img src="/myWeb/ShowImgServlet?id=123456789">用上面的字符串显示:/myWeb/ShowImgServlet 是显示图片的servlet id 是数据库中图片的id当然你可以把上面的字符串封装成对象 以<bean:write name="" property=""/>的形式显示如果有多个图片可以<logic:iterate id="img" name="" property=""> <bean:write name="img" property=""/> </logic:iterate>具体怎么用标签我就不多说了2.ShowImgServlet package com.cpl.servletimport java.io.IOException;import javax.servlet.Servlet;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.forecast.wp.editor.improve.AttFileDAO;import com.forecast.wp.editor.improve.AttFileNotFoundException;import com.forecast.wp.editor.improve.DAOFactory;import com.forecast.wp.editor.improve.UploadFile;/** * @version 1.0 * @author cpl */public class ShowAttFileServlet extends HttpServlet implements Servlet { /** * @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { try { String fileId = req.getParameter("id"); DAOFactory factory = DAOFactory.getFactory(DAOFactory.ORACLE); AttFileDAO attFileDAO = factory.getNonJTAAttFileDAO(); UploadFile attFile = attFileDAO.getAttFile(fileId); String fileName = attFile.getFileName(); String fileType = attFile.getFileType(); long fileSize = attFile.getFileSize(); byte[] fileData = attFileDAO.getAttFileData(fileId); resp.setContentType(fileType); resp.setHeader( "Content-Disposition", "filename=\"" + fileName + "\""); ServletOutputStream outStream = resp.getOutputStream(); outStream.write(fileData); outStream.flush(); outStream.close(); } catch (AttFileNotFoundException e) { e.printStackTrace(); } } /** * @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */ public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); }} 3.DAOFactory/* * 创建日期 2005-5-24 * */package com.forecast.wp.projectmanager;import com.forecast.wp.editor.improve.AttFileDAO;import com.forecast.wp.projectmanager.impl.OrclDAOFactory;/** * * @author cpl */public abstract class DAOFactory { public static final int ORACLE = 0; public static DAOFactory getDAOFactory(int whichDAO) { switch (whichDAO) { case ORACLE : return new OrclDAOFactory(); default : return null; } } public abstract ProjectDAO getJTAProjectDAO(); public abstract ProjectDAO getNonJTAProjectDAO(); public abstract ExpenseDAO getJTAExpenseDAO(); public abstract ExpenseDAO getNonJTAExpenseDAO(); public abstract AppendFileDAO getJTAAppendFileDAO(); public abstract AppendFileDAO getNonJTAAppendFileDAO(); public abstract AttFileDAO getJTAAttFileDAO();} 想问一下参加工作的朋友,现在市场上流行的JAVA主要是哪些技术? 大家帮我看看这段代码吧,我真不知道错在哪里?谢谢! 一个数组问题 来者给分,,求如何学习jsp标签? ASP页面若长时间得不到响应,是否会自动重发请求? ssh+jbmp4.4启动resin 报错 从网页获取Json数据问题 web.xml配置问题 请问在Jbuilder里面怎么玩转jsp阿? jsp连接acess问题 用jxl如何读取excel公式的计算结果 如何动态得到form表名
用上面的字符串显示:/myWeb/ShowImgServlet 是显示图片的servlet
id 是数据库中图片的id
当然你可以把上面的字符串封装成对象 以<bean:write name="" property=""/>的形式显示
如果有多个图片可以<logic:iterate id="img" name="" property="">
<bean:write name="img" property=""/>
</logic:iterate>
具体怎么用标签我就不多说了
2.ShowImgServlet
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.forecast.wp.editor.improve.AttFileDAO;
import com.forecast.wp.editor.improve.AttFileNotFoundException;
import com.forecast.wp.editor.improve.DAOFactory;
import com.forecast.wp.editor.improve.UploadFile;/**
* @version 1.0
* @author cpl
*/
public class ShowAttFileServlet extends HttpServlet implements Servlet { /**
* @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
try {
String fileId = req.getParameter("id");
DAOFactory factory = DAOFactory.getFactory(DAOFactory.ORACLE);
AttFileDAO attFileDAO = factory.getNonJTAAttFileDAO();
UploadFile attFile = attFileDAO.getAttFile(fileId);
String fileName = attFile.getFileName();
String fileType = attFile.getFileType();
long fileSize = attFile.getFileSize();
byte[] fileData = attFileDAO.getAttFileData(fileId);
resp.setContentType(fileType);
resp.setHeader(
"Content-Disposition",
"filename=\"" + fileName + "\"");
ServletOutputStream outStream = resp.getOutputStream();
outStream.write(fileData);
outStream.flush();
outStream.close();
} catch (AttFileNotFoundException e) {
e.printStackTrace();
} } /**
* @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp); }}
/*
* 创建日期 2005-5-24
*
*/
package com.forecast.wp.projectmanager;import com.forecast.wp.editor.improve.AttFileDAO;
import com.forecast.wp.projectmanager.impl.OrclDAOFactory;/**
*
* @author cpl
*/
public abstract class DAOFactory {
public static final int ORACLE = 0; public static DAOFactory getDAOFactory(int whichDAO) {
switch (whichDAO) {
case ORACLE :
return new OrclDAOFactory();
default :
return null;
}
}
public abstract ProjectDAO getJTAProjectDAO();
public abstract ProjectDAO getNonJTAProjectDAO();
public abstract ExpenseDAO getJTAExpenseDAO();
public abstract ExpenseDAO getNonJTAExpenseDAO();
public abstract AppendFileDAO getJTAAppendFileDAO();
public abstract AppendFileDAO getNonJTAAppendFileDAO();
public abstract AttFileDAO getJTAAttFileDAO();}