网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Struts源码研究-logic-Iterator标.
.开源面向对象数据库db4o之旅:初识.
.构建更好的异常处理框架.
.关于java 的 Classpath全解.
.运用Jakarta Struts的七大实战心.
.实战体会Java多线程编程精要之基.
.getTimezoneOffset 方法.
.JAVA新手解惑(转).
.影响性能的测试报告(数据库版).
.GetFolder 方法.
.详述:JAVA也能克隆!.
.介绍关于UI管理器的设计(草案)方.
.在Wicket里面使用一个自己WebSes.
.从.NET应用程序访问MicrosoftOff.
.直取Sun大本营,IBM发表Linux服务.
.Java应用程序中图象按钮.
.POJO应用框架:Spring Vs. EJB 3.
.Servlet中如何捕获Session事件?.
..NET 对 J2EE[2].
.从任意位置运行Jar文件.

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

发表日期:2008-1-5



  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
上一篇:在JavaScript程序中整合Java函数(上) 人气:975
下一篇:Java布局管理器深入讨论 人气:716
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐