`
superxielei
  • 浏览: 267160 次
  • 性别: 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=.....  
 
分享到:
评论

相关推荐

    jQuery过滤重复图片筛选代码

    本项目涉及的知识点主要集中在利用jQuery处理图片的显示,并通过编程技术实现图片的去重,以达到优化页面加载效果的目的。下面我们将深入探讨这个"jQuery过滤重复图片筛选代码"的相关技术细节。 首先,`index.html`...

    java生成模糊图片

    `src`目录存放源代码,`lib`可能包含依赖的外部库。 7. **I/O操作**: 为了读取和保存图片,我们需要使用`ImageIO`类,它提供了`read`和`write`方法。`read`方法用于从文件加载图片,`write`方法则用于将处理后的...

    瀑布流点击单一图片放大其他图片缩小效果

    在给定的文件中,我们有三个主要部分:`images`目录包含要展示的图片资源,`js`目录存放JavaScript代码,而`demo.html`是演示页面。下面将详细解释这些文件如何协同工作来实现上述效果。 首先,HTML页面(`demo....

    jQuery超酷动感模糊图片视觉差特效

    4. **图片(img)**:存放项目所用的图片资源,这些图片会在动态模糊效果下呈现视觉差,提升用户体验。 5. **字体(fonts)**:如果特效涉及到自定义字体或者图标,这个文件夹将包含所需的字体文件。 6. **index....

    Intent 与 Intent Filters 实现外部调用

    `libs`目录存放外部库文件;`src`目录是源代码所在位置;`build`目录则是编译生成的临时和最终文件。 总结起来,Intent和Intent Filters是Android中实现组件间通信的核心机制,它们使得不同应用之间的交互成为可能...

    Android代码-Android仿美图秀秀和IOS系统的相机胶卷.rar

    - `Environment.getExternalStorageDirectory()`方法用于获取外部存储的根目录,通常用于存放用户可访问的文件。 3. **图片加载库**: - 在显示大量图片时,避免内存问题,通常会使用图片加载库,如Glide或...

    Java图像处理类库 Java Image Filters

    `dist`目录则存放构建后的可执行文件或库。`src`目录下是源代码,可能包含了实现图像处理功能的类。`lib`目录则包含了项目所依赖的外部库,可能包括其他图像处理库,如Apache Commons Imaging(前身是 Jakarta ...

    SSH环境 注解方式 包含jar 简单实例 直接运行

    1. **创建项目结构**:首先,我们需要创建一个标准的Java Web项目,包括src/main/java(存放源代码)、src/main/resources(存放配置文件)和Web-INF目录(存放web.xml)。 2. **配置SSH**: - **Struts2配置**:...

    安卓SD卡文件管理更新信息相关-android使用DownloadManager自动更新安装apk.rar

    例如,如果你想要将APK存放在应用的私有外部存储空间,可以使用`getExternalFilesDir()`: ```java File apkFile = new File(getExternalFilesDir(null), "update.apk"); request.setDestinationUri(Uri.fromFile...

    细谈Ehcache页面缓存的使用

    在使用Ehcache进行页面缓存时,需要对缓存配置文件进行合理的设置,以满足不同场景的需求。下面是一些关键的配置项及其含义: - **`maxElementsInMemory`**:指定缓存在内存中的最大元素数量。例如,`...

    ecstore文档开发

    - **public**:上传文件和目录图片,用户上传的图片和文件会放在这里。 - **index.php**:文件程序入口,所有请求都从此文件开始处理。 - **rpc.text**:未明确说明,可能为RPC相关配置或日志文件。 ##### 自建...

    ionic 城市列表

    在Ionic中,可以利用AngularJS的过滤器(Filter)实现搜索功能,动态更新列表,显示与用户输入匹配的城市。 **五、 文件结构解析** `ionicCityList`这个文件可能包含了以下组成部分: 1. `www`: 这是应用的主要工作...

    最新版windows logstash-7.10.1-windows-x86_64.zip

    8. **监控和调试**:利用`-v`或`--debug`选项启动Logstash获取详细日志,以及使用`-f`指定特定配置文件。还可以通过`metrics`插件收集Logstash自身的运行指标。 总的来说,Logstash-7.10.1是一个强大的日志处理工具...

    Web application and struts 2

    - /WEB-INF/lib:存放所有外部JAR文件。 - 私有文件:不被Web服务器返回的文件。 Struts 2问题领域 Struts 2框架解决了多个Web开发中的问题领域: - 应用程序逻辑与标记的分离:使得更改和维护变得更容易,并且更...

    MULE esb 节点使用说明中文文档

    若存在多个编排XML文件,则需要通过`mule-deploy.properties`文件指定具体使用哪一个。 #### MULE ESB 编排原则 MULE ESB的服务编排基于“流(Flow)”的概念来进行。每个流通常包含以下几种基本节点元素: - **...

    eclipse框架包

    3. **配置web.xml**:在Web应用的配置文件web.xml中,需要配置Struts2的前端控制器`org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`,这是Struts2处理请求的核心组件。 4. **创建Struts...

    Mule ESB Studio安装使用手册

    - **OutXML**: 用于存放输出的XML文件。 #### 七、总结 通过上述步骤,开发者可以快速入门Mule ESB Studio的安装和使用方法,掌握如何创建基本的Mule项目,了解Mule流程的基本构成及运行机制。这对于构建复杂的...

    使用广播机制仿制QQ强制下线功能

    `src`目录存放源代码,`build`目录是编译过程中生成的临时文件,而`libs`目录通常用来放置外部依赖库。 总的来说,通过BroadcastReceiver,我们可以实现类似QQ的强制下线功能,同时结合弹窗提示,提供良好的用户...

    logstash-7.17.5-windows-x86_64.zip

    - `bin/`:存放可执行文件,如启动和停止 Logstash 的命令。 - `config/`:存储配置文件,其中 `logstash.yml` 是主配置文件,定义 Logstash 的全局设置,而 `pipeline/` 子目录下有每个数据管道的配置。 - `lib/`:...

    Dynamic web.rar

    1. **Web应用程序结构**:动态Web项目通常遵循一定的目录结构,如WEB-INF下的web.xml文件是应用的部署描述符,存放Servlet、Filter、Listener等的配置信息。项目中的"Dynamic web"可能包含了这个标准结构。 2. **...

Global site tag (gtag.js) - Google Analytics