服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

在javascript程序中整合java函数(下)


  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

扫描关注微信公众号