声明filter
<servlet-mapping>
<servlet-name>dl-servlet</servlet-name>
<url-pattern>/dl/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>dl-servlet</servlet-name>
<servlet-class>
com.ssjc.manage.xbase.core.servlet.FileDLServlet
</servlet-class>
</servlet>
package com.ssjc.manage.xbase.core.servlet;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.lf5.util.StreamUtils;
/**
* Servlet implementation class for Servlet: FileDLServlet
*
* @author cong_px
* @Date 2008/10/06
* @Version 1.0.0
*/
public class FileDLServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
static final long serialVersionUID = 1L;
/*
* @see javax.servlet.http.HttpServlet#HttpServlet()
*/
public FileDLServlet() {
super();
}
/*
* @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doProcess(request, response);
}
/*
* @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doProcess(request, response);
}
/**
*
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
protected void doProcess(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String binaryObjectId = request.getRequestURI();
int idx = binaryObjectId.lastIndexOf('/');
binaryObjectId = binaryObjectId.substring(idx+1);
idx = binaryObjectId.indexOf('.');
//后缀名不存在时导致的错误
if(idx == -1){
response.sendError(404);
return;
}
// 这里可以“D:/uploadImages/”可以从配置文件中读取
File file = new File("D:/uploadImages/" + binaryObjectId);
if(file == null){
response.sendError(404);
} else {
InputStream in = null;
try {
in = new FileInputStream(file);
StreamUtils.copy(in, response.getOutputStream(), 2048);
} finally {
if(in!=null){
try {in.close();} catch (Exception e) {}
in = null;
}
}
}
}
}
<img src="<%= context %>/dl/<s:property value="product2.picture.fileId"/>" width="90" height="68" alt=.....