JSVM核心类库,收集了JAVA进行JSVM开发必用技术进行归纳,在实际项目应用中直接引用相关类库即可现实JSVM相关功能!
源代码在线查看: request.js
// Description: js.net.http.Request 类
// Author: Changhua.Wan
// Version: 2004.03.06.01
_package("js.net.http");
_import("js.io.Serializable");
_import("js.net.Encoder");
_import("js.util.Hashtable");
_import("js.lang.IllegalArgumentException");
function js.net.http.Request() {
this.map=new js.util.Hashtable();
this.contentType = 0;
this.set = function(n,v) {this.map.put(n,v);}
this.get = function(n) {return this.map.get(n);}
this.setString = function(n,v) {
this.set(n,String(v));
};
this.getString = function(n) {
return String(this.get(n));
};
this.setFile = function(_name,_file) {
if (_file.instanceOf("js.io.File")) {
this.set(_name,_file);
} else {
_throw(new js.lang.IllegalArgumentException("setFile 参数不是有效的 js.io.File 对象"));
}
};
this.getFile = function(_name) {
var _file = this.get(_name);
if (_file != null && _file.instanceOf("js.io.File")) {
return _file;
}
return null;
};
this.setObject = function(n,v) {}
this.getObject = function(n,v) {}
this.clear = function() {this.map.clear();};
this.removeParameter = function(n) {this.map.remove(n);};
this.paramCount = function() {return this.map.size();};
var separator = null;
var getSeparator = function() {
if (separator == null)
separator = "----------" + Math.round(Math.random() * 0x10000000).toString(16);
return separator;
};
this.getContentType = function() {
if (this.contentType == 0)
return "application/x-www-form-urlencoded";
else if (this.contentType == 1)
return 'text/xml; charset="UTF-8"';
else if (this.contentType == 2)
return "multipart/form-data; boundary=" + getSeparator();
else ;
}
this.toData = function() {
if (this.contentType == 0)
return this.toUrlString();
else if (this.contentType == 1)
return this.toXmlString();
else if (this.contentType == 2)
return this.toFormData();
else
return this.toUrlString();
}
this.toXmlString = function() {
var xmldom = new ActiveXObject("Microsoft.XMLDOM");
xmldom.async = false;
xmldom.loadXML("");
var root = xmldom.documentElement;
var em = this.map.keys();
while(em.hasMoreElements()) {
var key = em.nextElement();
var itm = this.map.get(key);
var para = xmldom.createElement("js:param");
para.setAttribute("name", key);
var text = xmldom.createTextNode(itm.toString());
para.appendChild(text);
root.appendChild(para);
}
return xmldom.xml;
};
this.toUrlString = function() {
var str="";
var em = this.map.keys();
while(em.hasMoreElements()) {
var key = em.nextElement();
var itm = this.map.get(key);
str += key + "=" + js.net.Encoder.encodeURIComponent(itm.toString()) + "&";
}
return str;
};
this.toFormData = function() {
var str = "";
var em = this.map.keys();
while(em.hasMoreElements()) {
var key = em.nextElement();
var itm = this.map.get(key);
str += js.net.Encoder.strToHex('--' + getSeparator() + '\r\n');
str += js.net.Encoder.strToHex('Content-Disposition: form-data; name="' + key + '"');
if (itm.instanceOf("js.io.File")) {
str += js.net.Encoder.strToHex('; filename="' + itm.path + '"\r\n');
str += js.net.Encoder.strToHex('Content-Transfer-Encoding: binary\r\n\r\n');
str += js.net.Encoder.byteToHex(itm.getData()); // TODO
}
else
str += js.net.Encoder.strToHex('\r\n\r\n' + itm);
str += js.net.Encoder.strToHex('\r\n');
}
str += js.net.Encoder.strToHex('--' + getSeparator() + '\r\n');
return(js.net.Encoder.hexToByte(str));
}
}
js.net.http.Request._extends("js.io.Serializable");
|
相关资源 |
|
-
JSVM核心类库,收集了JAVA进行JSVM开发必用技术进行归纳,在实际项目应用中直接引用相关类库即可现实JSVM相关功能!
-
一个可以进行交流电压测量的程序,这个程序,在实际的应用中得到验证,大家可以直接使用
-
java写的简单的时钟程序,界面简洁漂亮,对初学者很有参考价值, 类Clock继承了java.applet.Applet
-
JAVA 2应用编程150例
收集了JAVA大量的编程实例
-
用VC++实现ODBC连接数据库,对于初学者进行数据库开发,或用Java开发ODBC有指导作用!
-
本书介绍和分析了MFC程序的框架结构和各种MFC辅助工具的使用方法,实例剖析了MFC中与图形和数据库应用程序设计有关的类。介绍了GIS系统的开发方法和思路,结合具体代码开发实现了矢量图形系统、数据库管
-
收集了一些关于软件开发中需要用到的规范文档,软件需求分析报告、详细设计说明、概要设计说明
-
java线程经典书籍!介绍了JAVA线程开发
|