首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

struts2自带项目showcase的fileupload与filedownload效能学习笔记

2012-11-14 
struts2自带项目showcase的fileupload与filedownload功能学习笔记struts2自带项目showcase的fileupload功

struts2自带项目showcase的fileupload与filedownload功能学习笔记
struts2自带项目showcase的fileupload功能学习笔记
学习Struts2的自带项目showcase的fileupload功能。把我认为的一些疑问点写下来。

第一、我们先理解下struts-xml中的package的namespace属性,这个属性自然是为了在不同的命名空间中可以使用同名的action。我们先看下面的代码:

这个意思就是针对所有的/fileupload/upload.do的请求,我们使用fileupload.FileuploadAction去处理它,如果针对SUCCESS的返回,我们使用/fileupload/upload.jsp去响应它。这里的/fileupload/upload.do虽然是绝对路径,但是这里的绝对路径是针对应用的根而不是服务器的根。即/fileupload/upload.jsp都是根据你的项目名,如果你的项目名为MyStruts的话那么实际上就为http://localhost:端口号//MyStruts/fileupload/upload.jsp 
注意这里就要区别于

1.如果在请求中不写namespace的话类似:
就会使用默认路径


第二、action的相应属性如何得到页面字段对应的属性。这是通过拦截器把Action的属性值设置进去的。在“defaultStack”interceptor-stack中有个“param”拦截器:com.opensymphony.xwork2.interceptor.ParametersInterceptor,在这个拦截器的方法:

在setParameters方法里有具体设置属性的操作,你可以看到这么一段:
 这里要注意:
public InputStream getInputStream(){return ServletActionContext.getServletContext().getResourceAsStream(inputPath);}
这里我们再来看下:
引用getServletContext

public static javax.servlet.ServletContext getServletContext()

    Gets the servlet context.

    Returns:
        the servlet context.
而getResourceAsStream:引用Returns the resource located at the named path as an InputStream object.

引用Parameters:
    path - a String specifying the path to the resource

第三、我们注意下这个stream的返回类型及其所需的参数
stream:直接向响应中发送原始数据,通常在用户下载时使 用,contentType指定流的类型,默认为text/plain,contentLength以byte计算流的长 度,contentDisposition指定文件的位置,通常为filename=”文件的位置”,input指定InputStream的名字,例 如:imageStream,bufferSize指定缓冲区大小,默认为1024字节;

热点排行