分享
 
 
 

在JavaScript程序中整合Java函数(下)

王朝html/css/js·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

private String prepareString(String s)

{

if(s == null)

return null;

if(s.length() < 2)

return s;

if(s.charAt(0) == '"' && s.charAt(s.length() - 1) == '"') file://如果字符串s以"开头,又以"结尾,则把两头的"去掉

return s.substring(1, s.length() - 1);

if(s.startsWith("'") && s.endsWith("'"))//如果字符串s以'开头,又以'结尾,则把两头的"去掉

return s.substring(1, s.length() - 1);

else

return s;

}

private boolean processLine1(String s, String s1, String s2, String s3)

{ file://创建一个Object类的实例

Object obj[] = {

null, null

};

Class class1;

if((class1 = (Class)cls.get(s1)) == null)

try

{

class1 = Class.forName(s1);//返回具有s1指定的类名的类的Class描述符

cls.put(s1, class1); file://放回哈西表

}

catch(Exception _ex)

{

System.out.println("不能装载类 " + s1);

return false;

}

obj[0] = class1;

if(s2.length() == 0)

{

try

{

obj[1] = class1.newInstance();// 创建类的新实例

}

catch(NoSuchMethodError _ex)

{

System.out.println("不能创建对象的实例 " + s3);

return false;

}

catch(Exception _ex)

{

System.out.println("不能创建对象的实例 " + s3);

return false;

}

inst.put(s, ((Object) (obj)));

}

else

{

Object obj1[] = getParamArray(s2, 0); file://取得参数列表

if(obj1 == null)

{

System.out.println("不能处理这行参数: " + s3);

return false;

}

try

{

Constructor cons = class1.getConstructor((Class[])obj1[0]);//使用参数列表构建类构建器

if(class1 == null)

{

System.out.println("不能创建对象的实例 " + s3);

return false;

}

obj[1] = cons.newInstance((Object[])obj1[1]);

inst.put(s, ((Object) (obj)));

}

catch(Exception _ex)

{

System.out.println("不能创建对象的实例 " + s3);

return false;

}

}

return true;

}

private Object[] getParamArray(String s, int i) file://取得s中所包含的参数列表,存入一个Object数组中

{

String s1 = s.trim(); file://去除末尾的空格

String s6 = ",";

Vector vector = new Vector();

if(s1.length() > 0)

{

if(s1.charAt(0) == '(')//去掉(

s1 = s1.substring(1);

if(s1.endsWith(")"))//去掉)

s1 = s1.substring(0, s1.length() - 1);

String s2 = s1.trim(); file://去掉字符串后的空格

if(s2.length() == 0 && i == 0) file://如果s2长度为零,说明没有参数

return null;

String s4;

if(s2.length() > 0)

{

if(s2.charAt(0) == '"')//如果s2以"开头,则用\"代替

s6 = "\"";

else

if(s2.charAt(0) == '\'')//如果s2以\'开头,则用'代替

s6 = "'";

else

s6 = ",";

s4 = s2.substring(0, 1); file://取得s2的第一个字符

s2 = s2.substring(1);//取得s2的第二个字符往后的字符

}

else

{

s4 = "";

}

for(; s2.length() > 0; s2 = s2.substring(1))//这些语句是为了把参数表中的参数分离出来

{

String s5 = s2.substring(0, 1);//取得s2的第一个字符

if(s5.equals(s6)) file://如果s5和s6相等,即判断s5是否为两个参数的分隔符

{

if(s6.equals("\"") || s6.equals("'"))//如果s6为\"或',则

s4 = s4 + s6;

vector.addElement(s4); file://把s4(即一个参数值)加入vector中

s2 = s2.substring(1).trim();

s4 = "";

if(s2.length() == 0)

break;

s4 = s2.substring(0, 1);

if(s4.charAt(0) == ',')

file://如果s4以","开头,则判断s4是否以分隔符开头

{

s2 = s2.substring(1).trim();

s4 = "";

if(s2.length() == 0)

break;

s4 = s2.substring(0, 1);

}

if(s4.charAt(0) == '"')

s6 = "\"";

else

if(s4.charAt(0) == '\'')

s6 = "'";

else

s6 = ",";

}

else

{

s4 = s4 + s5;

}

}

if(s4.length() > 0)

vector.addElement(s4);

}

int j = vector.size(); file://取得向量变量vector的大小,vector中保存的都是参数值

if(j == 0 && i == 0)

return null; file://没有参数

Object aobj[] = new Object[3];

Class class1[] = new Class[j + i];

Object aobj1[] = new Object[j + i];

aobj[0] = class1;

aobj[1] = ((Object) (aobj1));

aobj[2] = new Integer(j + i);

for(int k = i; k < j + i; k++)

{

String s3 = (String)vector.elementAt(k - i);

try

file://以下的代码是为了判断,每个参数到底是什么数据类型

{ file://判断是否为整型

Integer integer = Integer.valueOf(s3);

class1[k] = Integer.TYPE;

aobj1[k] = integer;

}

catch(Exception _ex)

{

try

{ file://判断是否为浮点型

Float float1 = Float.valueOf(s3);

class1[k] = Float.TYPE;

aobj1[k] = float1;

}

catch(Exception _ex2)

{ file://判断是否为布尔类型

s3 = prepareString(s3);

if(s3.equals("true")) file://判断是否为真

{

class1[k] = Boolean.TYPE;

aobj1[k] = new Boolean(true);

}

else

if(s3.equals("false")) file://判断是否为假

{

class1[k] = Boolean.TYPE;

aobj1[k] = new Boolean(false);

}

else

{

class1[k] = class$java$lang$String == null ? (class$java$lang$String = class$("java.lang.String")) : class$java$lang$String;

aobj1[k] = s3;

}

}

}

}

vector = null;

return aobj;

}

public void doPost(HttpServletRequest httpservletrequest, HttpServletResponse httpservletresponse)

throws ServletException, IOException

{

doGet(httpservletrequest, httpservletresponse);

}

public void doGet(HttpServletRequest httpservletrequest, HttpServletResponse httpservletresponse)

throws ServletException, IOException

{

String s = "";

String s1 = "";

s = HttpUtils.getRequestURL(httpservletrequest).toString();

file://返回一个字符串,包含请求字符串中包含的协议名,主机名,端口号以及路径,但是不包含请求的内容

int i;

if((i = s.indexOf("?")) > 0)//去掉s结尾的问号

s = s.substring(0, i);

s1 = httpservletrequest.getQueryString();//取的请求字符串的请求内容

if(s1 == null)

{

parseFile(s1, httpservletrequest, httpservletresponse);

return;

}

if(s1.equals(admin)) file://如果请求串等于admin

{

adminPage(httpservletrequest, httpservletresponse, s); file://进入管理员界面

return;

}

if(s1.equals("namiotde")) file://如果请求串为namiotde,则执行相应的执行命令

{

executeRequest(httpservletrequest, httpservletresponse);

return;

}

String s2 = getFromQuery(s1, "what="); file://取的动作的属性值

if(s2.equals("hframe"))

{

getHiddenFrame(httpservletrequest, httpservletresponse);//转到隐藏帧

return;

}

if(s2.equals("mframe"))

{

getMainFrame(s1, httpservletrequest, httpservletresponse); file://转到主帧

return;

}

else

{

parseFile(s1, httpservletrequest, httpservletresponse);

return;

}

}

file://管理员界面,执行添加删除对象的操作

private void adminPage(HttpServletRequest httpservletrequest, HttpServletResponse httpservletresponse, String s)

throws IOException

{

PrintWriter printwriter = httpservletresponse.getWriter();

String s1 = "";

String s4 = httpservletrequest.getParameter("what"); file://返回请求串中what,即动作的属性值

if(s4 != null)

if(s4.equals("delete")) file://如果what的值为delete,则执行相应的操作

{

for(Enumeration enumeration = httpservletr

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有