深化解析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编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |