当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:12:00  来源:本站整理

深化解析Java中webwork的文件上传机制[Java编程]

赞助商链接



  本文“深化解析Java中webwork的文件上传机制[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

点击上传按钮后,webwork的程序流以下:

step 1)进入ServletDispatcher.service

public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException {
........
request = wrapRequest(request);
.........
}

step2)进入ServletDispatcher.wrapRequest

protected HttpServletRequest wrapRequest(HttpServletRequest request)
throws IOException {
........................
if (MultiPartRequest.isMultiPart(request)) {
request = new MultiPartRequestWrapper(request, getSaveDir(), getMaxSize());
}
return request;
}

step3)进入MultiPartRequestWrapper的构造办法

public MultiPartRequestWrapper(HttpServletRequest request, String saveDir, int maxSize)
throws IOException {
.....................
//step3.1)获得webwork.preperties配置的parser
String parser = "";
parser = Configuration.getString("webwork.multipart.parser");
// If it's not set, use Pell
if (parser.equals("")) {
log.warn("Property webwork.multipart.parser not set." +
" Using com.opensymphony.webwork.dispatcher.multipart.PellMultiPartRequest");
parser = "com.opensymphony.webwork.dispatcher.multipart.PellMultiPartRequest";
}
// legacy support for old style property values
else if (parser.equals("pell")) {
parser = "com.opensymphony.webwork.dispatcher.multipart.PellMultiPartRequest";
} else if (parser.equals("cos")) {
parser = "com.opensymphony.webwork.dispatcher.multipart.CosMultiPartRequest";
} else if (parser.equals("jakarta")) {
parser = "com.opensymphony.webwork.dispatcher.multipart.JakartaMultiPartRequest";
}
//step3.2)获得后通过反射实例化parser
try {
Class baseClazz =
com.opensymphony.webwork.dispatcher.multipart.MultiPartRequest.class;
Class clazz = Class.forName(parser);
// make sure it extends MultiPartRequest
if (!baseClazz.isAssignableFrom(clazz)) {
addError("Class '" + parser + "' does not extend MultiPartRequest");
return;
}
// get the constructor
Constructor ctor = clazz.getDeclaredConstructor(new Class[]{
Class.forName("javax.servlet.http.HttpServletRequest"),
java.lang.String.class, int.class
});
// build the parameter list
Object[] parms = new Object[]{
request, saveDir, new Integer(maxSize)
};
// instantiate it
multi = (MultiPartRequest) ctor.newInstance(parms);
.................................................
}


  以上是“深化解析Java中webwork的文件上传机制[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 高手深化解析Win7设备驱动管理
  • 必看!高手深化解析Win7设备驱动管理
  • Oracle 9i数据库中动态重配置深化解析
  • 深化解析SQL Server的数据转换服务
  • Java中Object类的equals()和hashCode()办法深化解析
  • 深化解析Java中webwork的文件上传机制
  • <b>C/C++程序员应聘常晤面试题深化解析</b>
  • <b>深化C++ Builder之编写自己的元件-深化解析VCL担当、消息机制(1</b>
  • 深化C++ Builder之编写自己的元件-深化解析VCL担当、消息机制(
  • <b>深化C++ Builder之编写自己的元件-深化解析VCL担当、消息机制(3</b>
  • <b>Java线程知识深化解析</b>
  • 深化解析Oracle数据库安全战略-体系架构
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .