`
superxielei
  • 浏览: 262295 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

利用filter使用外部文件存放图片。

    博客分类:
  • java
阅读更多

声明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=.....  
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics