如何学好java

如何学好java,其实很简单,只要用心体会,慢慢积累!
posts - 106, comments - 7, trackbacks - 0, articles - 3
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

2011年5月13日

http://www.luocong.com/dsaanotes/index-Z-H-1.htm

posted @ 2014-01-02 22:50 哈希 阅读(131) | 评论 (0)编辑 收藏

     摘要: 冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。   冒泡排序算法的运作如下:  比较相邻的元素。如果第一个比第二个大,就交换他们...  阅读全文

posted @ 2014-01-02 22:32 哈希 阅读(189) | 评论 (0)编辑 收藏

http://www.cnblogs.com/szfei/archive/2012/08/08/2628208.html    hashmap遍历

posted @ 2012-12-22 10:45 哈希 阅读(152) | 评论 (0)编辑 收藏

基本介绍:
          showModalDialog()         (IE 4+ 支持)
          showModelessDialog()      (IE 5+ 支持)
          window.showModalDialog()                  方法用来创建一个显示HTML内容的模态对话框。
          window.showModelessDialog()             方法用来创建一个显示HTML内容的非模态对话框。
使用方法:
          vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures])
          vReturnValue = window.showModelessDialog(sURL [, vArguments] [,sFeatures])
参数说明:
         sURL          --  必选参数,类型:字符串。用来指定对话框要显示的文档的URL。
         vArguments    -- 可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过
 

                          window.dialogArguments来取得传递进来的参数。
         sFeatures     -- 可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。
----------------
1.    dialogHeight:    对话框高度,不小于100px
2.    dialogWidth:    对话框宽度。
3.    dialogLeft:     离屏幕左的距离。
4.    dialogTop:     离屏幕上的距离。
5.    center:          { yes | no | 1 | 0 } :              是否居中,默认yes,但仍可以指定高度和宽度。
6.    help:             {yes | no | 1 | 0 }:                是否显示帮助按钮,默认yes。
7.    resizable:       {yes | no | 1 | 0 } [IE5+]:     是否可被改变大小。默认no。
8.    status:          {yes | no | 1 | 0 } [IE5+]:      是否显示状态栏。默认为yes[ Modeless]或no[Modal]。
9.    scroll:            { yes | no | 1 | 0 | on | off }:是否显示滚动条。默认为yes。

下面几个属性是用在HTA中的,在一般的网页中一般不使用。
10.    dialogHide:{ yes | no | 1 | 0 | on | off }:在
打印或者打印预览时对话框是否隐藏。默认为no。
11.    edge:{ sunken | raised }:指明对话框的边框样式。默认为raised。
12.    unadorned:{ yes | no | 1 | 0 | on | off }:默认为no。

参数传递:
1. 要想对话框传递参数,是通过vArguments来进行传递的。类型不限制,对于字符串类型,最大为4096个字符。也可以传递对象,例如:
-------------------------------
parent.htm
<script>
          var obj = new Object();
          obj.name="51js";
          window.showModalDialog("modal.htm",obj,"dialogWidth=200px;dialogHeight=100px");
</script>
modal.htm
<script>
          var obj = window.dialogArguments
          alert("您传递的参数为:" + obj.name)
</script>
-------------------------------
2.可以通过window.returnValue向打开对话框的窗口返回信息,当然也可以是对象。例如:
------------------------------
parent.htm
<script>
          str =window.showModalDialog("modal.htm",,"dialogWidth=200px;dialogHeight=100px");
          alert(str);
</script>
modal.htm
<script>
          window.returnValue="http://homepage.yesky.com";
</script>

常见技巧:

一、怎样才让在showModalDialog和showModelessDialog的超连接不弹出新窗口?
  在被打开的网页里加上<base target="_self">就可以了。这句话一般是放在<head>之间的。

二、怎样才刷新showModalDialog和showModelessDialog里的内容?
  在showModalDialog和showModelessDialog里是不能按F5刷新的,又不能弹出菜单。这个只能依靠

javascript了,以下是相关代码:

<body onkeydown="if (event.keyCode==116){reload.click()}">
<a id="reload" href="filename.htm" style="display:none">reload...</a>

  将filename.htm替换成网页的名字然后将它放到你打开的网页里,按F5就可以刷新了,注意,这个要

配合<base target="_self">使用,不然你按下F5会弹出新窗口的。

三、如何用javascript关掉showModalDialog(或showModelessDialog)打开的窗口。
  <input type="button" value="关闭" onclick="window.close()">
  也要配合<base target="_self">,不然会打开一个新的IE窗口,然后再关掉的。

四、Math.random与showModalDialog。

   当你设置的弹出网页固定时(如上面的"modal.htm"页面),ie很可能到临时文件区,下载上次产生的该页面(openPage.html),而没有重新加载,

   对于动态加载的页面来说,这样往往产生误会,如没有及时更新数据,也就更不利于开发者测试。所以,你可以采用如下方式:

      var strPage = “/medal.htm?random="+Math.random();

   这样每次产生的strPage是不一样的,原因也就不言自明了。

 

下面举两个例子

一、返回一个字符串

首先是父页面有个按钮,用来打开Modal页面userList.aspx

复制代码
 function openWin()
    {
         str =window.showModalDialog("userList.aspx",window,"status:0;help:0;edge:sunken;dialogWidth=700px;dialogHeight=400px");

        if(str!=undefined && typeof(str)!=undefined && str!="undefined" && str!="")
        {
          document.getElementById("txtuserid").value=str;
        }else
        {
         document.getElementById("txtuserid").value="";
        }
    }
复制代码

str就是子页面返回过来的数据,我们把它添加到父类的一个表单元素中

子页面

    function getValue()
        {          
         var selectValue=$(":radio:checked").val();
         window.returnValue=selectValue;
         window.close();
        }

在这里我们把子页面里的值返回到父页面里就可以了,然后关闭页面就可以了

二、返回一个数据

父页面

复制代码
     function openWin()
     {
 
        array =window.showModalDialog("demo2.aspx",window,"status:0;help:0;edge:sunken;dialogWidth=700px;dialogHeight=400px;scroll:no");
       
          document.getElementById("username").value=array[0];
          document.getElementById("sex").value=array[0];
         
     
    }
复制代码

子页面

 

复制代码
   function getValue()
       {
         var array=new Array();
         
         array[0]=document.getElementById("username").value;
         Array[1]=document.getElementById("sex").value;
         window.returnValue=array;
         window.close();
       }
复制代码

返回一个数组就可以了,如果用open打开的话,在搜狗或者360浏览器打开的是一个页面或者阻拦什么的

 前段时间在后台使用JS的winodw.showModalDialog来查看静态页面内容,发现不能及时显示更新后的页面内容,用open打开有时也会出现这种问题

解决办法 
  window.showModalDialog(getUrl+"?Rnd="+Math.random(),"","dialogWidth:600px;dialogHeight:400px;help:no;scroll:yes;center:yes;status:no;");
这样就不会有缓存了

多思考,多创新,才是正道!

posted @ 2012-11-26 12:51 哈希 阅读(904) | 评论 (1)编辑 收藏

1.判断select选项中 是否存在Value="paraValue"的Item 
$("#selectid option[@value='paraValue']").length>0
2.向select选项中 加入一个Item 
$("#selectid").append("<option value=''>1111<option>");
3.从select选项中 删除一个Item 
$("#selectid").remove("<option value=''>1111<option>");
4.修改select选项中 value="paraValue"的text为"paraText" 
$("#selectid option:selected").attr("value","paraValue").attr("text","paraText");
5. 设置select中text="paraText"的第一个Item为选中 
$("#selectid option[@text='paraText']").attr("selected","true")
6.设置select中 value="paraValue"的Item为选中 
$("#selectid option[@value='paraValue']").attr("selected","true")

7.设置select中第一 个Item为选中 
$("#selectid option").eq(0).attr('selected', 'true');

8. 得到select的当前选中项的value 
$("#selectid").val();
9.得到select的当前选中项的text 
$("#selectid").text();
10. 得到select的当前选中项的Index 
document.getElementById("select1").selectedIndex;
$("#selectid").get(0).selectedIndex
11. 清空select的项
$("#selectid").empty();

JS版本的:

  • //1.判断select选项中 是否存在Value="paraValue"的Item   
  • function jsSelectIsExitItem(objSelect,objItemValue)   
  • {   
  •      var isExit = false ;   
  •      for ( var i=0;i;I++)   
  •      {   
  •          if (objSelect.options[i].value == objItemValue)   
  •          {   
  •              isExit = true ;   
  •              break ;   
  •          }   
  •      }        
  •      return isExit;   
  • }   
  •   
  • //2.向select选项中 加入一个Item   
  • function jsAddItemToSelect(objSelect,objItemText,objItemValue, objItemPos)   
  • {   
  •      //判断是否存在   
  •      if (jsSelectIsExitItem(objSelect,objItemValue))   
  •      {   
  •          alert( "该Item的 Value值已经存在" );   
  •      }   
  •      else   
  •      {   
  •          var varItem = new Option(objItemText,objItemValue);   
  • //       objSelect.options[objSelect.options.length] = varItem;   
  •          objSelect.options.add(varItem, objItemPos);   
  •          alert( "成功加入" );   
  •      }      
  • }   
  •   
  • //3.从select选项中 删除一个Item   
  • function jsRemoveItemFromSelect(objSelect,objItemValue)   
  • {   
  •      //判断是否存在   
  •      if (jsSelectIsExitItem(objSelect,objItemValue))   
  •      {   
  •          for ( var i=0;i;I++)   
  •          {   
  •              if (objSelect.options[i].value == objItemValue)   
  •              {   
  •                  objSelect.options.remove(i);   
  •                  break ;   
  •              }   
  •          }          
  •          alert( "成功删除" );              
  •      }   
  •      else   
  •      {   
  •          alert( "该 select中 不存在该项" );   
  •      }      
  • }   
  •   
  • //4.修改select选项中 value="paraValue"的text为"paraText"   
  • function jsUpdateItemToSelect(objSelect,objItemText,objItemValue)   
  • {   
  •      //判断是否存在   
  •      if (jsSelectIsExitItem(objSelect,objItemValue))   
  •      {   
  •          for ( var i=0;i;I++)   
  •          {   
  •              if (objSelect.options[i].value == objItemValue)   
  •              {   
  •                  objSelect.options[i].text = objItemText;   
  •                  break ;   
  •              }   
  •          }          
  •          alert( "成功修改" );              
  •      }   
  •      else   
  •      {   
  •          alert( "该 select中 不存在该项" );   
  •      }      
  • }   
  •           
  • //5.设置select中text="paraText"的第一个 Item为选中   
  • function jsSelectItemByValue(objSelect,objItemText)   
  • {      
  •      //判断是否存在   
  •      var isExit = false ;   
  •      for ( var i=0;i;I++)   
  •      {   
  •          if (objSelect.options[i].text == objItemText)   
  •          {   
  •              objSelect.options[i].selected = true ;   
  •              isExit = true ;   
  •              break ;   
  •          }   
  •      }        
  •      //Show出结果   
  •      if (isExit)   
  •      {   
  •          alert( "成功选中" );              
  •      }   
  •      else   
  •      {   
  •          alert( "该 select中 不存在该项" );   
  •      }      
  • }   
  •   
  • //6.设置select中value="paraValue"的Item 为选中   
  • document.all.objSelect.value = objItemValue;   
  •   
  • //7.得到select的当前选中项的value   
  • var currSelectValue = document.all.objSelect.value;   
  •   
  • //8.得到select的当前选中项的text   
  • var currSelectText = document.all.objSelect.options[document.all.objSelect.selectedIndex].text;   
  •   
  • //9.得到select的当前选中项的Index   
  • var currSelectIndex = document.all.objSelect.selectedIndex;   
  •   
  • //10.清空select的项   
  • document.all.objSelect.options.length = 0;  
  • posted @ 2012-11-26 12:46 哈希 阅读(229) | 评论 (0)编辑 收藏

    封装 继承 多态

    面向对象的三个基本特征是:封装、继承、多态。

     

    封装

    封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。

    封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

    继承

    面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。

    通过继承创建的新类称为“子类”或“派生类”。

    被继承的类称为“基类”、“父类”或“超类”。

    继承的过程,就是从一般到特殊的过程。

    要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。

    在某些 OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。

    继承概念的实现方式有三类:实现继承、接口继承和可视继承。

    Ø 实现继承是指使用基类的属性和方法而无需额外编码的能力;

    Ø 接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;

    Ø 可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。

    在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“属于”关系。例如,Employee 是一个人,Manager 也是一个人,因此这两个类都可以继承 Person 类。但是 Leg 类却不能继承 Person 类,因为腿并不是一个人。

    抽象类仅定义将由子类创建的一般属性和方法,创建抽象类时,请使用关键字 Interface 而不是 Class。

    OO开发范式大致为:划分对象→抽象类→将类组织成为层次化结构(继承和合成) →用类与实例进行设计和实现几个阶段。

    多态

    多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。

    实现多态,有二种方式,覆盖,重载。

    覆盖,是指子类重新定义父类的虚函数的做法。

    重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。

    其实,重载的概念并不属于“面向对象编程”,重载的实现是:编译器根据函数不同的参数表,对同名函数的名称做修饰,然后这些同名函数就成了不同的函数(至少对于编译器来说是这样的)。如,有两个同名函数:function func(p:integer):integer;和function func(p:string):integer;。那么编译器做过修饰后的函数名称可能是这样的:int_func、str_func。对于这两个函数的调用,在编译器间就已经确定了,是静态的(记住:是静态)。也就是说,它们的地址在编译期就绑定了(早绑定),因此,重载和多态无关!真正和多态相关的是 “覆盖”。当子类重新定义了父类的虚函数后,父类指针根据赋给它的不同的子类指针,动态(记住:是动态!)的调用属于子类的该函数,这样的函数调用在编译期间是无法确定的(调用的子类的虚函数的地址无法给出)。因此,这样的函数地址是在运行期绑定的(晚邦定)。结论就是:重载只是一种语言特性,与多态无关,与面向对象也无关!引用一句Bruce Eckel的话:“不要犯傻,如果它不是晚邦定,它就不是多态。”

    那么,多态的作用是什么呢?我们知道,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中任一类的实例的某一属性时的正确调用。

    泛化(Generalization)

     

    在上图中,空心的三角表示继承关系(类继承),在UML的术语中,这种关系被称为泛化(Generalization)。Person(人)是基类,Teacher(教师)、Student(学生)、Guest(来宾)是子类。

    若在逻辑上B是A的“一种”,并且A的所有功能和属性对B而言都有意义,则允许B继承A的功能和属性。

    例如,教师是人,Teacher 是Person的“一种”(a kind of )。那么类Teacher可以从类Person派生(继承)。

    如果A是基类,B是A的派生类,那么B将继承A的数据和函数。

    如果类A和类B毫不相关,不可以为了使B的功能更多些而让B继承A的功能和属性。

    若在逻辑上B是A的“一种”(a kind of ),则允许B继承A的功能和属性。

    聚合(组合)

     

    若在逻辑上A是B的“一部分”(a part of),则不允许B从A派生,而是要用A和其它东西组合出B。

    例如,眼(Eye)、鼻(Nose)、口(Mouth)、耳(Ear)是头(Head)的一部分,所以类Head应该由类Eye、Nose、Mouth、Ear组合而成,不是派生(继承)而成。

    聚合的类型分为无、共享(聚合)、复合(组合)三类。

    聚合(aggregation)

     

    上面图中,有一个菱形(空心)表示聚合(aggregation)(聚合类型为共享),聚合的意义表示has-a关系。聚合是一种相对松散的关系,聚合类B不需要对被聚合的类A负责。

    组合(composition)

     

    这幅图与上面的唯一区别是菱形为实心的,它代表了一种更为坚固的关系——组合(composition)(聚合类型为复合)。组合表示的关系也是has-a,不过在这里,A的生命期受B控制。即A会随着B的创建而创建,随B的消亡而消亡。

    依赖(Dependency)

     

    这里B与A的关系只是一种依赖(Dependency)关系,这种关系表明,如果类A被修改,那么类B会受到影响

    posted @ 2012-11-21 09:32 哈希 阅读(214) | 评论 (0)编辑 收藏

    数列6,10,18,32,“?”,问“?”是几?

      1。什么是3G,2。3C 融合技术,3。对大唐的认识。
      3G有三大制式,GSM升级后的WCDMA,CDMA升级后的CDMA2000,以及我国自主开发的TD-SCDMA。
      第三代移动通信技术(3rd-generation,3G),是指支持高速数据传输的蜂窝移动通讯技术。3G服务能够同时传送声音及数据信息,速率一般在几百kbps以上。目前3G存在四种标准:CDMA2000,WCDMA,TD-SCDMA,WiMAX。
      所谓“3C产品”,就是计算机(Computer)、通信(Communication)和消费类电子产品(ConsumerElectronics)三者结合,亦称“信息家电”。由于3C产品的体积一般都不大,所以往往在中间加一个“小”字,故往往统称为“3C小家电”。
      
      3C指的是计算机(Computer)、通讯(Communication)和消费类电子产品(Consumer Electrics)。3C融合即利用数字信息技术激活其中任何一个环节,通过某种协议使3C的三个方面实现信息资源的共享和互联互通,从而满足人们在任何时间、任何地点通过信息关联应用来方便自己的生活。 无线宽带正是实现数字家庭3C融合的首要步骤。

      第一部分:选择题
      1.相同码元速率下,那种传输方式信息传输速率最高
      QPSK 16QAM BPSK GMSK
      2.下面哪些属于差错控制编码
      3.自由空间传播环境下信号衰减与距离( )次方成比例
      4.下列哪些功能属于网络管理的功能域5a880faf6f?应届生求职网YingJieSheng.COM?c350ade2a4
      故障管理配置管理计费管理性能管理安全管理传输管理路由管理
      5.采用CDMA技术通信系统,扰码的主要作用
      信道估计信道区分信号白化同步
      6.交织的主要作用
      7.数据链路层的协议是
      HDLC ARQ PPP ICMP RTP6fe97759aa?应届生求职网YingJieSheng.COM?b922cfa312
      8.那种ATM协议最适合应用话音业务
      AAL5 AAL4 AAL3 AAL2
      第二部分:填空问答
      1.香农公式表达式
      2.爱尔兰含义
      最大话务量和BHCA分别取决于什么5568161a8c?应届生求职网YingJieSheng.COM?d5792c152c
      3.中继器,网桥.路由器,网关各是两个网络的哪层连接;路由器的功能是( )和( )
      4.解释QPSK调制的原理
      5.简述dB,dBm的概念
      6.画出数字通信系统的模型,简述信源编码和信道编码的区别,及其它们在无线通信系统中的作用
      7.C语言中能否在头文件中定义变量,并说明原因
      8.在Windows系统,能否动态链接库中定义变量,如果可以定义说明有效范围4005f8da13?应届生求职网YingJieSheng.COM?60d149af1f
      9.结构化程序设计中程序=
      面向对象程序设计中程序=
      10.解释return和exit的区别
      11.ATM网络信元长度是( ),所有信息在最底层以( )的方式传送,以保持电路交换适合于传送实时性很强的业务特点.
      12.什么是TDD,什么是FDD,多址方式又指什么?列出你所了解的多址方式
      13.谈谈对OSI或计算机网络中”协议””实体””服务”的理解以及什么是SDU PDU和Primitive?8f07f89ddb?应届生求职网YingJieSheng.COM?4c20a920bf
      14.GSM逻辑信道及分类
      15.谈谈你对移动通信系统组成的理解.

     


    1.    描述一下public,protected,private,final关键字在Java中的用法?
      public表示公共的,定义类的时候工程下任何包都可以读取到,protected是受保护的,只有在相同包内的类才能读取到,private定义方法时候只能在类内部才能读取到。final表示一个终态,是不可改变的。
    2.    Abstract class 和Interface 有什么区别?
      抽象类和接口的区别如下:
      (1、)抽象类是类,接口是接口;
      (2、)抽象类只能继承一个,接口可以多实现;
      (3、)抽象类定义一些静态变量可以,接口中不行;
    3.    Vector 和 ArrayList 有什么区别? HashTable 和 HashMap有什么区别?
      vector 和 Arraylist都是继承自集合类collection,vector是链表的方式实现的,读取熟读快,添加数据时候慢,Arraylist里面添加数据慢读取数据快。
      Hashtable和HashMap最大的区别是HashTable是同步的,HashMap是非同步的,所以性能上相对快一点,HashTable是继承自Dictionary类,而HashMap是继承自Map接口
    4.    Java集合中的Iterator起什么作用?
      java集合中Iterator主要作用是去除重复;
    5.    Java中创建一个对象有哪几种方法,区别是什么?
      java中创建对象可以实例化new
    6.    多线程有几种表示方法,都是什么?同步有几种实现方法,都是什么?
      多线程可以通过实现runable接口,也可以继承Thread类来实现。
      实现同步也有两种,一种是用同步方法,一种是用同步块.. 同步方法就是在方法返回类型后面加上synchronized, 比如:
      public void synchronized add(){...}
      同步块就是直接写:synchronized (这里写需要同步的对象){...}
      wait():使一个线程处于等待状态,并且释放所持有的对象的lock。
      sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。
      notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。
      Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。
    7.    描述一下Java中的异常机制,什么是Checked Exception, Unchecked Exception?
      java中的异常机制要求你对一些存在的问题进行实现的规划,并对相应的Exception的情况进行设定,当程序捕获类似的情况就会抛出异常,你可以定义异常的处理方法,异常并不是致命的,它与错误有着区别,错误只要发生程序就会终止,但是异常会继续执行下去。
      java中的异常包括受检查的异常和不受检查的异常,(1、)受检查的异常:这种在编译时候被强制检查的异常被称作受检查异常,即在方法中声明的异常。(2、)不受检查的异常:在方法得声明中没有声明,但在方法的运行过程中发生的各种异常叫做不受检查的异常,这种异常是错误,会被自动捕获。一些规模较小的程序中,受检查的异常能够提高开发效率,但随着项目规模的扩大,过的的受检查的异常变得难以管理,其带来的好处也消失殆尽。
    8.    描述一下Java ClassLoader 或者 J2EE ClassLoader的工作原理?(可以画图)
      当运行程序是首先运行java虚拟机(JVM),然后把java class加载到JVM里运行,负责加载java class的这部分就叫做java ClsssLoader,
      JVM本身包含一个ClassLoader成为bootstrap ClassLoader,和JVM一样,BootstrapClassLoader使用本地代码实现的,它负责加载核心javaClass(即所有java.*开头的类)。另外JVM还提供两个ClassLoader,他们都是用java语言实现的,都是由BootstrapClassLoader负责加载,其中Extention ClassLoader负责加载扩展的javaclass(例如所有以javax.*开头的类和存放在JRE的ext目录下的类),ApplicationClassLoader负责加载应用程序自身的类。
      当运行一个程序的时候,JVM启动,运行Bootstrapclassloader,该classloader加载核心API(ExtClassloader和AppClassloader也在此时被加载),然后调用Extclassloader加载扩展API,最后AppClassloader加载CLASSPATH目录下定义的Class,这就是一个程序最基本的加载流程。

    9.    MVC的各个部分都有那些技术来实现?如何实现?
      MVC主要包括模型层,视图层,控制层。
      模型层主要由javabean实现,视图层是由jsp实现,控制层主要由servlet实现。
    10.    描述一下Struts的工作方式?
      struts1.2的工作方式主要是MVC实现,struts2是拦截器的方式实现。
    11.    JSP中包含哪几个内置对象?
      jsp包括九个内置对象,分别为:request,response,session,cookie,out,application,pageRequest,Exception,
    12.    JSP中两种跳转方式分别是什么?有什么区别?
      jsp两种跳转方式是重定向和页面跳转,其中重定向方式执行,form表单提交数据会失去,网络地址会变化,页面跳转不会;
    13.    描述一下JSP中taglib的用法?
      jsp中标签可以使java代码嵌入到页面上使用
    14.    Javascript中如何校验数字型?
      正则表达式
    15.    EJB2.0中包括哪些内容? 作用分别是什么?
      EJB2.0
    16.    一个SessionBean包含哪几个组件?各个组件作用是什么?
      
    17.    描述一下一个EJB应用中EJB部署文件,以及你所熟悉的App Server的部署文件的作用?
       
    18.    列举一下你所知道的设计模式(包括EJB,J2EE的设计模式),以及他们应用的场合?
      代理模式:把一个对象注入到一个类中通过这个注入的对象来完成一系列方法,
      工厂模式:一个接口下的所有类的实例可以通过专门的工厂类通过传递不同的参数来实现;
      Adapter(适配器)模式:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式的用意是将接口不同而功能相同或者相近的两个接口加以转换。
      单例模式:单例模式有两种:
                饿汉模式
          public class Singleton
          {
           private Singleton();
           priavate static Singleton singleton = new Singleton();
           public staic Singleton getInstance()
           {
          return instance;
           }
          }
          懒汉模式:
          public class Singleton
          {
           private static Singleton singleton = new Singleton();
           public static synchronize Singleton()
           {
          if(instance == null)
            {
           instance = new singleton();
            }
            return instance;
           }
          }
    19.    解析XML主要方法有哪些? 各有什么区别?
      1、xml有哪些解析技术?区别是什么?

    2、你在项目中用到了xml技术的哪些方面?如何实现的?

    3、用jdom解析xml文件时如何解决中文问题?如何解析?

    4、编程用JAVA解析XML的方式.

    1、xml有哪些解析技术?区别是什么?
      解析XMl方法主要方法有文件流读取,页面XMLHttp读取。
      DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且dom必须在解析文件之前把整个文档装入内存
      SAX:适合对XML文件的随机访问,不像DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。
      StAX:当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问STAX:Streaming API for XML (StAX)
      2、主要用到了信息存储信息配置两方面,在做数据交换平台时,将不能用数据源的数据组装成xml文件,然后将xml文件压缩打包加密后发给接收者,接受解密解压缩后再同xml文件中还原相关信息进行处理。在做软件配置时候,利用xml文件可以方便的进行,软件的各种配置都存储在xml文件中。
      3、
    20.    您了解Open Source的项目吗? 如果了解请描述几个,并讲述一下他们的作用?
      apchetomcat就是一个比较好的开源项目,主要作为服务器来使用。
      struts是一个主要用于作为控制层的开源框架项目,
      spring是一个轻量级的开源项目,通过控制反转和代理模式实现
      Hibernate是个持久层框架,用来建立与数据库的持久层
    21.    您看过哪些JAVA方面的书籍,能列举一下吗?
      think in java ,core java,jquery in action, struts,spring ,hibernate等等方面的书都有涉猎。

    posted @ 2012-11-20 20:02 哈希 阅读(256) | 评论 (0)编辑 收藏

    <%@ page pageEncoding="utf-8" %> <%@ page language="java" contentType="text/html; charset=GBK" %><%@ page import="java.util.*" %> <%@ page import="java.io.OutputStream" %> <%@ page import="jxl.Workbook" %> <%@ page import="jxl.write.WritableCellFormat" %> <%@ page import="jxl.write.WritableSheet" %> <%@ page import="jxl.write.WritableWorkbook" %> <%@ page import="jxl.write.WriteException" %> <%@ page import="java.text.SimpleDateFormat" %> <% response.reset(); response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "filename=Member.xls");//attachment// WritableWorkbook是JexcelApi的一个类。 // 以下可以理解为创建一个excel文件,然后在excel里面创建一个表 OutputStream os = response.getOutputStream();//取得输出流 WritableWorkbook workbook = Workbook.createWorkbook(os); WritableSheet sheet = workbook.createSheet("First Sheet", 0);// 组织excel文件的内容 jxl.write.Label label = null; int excelCol = 0; int row = 0; try { label = new jxl.write.Label(excelCol++, row, "帐号"); sheet.addCell(label); label = new jxl.write.Label(excelCol++, row, "姓名"); sheet.addCell(label); label = new jxl.write.Label(excelCol++, row, "身份证"); sheet.addCell(label); label = new jxl.write.Label(excelCol++, row, "联系电话"); sheet.addCell(label); label = new jxl.write.Label(excelCol++, row, "生日"); sheet.addCell(label); label = new jxl.write.Label(excelCol++, row, "城市"); sheet.addCell(label); label = new jxl.write.Label(excelCol++, row, "职业"); sheet.addCell(label); label = new jxl.write.Label(excelCol++, row, "已购音箱型号"); sheet.addCell(label); label = new jxl.write.Label(excelCol++, row, "试听与否"); sheet.addCell(label); label = new jxl.write.Label(excelCol++, row, "邮箱"); sheet.addCell(label); label = new jxl.write.Label(excelCol, row, "注册时间"); sheet.addCell(label); //jxl.write.Number number = null; jxl.write.DateTime dateTime; jxl.write.DateFormat customDateFormat = new jxl.write.DateFormat("yyyy-MM-dd");//时间格式 WritableCellFormat dateFormat = new WritableCellFormat(customDateFormat); for(int i=0;i<10;i++){ excelCol = 0; row = i + 1; SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd"); sheet.addCell(label); label = new jxl.write.Label(excelCol++, row, "100"); sheet.addCell(label); label = new jxl.write.Label(excelCol++, row, "100"); sheet.addCell(label); label = new jxl.write.Label(excelCol++, row, "100"); sheet.addCell(label); /*字串格式*/ try{ label = new jxl.write.Label(excelCol++, row, formatDate.format("100")); sheet.addCell(label); }catch (Exception e){ //Maybe somebody fogot to input his birthday ,I need do nothing here! } label = new jxl.write.Label(excelCol++, row, "100"); sheet.addCell(label); label = new jxl.write.Label(excelCol++, row, "100"); sheet.addCell(label); label = new jxl.write.Label(excelCol++, row, "100"); sheet.addCell(label); label = new jxl.write.Label(excelCol++, row, "100"); sheet.addCell(label); label = new jxl.write.Label(excelCol++, row, "100"); sheet.addCell(label); /*时间格式*/ //label = new jxl.write.Label(excelCol, row, formatDate.format(rr.getCreateTime())); //sheet.addCell(label); } } catch (Exception e) { e.printStackTrace(); } finally{ // 生成excel文件 workbook.write(); workbook.close(); os.close(); } %>

    posted @ 2012-08-23 21:21 哈希 阅读(254) | 评论 (0)编辑 收藏

    网上的 Jquery ajax Demo 大多都是基于php
    很少 有java的 今天就把自己的Demo贴出来 和大家共同学习
    现在就  Jquery ajax 的 $.ajax(),$.post(),$.get();

    首先是  服务端的Servlet 演示这三个函数的用法对都是用的同一个 服务端
    Java代码 
    package com.june.servlet;  
     
    import javax.servlet.http.HttpServlet;  
    import javax.servlet.http.HttpServletResponse;  
    import javax.servlet.http.HttpServletRequest;  
    import java.io.IOException;  
    import java.io.PrintWriter;  
    import javax.servlet.ServletException;  
     
    public class jqueryAjaxServer extends HttpServlet {  
         public jqueryAjaxServer(){  
             super();  
         }  
         public void doGet(HttpServletRequest request,HttpServletResponse response)  
         throws IOException ,ServletException {  
             response.setContentType("text/html;charset=utf-8");  
             PrintWriter out=response.getWriter();  
             String account=request.getParameter("account");  
             if("iamcrzay".equals(account)){  
                 out.print("Sorry,the user is exist");  
             }  
             else{  
                 out.print("Congratulation,this accont you can use!!!!");  
             }  
             out.close();  
         }  
         public void doPost(HttpServletRequest request,HttpServletResponse response)  
         throws IOException ,ServletException {  
             this.doGet(request, response);  
         }  

    package com.june.servlet;

    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpServletRequest;
    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.ServletException;

    public class jqueryAjaxServer extends HttpServlet {
         public jqueryAjaxServer(){
          super();
         }
         public void doGet(HttpServletRequest request,HttpServletResponse response)
         throws IOException ,ServletException {
          response.setContentType("text/html;charset=utf-8");
          PrintWriter out=response.getWriter();
          String account=request.getParameter("account");
          if("iamcrzay".equals(account)){
           out.print("Sorry,the user is exist");
          }
          else{
           out.print("Congratulation,this accont you can use!!!!");
          }
          out.close();
         }
         public void doPost(HttpServletRequest request,HttpServletResponse response)
         throws IOException ,ServletException {
          this.doGet(request, response);
         }
    }

     

    下面是WEB.XML
    Xml代码 
    <?xml version="1.0" encoding="UTF-8"?> 
    <web-app version="2.5"   
        xmlns="http://java.sun.com/xml/ns/javaee"   
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
        <servlet> 
           <servlet-name>jqueryAjaxServer</servlet-name> 
           <servlet-class>com.june.servlet.jqueryAjaxServer</servlet-class> 
        </servlet> 
            <servlet-mapping> 
           <servlet-name>jqueryAjaxServer</servlet-name> 
           <url-pattern>/jqueryAjax</url-pattern> 
        </servlet-mapping> 
      <welcome-file-list> 
        <welcome-file>index.jsp</welcome-file> 
      </welcome-file-list> 
    </web-app> 

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5"
     xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
     <servlet>
        <servlet-name>jqueryAjaxServer</servlet-name>
        <servlet-class>com.june.servlet.jqueryAjaxServer</servlet-class>
     </servlet>
            <servlet-mapping>
        <servlet-name>jqueryAjaxServer</servlet-name>
        <url-pattern>/jqueryAjax</url-pattern>
     </servlet-mapping>
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    </web-app>

     

    下面是Jsp页面
    第一个是 jqueryAjax.jsp  本页使用的是$.ajax()
    Html代码 
    <%@ page language="java"  pageEncoding="utf-8"%> 
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
    <html> 
      <head>    
        <title>jquery ajax</title>   
        <meta http-equiv="pragma" content="no-cache"> 
        <meta http-equiv="cache-control" content="no-cache"> 
        <meta http-equiv="expires" content="0">      
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 
        <meta http-equiv="description" content="This is my page"> 
        <script src="js/jquery-1.2.6.js" type="text/javascript"></script> 
        <script language="javascript"> 
             $(function(){  
                   $('.sumbit').click(function(){  
                   if($('#account').val().length==0){  
                       $('.hint').text("用户名不能位空").css({"background-color":"green"});   
                   }  
                   else{  
                   $.ajax({  
                     url:'jqueryAjax',  
                     data:{account:$('#account').val()},  
                     error:function(){  
                     alert("error occured!!!");  
                     },  
                     success:function(data){  
                      $('body').append("<div>"+data+"</div>").css("color","red");  
            
                     }  
                       
                   });}  
                   });  
                   });  
                       
             
                 
        </script> 
      </head> 
        
      <body> 
                    <h3 align="center">jquery AjaX</h3> 
                    <hr> 
                    <label>请输入用户名 :</label> 
                    <input id="account" name="account" type="text"> 
                    <input class="sumbit" type="button" value="检测"> 
                    <div class="hint"> 
                    </div> 
      </body> 
    </html> 

    <%@ page language="java"  pageEncoding="utf-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head> 
        <title>jquery ajax</title>
     <meta http-equiv="pragma" content="no-cache">
     <meta http-equiv="cache-control" content="no-cache">
     <meta http-equiv="expires" content="0">   
     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
     <meta http-equiv="description" content="This is my page">
     <script src="js/jquery-1.2.6.js" type="text/javascript"></script>
     <script language="javascript">
          $(function(){
                $('.sumbit').click(function(){
                if($('#account').val().length==0){
                    $('.hint').text("用户名不能位空").css({"background-color":"green"});
                }
                else{
                $.ajax({
                  url:'jqueryAjax',
                  data:{account:$('#account').val()},
                  error:function(){
                  alert("error occured!!!");
                  },
                  success:function(data){
                   $('body').append("<div>"+data+"</div>").css("color","red");
      
                  }
                 
                });}
                });
                });
                    
       
           
     </script>
      </head>
     
      <body>
                    <h3 align="center">jquery AjaX</h3>
                    <hr>
                    <label>请输入用户名 :</label>
                    <input id="account" name="account" type="text">
                    <input class="sumbit" type="button" value="检测">
                    <div class="hint">
                    </div>
      </body>
    </html>

     

    第二个用的是  $.post()

    Html代码 
    <%@ page language="java"  pageEncoding="utf-8"%> 
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
    <html> 
      <head>    
        <title>jquery ajax</title>   
        <meta http-equiv="pragma" content="no-cache"> 
        <meta http-equiv="cache-control" content="no-cache"> 
        <meta http-equiv="expires" content="0">      
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 
        <meta http-equiv="description" content="This is my page"> 
        <script src="js/jquery-1.2.6.js" type="text/javascript"></script> 
        <script language="javascript"> 
             $(function(){  
                 $('.sumbit').click(  
                  function(){  
                    if($('#account').val().length==0){  
                        $('.hint').text("The account is cant't be null").css({"color":"red","background-color":"yellow"});  
                    }  
                    else{  
                    $.post("jqueryAjax","account="+$('#account').val(),function(data){  
                       $('.hint').text(data).css({"color":"red","background-color":"yellow"});  
                    })  
                    }  
                 });  
             });             
        </script> 
      </head> 
        
      <body> 
                    <h3 align="center">jquery Ajax</h3> 
                    <hr> 
                    <label>请输入用户名 :</label> 
                    <input id="account" name="account" type="text"> 
                    <input class="sumbit" type="button" value="检测"> 
                    <div class="hint"> 
                    </div> 
      </body> 
    </html> 

    <%@ page language="java"  pageEncoding="utf-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head> 
        <title>jquery ajax</title>
     <meta http-equiv="pragma" content="no-cache">
     <meta http-equiv="cache-control" content="no-cache">
     <meta http-equiv="expires" content="0">   
     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
     <meta http-equiv="description" content="This is my page">
     <script src="js/jquery-1.2.6.js" type="text/javascript"></script>
     <script language="javascript">
          $(function(){
              $('.sumbit').click(
               function(){
                 if($('#account').val().length==0){
                     $('.hint').text("The account is cant't be null").css({"color":"red","background-color":"yellow"});
                 }
                 else{
                 $.post("jqueryAjax","account="+$('#account').val(),function(data){
                    $('.hint').text(data).css({"color":"red","background-color":"yellow"});
                 })
                 }
              });
          });       
     </script>
      </head>
     
      <body>
                    <h3 align="center">jquery Ajax</h3>
                    <hr>
                    <label>请输入用户名 :</label>
                    <input id="account" name="account" type="text">
                    <input class="sumbit" type="button" value="检测">
                    <div class="hint">
                    </div>
      </body>
    </html>

     

    第三个是用的$.get()

    Html代码 
    <%@ page  pageEncoding="utf-8"%> 
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
    <html> 
      <head>     
        <title>jquery get</title> 
          
        <meta http-equiv="pragma" content="no-cache"> 
        <meta http-equiv="cache-control" content="no-cache"> 
        <meta http-equiv="expires" content="0">      
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 
        <meta http-equiv="description" content="This is my page"> 
        <script src="js/jquery-1.2.6.js" type="text/javascript"></script> 
        <script type="text/javascript"> 
             $(function(){  
                    $('.sumbit').click(function(){  
                          if($('#account').val().length==0){  
                             $('.hint').html("用户名不能位空!!!").css({"color":"#ffoo11","background":"blue"});  
                          }  
                          else{  
                              $.get("jqueryAjax","account="+$('#account').val(),  
                                   function(data){  
                                    $('.hint').html(data).css({"color":"#ffoo11","background":"green"});  
                              });  
                          }  
                    });  
             });  
        </script> 
     
      </head> 
        
      <body> 
            <h3 align="center">jquery AjaX</h3> 
                    <hr> 
                    <label>请输入用户名 :</label> 
                    <input id="account" name="account" type="text"> 
                    <input class="sumbit" type="button" value="检测"> 
                    <div class="hint"> 
                    </div> 
      </body> 
    </html> 

    posted @ 2012-05-25 16:43 哈希 阅读(232) | 评论 (0)编辑 收藏

    div#loadPic {
        width: 10%;
        height:40px;
        position:absolute;
        z-index:4;
        margin-top: 50px;
        margin-bottom: 50px;
        margin-left: auto;
        margin-right: auto;
        padding: 0px;
        top:30%;
    }

    posted @ 2012-03-14 13:58 哈希 阅读(162) | 评论 (0)编辑 收藏

    url=jsp?str="你好!" 
    String areaName=(String)request.getParameter("areaname");
    String dpt=new String(dptName.getBytes("ISO8859-1"),"UTF-8");

    posted @ 2012-03-01 18:45 哈希 阅读(192) | 评论 (0)编辑 收藏

      apache-comcat配置虚拟主机和虚拟目录  jquery autocomplete 自动填充文本框、文本域
    JS 导出excel,word实例  2011-10-10 11:55:00|  分类: 默认分类 |  标签:js  excel  word   |字号大

    小 订阅
    用js操作offace中的word,excel 必须首先确保你已经安装office,用js操作word,excel 用到了ActiveXObject类,它是专门用来调用windows操作中的程序的,下面是例子,直接复制到文本文件里,把后缀名改了就可以运行!

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>无标题文档</title>
    <script type="text/javascript" language="javascript">
    function ExcelExport(tableid)   
    {   

      //检索浏览器  
                if(navigator.userAgent.indexOf("MSIE")<0){  
                    alert('请用ie浏览器进行表格导出');  
                    return ;  
                }  
                var oXL = null;   
                try {  
                    oXL = GetObject("", "Excel.Application");  
                }  
                catch (E) {  
                    try {  
                        oXL = new ActiveXObject("Excel.Application");  
                    }  
                    catch (E2) {  
                        alert("请确认:\n1.Microsoft Excel已被安装.\n2.工具 => Internet 选项=> 安全 => 设置 \"启用不安全的 ActiveX\"");  
                        return;  
                    }  
                }  

        var table = document.getElementById(tableid);     
        var workbook = oXL.Workbooks.Add();   
         var sheet = workbook.ActiveSheet;   
         var sel = document.body.createTextRange();  //激活sheet
           
         //把table中的数据移到sel中   
         sel.moveToElementText(table);   
           
         sel.select(); //选中sel中所有数据   
         sel.execCommand("Copy");//复制sel中的数据    
          sheet.Columns("A:Z").ColumnWidth =20;//设置列宽  
         // sheet.Columns("B").ColumnWidth =35;  
          sheet.Rows(1).RowHeight = 35;//设置表头高  
         //将sel中数据拷贝到sheet工作薄中  
         sheet.Paste();           
         oXL.Visible = true; 
      //sheet.Save("F:\\TEST.XLS" ); 
         //通过打印机直接将Excel数据打印出来  
         //sheet.Printout;  
         //ax.UserControl = true;  
      oXL.Quit();
      oXL=null;
    }   
    </script>
    </head>

    <body>
    <table width="100%" border="1" id="mytable">
      <tr>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
      </tr>
      <tr>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
      </tr>
      <tr>
         <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
      </tr>
      <tr>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
      </tr>
      <tr>
         <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
        <td>nihao</td>
      </tr>
    </table>
    <form id="form1" name="form1" method="post" action="">
      <label>
      <input type="button" name="Submit" value="导出excel" onclick="ExcelExport('mytable')" />
      </label>
    </form>
    <p>&nbsp;</p>
    </body>
    </html>

     

    posted @ 2012-02-28 18:16 哈希 阅读(304) | 评论 (0)编辑 收藏

    http://www.wujianrong.com/archives/2007/05/20jspajax.html      简单用例
    http://www.ibm.com/developerworks/cn/web/wa-ajaxintro/          IBM—Ajax讲解
    http://www.w3schools.com/ajax/ajax_example.asp                     Ajax—Example  W3CSchol



    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    ">

    <html>
    <head>
    <script src="ajax.js"></script>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page using AJAX</title>
    </head>
    <body>

    <a onclick="sendRequest('GET','index.jsp')" href="#">Server Date Time:</a>
    <div id="ajax_res">Server Date Time will replace this text.</div>
    </body>
    </html>

    index.jsp
    <html>
    <body>
    <%=new java.util.Date()%>
    </body>
    </html>

    ajax.js
    function createRequestObject(){
    var req;
    if(window.XMLHttpRequest){
    //For Firefox, Safari, Opera
    req = new XMLHttpRequest();
    }
    else if(window.ActiveXObject){
    //For IE 5+
    req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else{
    //Error for an old browser
    alert('Your browser is not IE 5 or higher, or Firefox or Safari or Opera');
    }

    return req;
    }

    //Make the XMLHttpRequest Object
    var http = createRequestObject();

    function sendRequest(method, url){
    if(method == 'get' || method == 'GET'){
    http.open(method,url);
    http.onreadystatechange = handleResponse;
    http.send(null);
    }
    }

    function handleResponse(){
    if(http.readyState == 4 && http.status == 200){
    var response = http.responseText;
    if(response){
    document.getElementById("ajax_res").innerHTML = response;
    }
    }
    }
    run this application may be u get some clue

    posted @ 2012-02-24 23:30 哈希 阅读(177) | 评论 (0)编辑 收藏

    假设:
    1、你的页面在Web-Root下,内容为:  <div id="showMsg"></div><input type="text" id="userName" />,所用编码为utf-8
    2、你的servlet为:  HelloWorldServlet.java  映射路径为   servlet/helloWorldServlet
    步骤:
    1、引入jquery-1.6.4.min.js
    2、编写id为userName的输入框的点击触发函数:
          $("#userName").keyup(function(){
                $.ajax({
                      type: "post",
                      url: "servlet/helloWorldServlet?userName="+$(this).val(),
                      dataType: "json",
                      success: function(data){
                            $("#showMsg").html(data.msg);//修改id为showMsg标签的html
                      }, error: function(){
                            alert("请求出错");
                      }
                })
          })
    3、后台处理接收到的内容:
          request.setCharactorEncoding("utf-8");
          String userName = request.getParameter("userName");
          response.setCharactorEncoding("utf-8");
          PringWriter out = response.getWriter();
          out.print("{\"msg\":\"你好~~"+userName+"!\"}");
    
    注意事项:
    1、这里的编码统一为utf-8
    2、请求路径servlet/helloWorldServlet为相对路径,因此你的页面必须在项目的Web-Root下(也就是默认的web文件夹下,名字可能因项目配置不同而改变)
    
    网上的 Jquery ajax Demo 大多都是基于php 
    很少 有java的 今天就把自己的Demo贴出来 和大家共同学习
    现在就  Jquery ajax 的 $.ajax(),$.post(),$.get();

    首先是  服务端的Servlet 演示这三个函数的用法对都是用的同一个 服务端
     package com.june.servlet;   
     
    import javax.servlet.http.HttpServlet;  
    import javax.servlet.http.HttpServletResponse;  
    import javax.servlet.http.HttpServletRequest;  
    import java.io.IOException;  
    import java.io.PrintWriter;  
    import javax.servlet.ServletException;  
     
    public class jqueryAjaxServer extends HttpServlet {  
         public jqueryAjaxServer(){  
             super();  
         }  
         public void doGet(HttpServletRequest request,HttpServletResponse response)  
         throws IOException ,ServletException {  
             response.setContentType("text/html;charset=utf-8");  
             PrintWriter out=response.getWriter();  
             String account=request.getParameter("account");  
             if("iamcrzay".equals(account)){  
                 out.print("Sorry,the user is exist");  
             }  
             else{  
                 out.print("Congratulation,this accont you can use!!!!");  
             }  
             out.close();  
         }  
         public void doPost(HttpServletRequest request,HttpServletResponse response)  
         throws IOException ,ServletException {  
             this.doGet(request, response);  
         }  

    下面是WEB.XML
    Xml代码 
    <?xml version="1.0" encoding="UTF-8"?> 
    <web-app version="2.5"   
        xmlns="http://java.sun.com/xml/ns/javaee"   
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
        <servlet> 
           <servlet-name>jqueryAjaxServer</servlet-name> 
           <servlet-class>com.june.servlet.jqueryAjaxServer</servlet-class> 
        </servlet> 
            <servlet-mapping> 
           <servlet-name>jqueryAjaxServer</servlet-name> 
           <url-pattern>/jqueryAjax</url-pattern> 
        </servlet-mapping> 
      <welcome-file-list> 
        <welcome-file>index.jsp</welcome-file> 
      </welcome-file-list> 
    </web-app> 

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5"
     xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
     <servlet>
        <servlet-name>jqueryAjaxServer</servlet-name>
        <servlet-class>com.june.servlet.jqueryAjaxServer</servlet-class>
     </servlet>
            <servlet-mapping>
        <servlet-name>jqueryAjaxServer</servlet-name>
        <url-pattern>/jqueryAjax</url-pattern>
     </servlet-mapping>
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    </web-app>

     

    下面是Jsp页面
    第一个是 jqueryAjax.jsp  本页使用的是$.ajax()
    Html代码 
    <%@ page language="java"  pageEncoding="utf-8"%> 
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
    <html> 
      <head>    
        <title>jquery ajax</title>   
        <meta http-equiv="pragma" content="no-cache"> 
        <meta http-equiv="cache-control" content="no-cache"> 
        <meta http-equiv="expires" content="0">      
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 
        <meta http-equiv="description" content="This is my page"> 
        <script src="js/jquery-1.2.6.js" type="text/javascript"></script> 
        <script language="javascript"> 
             $(function(){  
                   $('.sumbit').click(function(){  
                   if($('#account').val().length==0){  
                       $('.hint').text("用户名不能位空").css({"background-color":"green"});   
                   }  
                   else{  
                   $.ajax({  
                     url:'jqueryAjax',  
                     data:{account:$('#account').val()},  
                     error:function(){  
                     alert("error occured!!!");  
                     },  
                     success:function(data){  
                      $('body').append("<div>"+data+"</div>").css("color","red");  
            
                     }  
                       
                   });}  
                   });  
                   });  
                       
             
                 
        </script> 
      </head> 
        
      <body> 
                    <h3 align="center">jquery AjaX</h3> 
                    <hr> 
                    <label>请输入用户名 :</label> 
                    <input id="account" name="account" type="text"> 
                    <input class="sumbit" type="button" value="检测"> 
                    <div class="hint"> 
                    </div> 
      </body> 
    </html> 

    <%@ page language="java"  pageEncoding="utf-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head> 
        <title>jquery ajax</title>
     <meta http-equiv="pragma" content="no-cache">
     <meta http-equiv="cache-control" content="no-cache">
     <meta http-equiv="expires" content="0">   
     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
     <meta http-equiv="description" content="This is my page">
     <script src="js/jquery-1.2.6.js" type="text/javascript"></script>
     <script language="javascript">
          $(function(){
                $('.sumbit').click(function(){
                if($('#account').val().length==0){
                    $('.hint').text("用户名不能位空").css({"background-color":"green"});
                }
                else{
                $.ajax({
                  url:'jqueryAjax',
                  data:{account:$('#account').val()},
                  error:function(){
                  alert("error occured!!!");
                  },
                  success:function(data){
                   $('body').append("<div>"+data+"</div>").css("color","red");
      
                  }
                 
                });}
                });
                });
                    
       
           
     </script>
      </head>
     
      <body>
                    <h3 align="center">jquery AjaX</h3>
                    <hr>
                    <label>请输入用户名 :</label>
                    <input id="account" name="account" type="text">
                    <input class="sumbit" type="button" value="检测">
                    <div class="hint">
                    </div>
      </body>
    </html>

     

    第二个用的是  $.post()

    Html代码 
    <%@ page language="java"  pageEncoding="utf-8"%> 
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
    <html> 
      <head>    
        <title>jquery ajax</title>   
        <meta http-equiv="pragma" content="no-cache"> 
        <meta http-equiv="cache-control" content="no-cache"> 
        <meta http-equiv="expires" content="0">      
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 
        <meta http-equiv="description" content="This is my page"> 
        <script src="js/jquery-1.2.6.js" type="text/javascript"></script> 
        <script language="javascript"> 
             $(function(){  
                 $('.sumbit').click(  
                  function(){  
                    if($('#account').val().length==0){  
                        $('.hint').text("The account is cant't be null").css({"color":"red","background-color":"yellow"});  
                    }  
                    else{  
                    $.post("jqueryAjax","account="+$('#account').val(),function(data){  
                       $('.hint').text(data).css({"color":"red","background-color":"yellow"});  
                    })  
                    }  
                 });  
             });             
        </script> 
      </head> 
        
      <body> 
                    <h3 align="center">jquery Ajax</h3> 
                    <hr> 
                    <label>请输入用户名 :</label> 
                    <input id="account" name="account" type="text"> 
                    <input class="sumbit" type="button" value="检测"> 
                    <div class="hint"> 
                    </div> 
      </body> 
    </html> 

    <%@ page language="java"  pageEncoding="utf-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head> 
        <title>jquery ajax</title>
     <meta http-equiv="pragma" content="no-cache">
     <meta http-equiv="cache-control" content="no-cache">
     <meta http-equiv="expires" content="0">   
     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
     <meta http-equiv="description" content="This is my page">
     <script src="js/jquery-1.2.6.js" type="text/javascript"></script>
     <script language="javascript">
          $(function(){
              $('.sumbit').click(
               function(){
                 if($('#account').val().length==0){
                     $('.hint').text("The account is cant't be null").css({"color":"red","background-color":"yellow"});
                 }
                 else{
                 $.post("jqueryAjax","account="+$('#account').val(),function(data){
                    $('.hint').text(data).css({"color":"red","background-color":"yellow"});
                 })
                 }
              });
          });       
     </script>
      </head>
     
      <body>
                    <h3 align="center">jquery Ajax</h3>
                    <hr>
                    <label>请输入用户名 :</label>
                    <input id="account" name="account" type="text">
                    <input class="sumbit" type="button" value="检测">
                    <div class="hint">
                    </div>
      </body>
    </html>

     

    第三个是用的$.get()

    Html代码 
    <%@ page  pageEncoding="utf-8"%> 
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
    <html> 
      <head>     
        <title>jquery get</title> 
          
        <meta http-equiv="pragma" content="no-cache"> 
        <meta http-equiv="cache-control" content="no-cache"> 
        <meta http-equiv="expires" content="0">      
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> 
        <meta http-equiv="description" content="This is my page"> 
        <script src="js/jquery-1.2.6.js" type="text/javascript"></script> 
        <script type="text/javascript"> 
             $(function(){  
                    $('.sumbit').click(function(){  
                          if($('#account').val().length==0){  
                             $('.hint').html("用户名不能位空!!!").css({"color":"#ffoo11","background":"blue"});  
                          }  
                          else{  
                              $.get("jqueryAjax","account="+$('#account').val(),  
                                   function(data){  
                                    $('.hint').html(data).css({"color":"#ffoo11","background":"green"});  
                              });  
                          }  
                    });  
             });  
        </script> 
     
      </head> 
        
      <body> 
            <h3 align="center">jquery AjaX</h3> 
                    <hr> 
                    <label>请输入用户名 :</label> 
                    <input id="account" name="account" type="text"> 
                    <input class="sumbit" type="button" value="检测"> 
                    <div class="hint"> 
                    </div> 
      </body> 
    </html> 

    <%@ page  pageEncoding="utf-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>  
        <title>jquery get</title>
       
     <meta http-equiv="pragma" content="no-cache">
     <meta http-equiv="cache-control" content="no-cache">
     <meta http-equiv="expires" content="0">   
     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
     <meta http-equiv="description" content="This is my page">
     <script src="js/jquery-1.2.6.js" type="text/javascript"></script>
     <script type="text/javascript">
          $(function(){
                 $('.sumbit').click(function(){
                       if($('#account').val().length==0){
                          $('.hint').html("用户名不能位空!!!").css({"color":"#ffoo11","background":"blue"});
                       }
                       else{
                           $.get("jqueryAjax","account="+$('#account').val(),
                                function(data){
                                 $('.hint').html(data).css({"color":"#ffoo11","background":"green"});
                           });
                       }
                 });
          });
     </script>

      </head>
     
      <body>
            <h3 align="center">jquery AjaX</h3>
                    <hr>
                    <label>请输入用户名 :</label>
                    <input id="account" name="account" type="text">
                    <input class="sumbit" type="button" value="检测">
                    <div class="hint">
                    </div>
      </body>
    </html>

     
    http://iamcrzay.iteye.com/blog/237940 
     
     
     
     

    posted @ 2012-02-24 16:16 哈希 阅读(3995) | 评论 (3)编辑 收藏

    1、将数组转化成字符串,用特殊字符如“|”将数组的元素隔开,用普通的字符串参数传递

    2、使用json方式传递参数

    解析

    C#后台得到的是个string
    string objStr = HttpContext.Current.Request["objStr"];

    objStr内容([{"0": "a", "1": "b", "2": "c", "3": "d"}, {"0": "aa", "1": "bb", "2": "cc", "3": "dd"}{"0": "aa", "1": "bb"}])


    /// <summary>
      /// 从JS数组中解析出JSON对象返回该对象的字符串表示
      /// </summary>
      /// <param name="ArrayStr"></param>
      /// <returns></returns>
      private static string GetJsonStr(string ArrayStr)
      {
      //ArrayStr="[{'0': 'a', '1': 'b', '2': 'c', '3': 'd'},{'0': 'aa', '1': 'bb', '2': 'cc', '3': 'dd'},{'0': 'aa', '1': 'bb'}]";
      string StrJson = ArrayStr;

      //将"[{"和"}]"去除;
      //StrJson="'0': 'a', '1': 'b', '2': 'c', '3': 'd'},{'0': 'aa', '1': 'bb', '2': 'cc', '3': 'dd'},{'0': 'aa', '1': 'bb'";  
      StrJson = StrJson.Substring(2, StrJson.Length - 4);

      //将“},{”替换为“|”便于分割成数组
      //StrJson="'0': 'a', '1': 'b', '2': 'c', '3': 'd'|'0': 'aa', '1': 'bb', '2': 'cc', '3': 'dd'|'0': 'aa', '1': 'bb'";  
      StrJson = StrJson.Replace("},{", "|");  
       
      //以“|”为分隔符将每个JSON对象分割成字符串
      /*结果为:strjson[0]="'0': 'a', '1': 'b', '2': 'c', '3': 'd'";
      strjson[1]="'0': 'aa', '1': 'bb', '2': 'cc', '3': 'dd'";
      strjson[2]="'0': 'aa', '1': 'bb'";*/
      return StrJson.Split('|');
      }

    posted @ 2012-02-20 22:16 哈希 阅读(205) | 评论 (0)编辑 收藏

    ask.jsp

    <script language="javascript" type="text/javascript">
    function Open()
    {

    window.open('<%=path%>/jsp/answer.jsp' ,'_blank','top=250,left=300,width=500 height=100');
    }
    </script>

      <body>
     <form   onsubmit= "return  new_window(); " >
      <input type="text" name="tbValue"><a href="javascript:" onclick="Open();">Open http://www.dwww.cn </a>
      
     </form>
      </body>

    answer.jsp

     <script language="javascript" type="text/javascript">
      function SetValue(value)
      {
      self.opener.document.all("tbValue").value=value;
      self.close();
      }
      </script>

     
     
    <body>
        Values:<br/>
    <a href="javascript:SetValue('1')">value 1</a><br/>
    <a href="javascript:SetValue('2')">value 2</a>

      </body>

     





    posted @ 2012-02-19 12:56 哈希 阅读(172) | 评论 (0)编辑 收藏

    a href 不让页面跳转

    不可以跳转
    <a href="javascript:;" onclick="javascript:ToUrl('http://www.jingzhengli.cn');">
    location.href不跳转测试1</a>  
    <a href="javascript:void(0);"
    onclick="javascript:ToUrl('http://www.jingzhengli.cn');">
    location.href不跳转测试2</a>  


    可以跳转
    <a href="javascript:void(0);"
    onclick="javascript:ToUrl('http://www.jingzhengli.cn');return false;">
    location.href不跳转测试3</a>  
    <a href="#" onclick="javascript:ToUrl('http://www.jingzhengli.cn');">
    location.href不跳转测试4</a>  
    <a href="###" onclick="javascript:ToUrl('http://www.jingzhengli.cn');">
    location.href不跳转测试5</a> 
    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/muzai/archive/2010/11/22/6026786.aspx

    posted @ 2012-02-17 13:22 哈希 阅读(1151) | 评论 (0)编辑 收藏


    第一种:
        <script language="javascript" type="text/javascript">
               window.location.href=
    "login.jsp?backurl="+window.location.href;
        </script>

    第二种:
        <script language=
    "javascript">
    alert(
    "返回");
    window.history.back(-1);
       </script>

    第三种:
       <script language=
    "javascript">
    window.navigate(
    "top.jsp");
      </script>

    第四种:
       <script language=
    "JavaScript">
              self.location='top.htm';
       </script>

    第五种:
       <script language=
    "javascript">
              alert(
    "非法访问!");
              top.location='xx.jsp';
       </script>

    posted @ 2012-02-16 23:09 哈希 阅读(160) | 评论 (0)编辑 收藏

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> 显示隐藏列 </TITLE>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function setHiddenCol(oTable,iCol)//Writed by QQ:190988779 at 2007-7-24 11:14:09
    {
        for (i=0;i < oTable.rows.length ; i++)
        {
            oTable.rows[i].cells[iCol].style.display = oTable.rows[i].cells[iCol].style.display=="none"?"block":"none";
        }
    }
    function setHiddenRow(oTable,iRow)//Writed by QQ:190988779 at 2007-7-24 11:14:09
    {
        oTable.rows[iRow].style.display = oTable.rows[iRow].style.display == "none"?"block":"none";
    }
    //-->
    </SCRIPT>
    </HEAD>

    <BODY>
    <TABLE id="Table1" cellSpacing="1" cellPadding="1" border="1">

    <TR> <TD width="20%">00</TD> <TD width="20%" bgcolor="#E3E3E3">01</TD> <TD width="20%">02</TD></TR>
    <TR> <TD width="20%" bgcolor="red">10</TD> <TD width="20%" bgcolor="green">11</TD> <TD width="20%" bgcolor="red">12</TD></TR>
    <TR> <TD width="20%">20</TD> <TD width="20%" bgcolor="#E3E3E3">21</TD> <TD width="20%">22</TD></TR>
    </TABLE> </P>


    <INPUT id="btnHiddenCol" type="button" value="显示/隐藏第2列" name="btnHiddenCol" onclick="setHiddenCol(document.getElementById('Table1'),1)">
    <INPUT id="btnHiddenRow" type="button" value="显示/隐藏第2行" name="btnHiddenRow" onclick="setHiddenRow(document.getElementById('Table1'),1)">
    </BODY>
    </HTML>

    posted @ 2012-02-15 11:08 哈希 阅读(859) | 评论 (0)编辑 收藏

    oracle数据库的配置

    一、Oracle的配置

    1、配置net manager

      依次选择开始—>Oracle – OraHome92>Configuration and Migration Tools>Net Manager

    选择本地—>服务命名,点击左侧绿色加号 

    输入Net服务名 172.30.4.205_ora91 点击下一步 

    选择TCP/IPInternet协议) 点击下一步 

    输入主机名172.30.4.205 点击下一步 

    选择(Oracle8i或更高版本)服务名:ora91  点击下一步 

    点击测试 

    选择更改登陆,输入用户名xiecha,口令xiecha 

    点击确定,出现测试成功后选择关闭

    点击完成 

    保存网络配置 
    参见网址:http://wenku.baidu.com/view/7685da64783e0912a2162aa9.html

    posted @ 2012-02-09 11:56 哈希 阅读(153) | 评论 (0)编辑 收藏

    PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分。PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要优势。PL/SQL(Procedural Language/SQL)是一种过程化语言,属于第三代语言,它与C、C++、Java等语言一样关注于处理细节,可以用来实现比较复杂的业务逻辑。它允许SQL的数据操纵语言和查询语句包含在块结构(block_structured)和代码过程语言中,使PL/SQL成为一个功能强大的事务处理语言。在甲骨文数据库管理方面,PL/SQL是对结构化查询语言(SQL)的过程语言扩展。PL/SQL的目的是联合数据库语言和过程语言。PL/SQL的基本单位叫做一个区段,由三个部份组成:一个申明部份,一个可运行部份,和排除-构建部分。 因为PL/SQL允许混合SQL申明和过程结构,因此可以在将申明发送到甲骨文系统去执行之前使用PL/SQL区段和副程序来组合SQL申明,没有PL/SQL,甲骨文需要就每次处理SQL申明,在网络环境中,这将影响交通流量,而且增加响应时间。PL/SQL区段只被编译一次并且以可运行的形式储存,以降低响应时间。
    Enhancements in PL/SQL Developer 8.0.4
    ======================================
    * SQL Window would always print SQL text, disregarding "Print SQL"
      preference
    * Searching within special text (strings, comments) could be slow
    * Key Configuration preference could reset to default instead of
      using the defined keys when using multiple preference sets
    * Export to Excel would interpret data beginning with = as formula
    * Column names starting with a digit were not implicitly quoted in
      SQL statements
    * Fixed issue with search in selection where incorrect characters
      could be replaced
    * Duplicate items removed from description window
    * View/Edit Data for tables with an owner with special characters
      would not add quotes to the owner
    * UTFE characters were displayed incorrectly when Unicode support
      was enabled
    * Loading the Macro Library could fail on Windows 7/Vista,
      resulting in a "list index out of bounds" error message
    * Debugger could hang after an exception on oracle11g
    * Code Assistant can now complete database link names
    * Copy all to Excel in the SQL Window would not have correct
      formatting on the second sheet
    * To-Do Item List was not up-to-date when opening a package spec &
      body

    下载地址如下
    源程序:http://allroundautomations.swmirror.com/plsqldev804.exe
    语言文件及手册:http://www.allroundautomations.com/plsqldevlang/80/chinese.exe
    注册信息如下
    product code:kfqtle46lqzbbvlzuvsrutst66yn6m7kl8s2trrtsapr
    password:xs374ca
    serial number:1775341736

    posted @ 2012-01-18 18:00 哈希 阅读(314) | 评论 (0)编辑 收藏

    <table>
               <tr>
                <td><div style="margin-top:7px;float:left;">项目进度:</div></td>
                <td>
                 <div style="float:left;background-color:#dde5ea;cursor:hand;margin-top:6px;float:left;width:120px;; height:20; border:1px solid #C7DBF4;" >
                <div style="width:20%; height:20px; background-color: #33CC00; float:left"></div>
            </div>
                </td>
               </tr>
              </table>


    <table>
               <tr>
                <td><div style="margin-top:7px;float:left;">项目进度:</div></td>
                <td>
                 <div onclick="viewProcess('<%=baseRecord.getString("ID","")%>')" style="float:left;background-color:#dde5ea;cursor:hand;margin-top:6px;float:left;width:120px;; height:20; border:1px solid #C7DBF4;" >
                <div style="width:<%=baseRecord.getString("PROGRESS","0") %>%; height:20px; background-color: #33CC00; float:left"></div>
            </div>
                </td>
               </tr>
              </table>

    posted @ 2012-01-17 15:15 哈希 阅读(183) | 评论 (0)编辑 收藏

    <Context path="/roeee" reloadable="true" docBase="C:\Program Files\apache-tomcat-5.5.33\webapps\roeee">
     <Resource
          name="jdbc/ROEEE"
          type="javax.sql.DataSource"
          password="icss"
          driverClassName="oracle.jdbc.driver.OracleDriver"
          maxIdle="2"
          maxWait="5000"
          username="recjl"
          url="jdbc:oracle:thin:@10.17.10.245:1521:AEG"
          maxActive="4"/>
       <Resource
          name="ResourceOne/DataSource"
          type="javax.sql.DataSource"
          password="icss"
          driverClassName="oracle.jdbc.driver.OracleDriver"
          maxIdle="2"
          maxWait="5000"
          username="recjl"
          url="jdbc:oracle:thin:@10.17.10.245:1521:AEG"
          maxActive="4"/>
    </Context>


    放在apache-tomcat-5.5.33\conf\Catalina\localhost  路径下

    posted @ 2012-01-09 16:22 哈希 阅读(151) | 评论 (0)编辑 收藏


    从加入中金黄金项目组以来将近一个月了,在这期间,我对自己所做模块业务非常熟

    悉了,通过这段时间的开发,对项目中所用到的基本技术也熟悉了。在开发中个人技

    术不是很全面遇到问题解决时间较长,经验还是需要积累。在与北京交流过程中有时

    还是不能及时得到反馈,需要消耗时间。项目前期设计不够合理的地方在开发中可能才会遇到。

    posted @ 2012-01-03 15:58 哈希 阅读(125) | 评论 (0)编辑 收藏

    数字标签实例

    Double num = new Double("123456789012.3456");

    整数带千分符显示:

    <fmt :formatNumber value="${num}" type="number"/>

    整数显示:

    <fmt :formatNumber value="${num}" pattern="#" type="number"/>

    两位小数舍入显示:

    <fmt :formatNumber value="${num}" pattern="#.##" type="number"/>

    两位小数舍入,不足两位小数补 0 显示:

    <fmt :formatNumber value="${num}" pattern="#.00" type="number"/>

    货币显示:(与 number 类似扩展 pattern 

    <fmt :formatNumber value="${num}" type="currency"/>

    百分数显示:(与 number 类似扩展 pattern 

    <fmt :formatNumber value="${num}" type="percent"/>

    实例结果

    整数带千分符显示: 123,456,789,012.346

    整数显示: 123456789012

    两位小数舍入显示: 123456789012.35

    两位小数舍入,不足两位小数补 0 显示: 123456789012.35

    货币显示:¥ 123,456,789,012.35

    百分数显示 12,345,678,901,235%

    posted @ 2011-12-28 01:08 哈希 阅读(189) | 评论 (0)编辑 收藏

    {sName: "productId","bSortable":false, "sColumnDataType":'link',
            "sColumnDataTypePro":{'url':"javascript:findmodel('<c:out value="${context_path }"/>/k4_oldGoldStorsge/oldGoldDetail/{id}');",'name':'productId'},aTargets: [2]},


    function findmodel(url){
          var rs = window.showModalDialog(url,"dialogWidth=" + 500 + "px;dialogHeight=" + 90 + "px");
     }

    posted @ 2011-12-24 15:58 哈希 阅读(189) | 评论 (0)编辑 收藏

    //采购申请单——保存状态
     public void updateSpStatus() {
      //要更新的状态 1、待业务审核 2、待财务审核 3、审核退回  4、入款
      String statusId=request().getParameter("status");
      //要更新的id
      String[] idStrings=request().getParameterValues("id");
      //吧要更新的确认单放入集合一起更新
      List<PurchaseAddMoney> list=new ArrayList<PurchaseAddMoney>();
      for(int i=0;i<idStrings.length;i++){
       PurchaseAddMoney pur=new PurchaseAddMoney();
       pur.setId(idStrings[i]);
       pur.setStatusId(statusId);
       //如果是财务确认,要更新财务确认日期
       if(statusId.equals("j208")){    
        //更新完成审批时间  
        pur.setFinishApproveDate(CommonHelper.getCreateTimeToString());
       }
          
       list.add(pur);
      }
      //批量更新到数据库  
      purchaseAddService.batchUpdate(list);
      this.render(SUCCESS);
     }


    public int[] batchUpdate(List list) {  
      return super.batchUpdate(list);
     }

    <form id="purchaseAddApply" name="purchaseAddApply" method="post" action="purchaseAddUpdateStatus">

    posted @ 2011-12-21 23:01 哈希 阅读(697) | 评论 (0)编辑 收藏

    public void changeStates(String states,String id){
      Map<String,String> parameter = new HashMap<String,String>();
      parameter.put("id", id);
      parameter.put("type", states);
      Map<String,Object> result = bankSettelService.updateStates(parameter);  
      this.printHtml(result.get("count"));
     }


    /**
      * <p>修改结算表状态
      * @param parameter
      * @return
      */
     public Map<String,Object> updateStates(Map<String,String> parameter){
      Query query = this.getRepository().createQuery();
      Map<String,Object> result = new HashMap<String,Object>();
      List<Object> sqlParam = new ArrayList<Object>();
      StringBuilder sql = new StringBuilder();
      String[] arrParam = parameter.get("id").split(",");
      String paramIn = "'";//回购单编号
      String type = "";//回购单修改后状态
      int count = 0; //修改行数
      for(String param:arrParam){
       paramIn += param + "','";
      }
      paramIn = paramIn.substring(0,paramIn.length() - 2);
      
      //回购单状态
      if("1".equals(parameter.get("type"))){
       type = REPUR_SETTEL_STATUS03; //待付款
      } else if("2".equals(parameter.get("type"))){
       type = REPUR_SETTEL_STATUS06; //审批退回
      } else if("3".equals(parameter.get("type"))){
       type = REPUR_SETTEL_STATUS04; //作废
      } else if("4".equals(parameter.get("type"))){
       type = REPUR_SETTEL_STATUS05; //已付款
      }
      //修改状态
      if(!StringUtils.isEmpty(type)){
       Update update = new Update();
       //更新回购结算单状态  如果为已付款 同时要更新回购单状态为已付款
       if("4".equals(parameter.get("type"))){
        //更新回购结算单状态
        update.set("BUYBACKSTATEMENT_STATUS = '" + type + "'")
         .set("PAYMENTSTATUS = '1'")
         .set("PAYMENTDATE = '" + CommonHelper.getCreateTimeToString()+"'")
         .update("TB_E_BUYBACKSTATEMENT")
         .where("ID in("+paramIn+")");    
        
        //查看对应的客户回购单客户结算回购状态是否为已付款,如果是,要更改回购单状态已付款
        sql.append(updateBankReStatusSql);
        sql.append("and ID in(" + CL_LF);
        sql.append(getSettleStatusSql);
        sql.append("AND BUYBACKSTATEMENT.ID in(" + paramIn + ")" + CL_LF);
        sql.append(")" + CL_LF);
        sql.append("AND FINANCEAFFIRMSTATSUS = ?" + CL_LF);
        sqlParam.add(REPUR_STATUS09);//回购单状态为已付款
        sqlParam.add(CREPUR_STATUS04);//客户回购单结状态为已付款
        query.execute(sql.toString(),sqlParam);
       }else{
        update.set("BUYBACKSTATEMENT_STATUS = '" + type + "'")
        .update("TB_E_BUYBACKSTATEMENT")
        .where("ID in("+paramIn+")");
       }
       count = query.execute(update);
      }
      result.put("count", count);
      return result;
     }


    function changeStates(flag) {
      var checkValues = getCoulmnValue(oTable,'key');
      if(isEmpty(checkValues)){
       showInfo("请选择数据");
       return false;
      } else {
       if(flag == 1){
        if(confirm('确认审批是否通过?')){
         saveStates(flag,checkValues);
        }
       }else if(flag == 4){
        if(confirm('确认付款?')){
         saveStates(flag,checkValues);
        }
       }else{
        saveStates(flag,checkValues);
       }     
      }
     } 
     //审批数据提交
     function saveStates(flag,checkValues){
      $.ajax({
         type: 'get',
         url: "<c:url value='/j8_bankSettle/changeStates/'/>"+flag+"/"+checkValues,
         dataType: 'html',
         success: function(data){        
          if(data > 0){
            showInfo("操作成功");       
         query();      
          }else{
            showError("操作失败"); 
         return false;
          }
         }
      });
     }



    <c:choose>
           <c:when test="${optype eq 'approval'}">
            <button class="icon-edit" onclick="changeStates(1);">
                审批通过
            </button>
            <button class="icon-edit" onclick="changeStates(2);">
               审批退回
            </button>
            <button class="icon-edit" onclick="changeStates(3);">
               作废
            </button>
           </c:when>
           <c:when test="${optype eq 'payment'}">
            <button class="icon-edit" onclick="changeStates(4);">
                付款
            </button>        
           </c:when>
           </c:choose> 



    { "sName": "id","sColumnDataType":"checkbox","sClass": "keyclass",
                "sColumnDataTypePro":{'name':'key'},"bSortable": false, "aTargets": [ 1 ]},

    posted @ 2011-12-21 22:17 哈希 阅读(167) | 评论 (0)编辑 收藏

    <%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>


     $(function(){$("#sendAddress").change(function(){
     
        var sendAddress=$("#sendAddress").val();
        getCustomerInfo(sendAddress);
        });
      });
      //出货方信息填充
      function getCustomerInfo(id){
           //alert(id);
            $.ajax({
                 type: 'get',
                 url: "
    <c:url value='/k4_oldGoldStorsge/getCustomerInfoByAddressId/'/>"+id,
                 dataType: 'json',
                 success: function(data) {
                    alert(data.name);
                    $("#supplyer").val(data.linkman);   
                    $("#supplyIdentityCard").val(data.identification);        
                    $("#supplyerMobile").val(data.mobile);     
                    $("#supplyerPhone").val(data.tel); 
                    //$("#").val(data.);                        
                }
            });
        }
        
        
        
        $(function(){$("#outStorageList").change(function(){
     
        var outStorageList=$("#outStorageList").val();
        //alert(outStorageList);
        //getCustomerInfo(sendAddress);
         getAddressList(outStorageList)
        });
      });
        
        
        
        
        function getAddressList(id){
           //alert(id);
            $.ajax({
                 type: 'get',
                 url: "
    <c:url value='/k4_oldGoldStorsge/getAddressByCustomerId/'/>"+id,
                 dataType: 'html',
                 success: function(data) {
                  var address=eval(data);
                 //遍历取值             
                  $.each(address,function(i,n){
                     $("#getAddress").append($("
    <option value='"+address[i].id+"'></option>").text(address[i].address));  
                  });
                }
            });
        }
        
        
        
         $(function(){$("#getAddress").change(function(){
             var sendAddress=$("#getAddress").val();
             getMenInfo(sendAddress);
           });
         });
        
        
        
        function getMenInfo(id){
            $.ajax({
                 type: 'get',
                 url: "
    <c:url value='/k4_oldGoldStorsge/getCustomerInfoByAddressId/'/>"+id,
                 dataType: 'json',
                 success: function(data) {
                    $("#receiver").val(data.linkman);   
                    $("#receiverIdentityCard").val(data.identification);        
                    $("#receiverMobile").val(data.mobile);     
                    $("#receiverPhone").val(data.tel); 
                    //$("#").val(d
    /**
         * 收货方ID获取地址信息
         * 
    @return
         
    */

        
    public void getAddressByCustomerId(String id) {
            List
    <Address> list=new ArrayList<Address>();
            list
    =oldGoldStorageService.findAddressList(id);
            StringBuilder json 
    = new StringBuilder();
            json.append(
    "[");
            
    for (int i = 0; i < list.size()-1; i++{
                json.append(
    "{'id':'").append(list.get(i).getId()).append("',");
                json.append(
    "'address':'").append(list.get(i).getAddressDeatil()).append("'},");
            }

            json.append(
    "{'id':'").append(list.get(list.size()-1).getId()).append("',");
            json.append(
    "'address':'").append(list.get(list.size()-1).getAddressDeatil()).append("'}");
            json.append(
    "]");    
            System.out.println(json);
            
    this.renderJSON(json.toString());
        }
    ata.);                        
                }
            });
        }
        
        
        
        
        


    1. <script type="text/javascript">   
    2. $(document).ready(function(){   
    3.  var url='TypeGet?d='+Math.random();/*使用随机数解决jquery的缓存问题*/  
    4.  $.get(url,   
    5.    function dedit(data){   
    6.     var m=eval(data);   
    7.         $.each(m, function(i) {   
    8.            //alert(s[i]);   
    9.            $('#pselect').append('<option value="'+m[i].no+'">' + m[i].name+ '</option>');   
    10.   
    11.      });   
    12.   
    13. });    
    14. </script>  

    1. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {   
    2.   // TODO Auto-generated method stub   
    3.   request.setCharacterEncoding("UTF-8");/*解决中文乱码的问题*/  
    4.    response.setCharacterEncoding("UTF-8");   
    5.       
    6.   ArrayList result=new ArrayList();   
    7.   Connection conn=null;   
    8.   Statement st=null;   
    9.   ResultSet rs=null;   
    10.      
    11.   try{   
    12.       
    13.    conn=DBConnection.getConnection();    
    14.    st=conn.createStatement();   
    15.    rs=st.executeQuery("select * from ddpms_devicetype order by name");   
    16.    while(rs.next()){   
    17.     DevicetypeBean dt=new DevicetypeBean();   
    18.     dt.setNo(rs.getInt("no"));   
    19.     dt.setName(rs.getString("name"));   
    20.     result.add(dt);   
    21.    }   
    22.   }catch(Exception e){   
    23.    e.printStackTrace();   
    24.   }   
    25.   finally{   
    26.    try{   
    27.     rs.close();   
    28.     st.close();   
    29.     conn.close();   
    30.    }catch(Exception e){   
    31.     e.printStackTrace();   
    32.    }   
    33.   }   
    34.    response.setContentType("text/html");   
    35.    PrintWriter out= response.getWriter();     
    36.   
    37.    out.write(toString(result));   
    38.  }   
    39.  public String toString(ArrayList s)      
    40.     {      
    41.         String str="[";   
    42.         for(int i=0;i<s.size();i++){   
    43.          DevicetypeBean dt=(DevicetypeBean)s.get(i);   
    44.          str+="{'no':'"+dt.getNo()+"','name':'"+dt.getName()+"'},";   
    45.         }   
    46.         str=str.substring(0,str.length()-1)+"]";    
    47.   return str;     
    48.     }  
    $(function(){$("#logisticsDistributionBook").click(function()
            {
          var checkValues=getCoulmnValue(oTable, 'id');
         // alert(checkValues);
          var aoData = new Array();
          aoData.push( { "name": "ids", "value":checkValues } );
          if(isEmpty(checkValues)){
               showInfo("请选择需要处理的数据行!");
       return false;
            }else if(!isEmpty(checkValues)){
             $.ajax({
              type: 'post',
              url: "<c:url value='/k4_oldGoldStorsge/checkDispatchStatusId/make/1'/>",
              dataType: 'json',
              data: aoData,
              success: function(data) {
              //alert(data);
              if(parseInt(data)>=1){
                 //alert(data);
                 showInfo("必须全部选择没有生成过物流配送书的数据!");
                 return;      
                 }else if (checkProductId()) {
                getHidVal(checkValues);   
                }                 
                }
                 });
            }
           });
        });

    public void checkDispatchStatusId(String type, String id) {
      String myid = request().getParameter("ids");
      String[] ids = myid.split(",");
      int count = 0;
      if ("make".equals(type)) {
       count = oldGoldStorageService.findNumofDispatch(myid);
      }
      this.printHtml(count);
     }

    这两篇也不错!
    http://tochal.iteye.com/blog/722265

    http://blog.csdn.net/huhai463127310/archive/2009/11/29/4901654.aspx

    posted @ 2011-12-21 15:49 哈希 阅读(286) | 评论 (0)编辑 收藏

    --修改TB_C_ACCOUNT_INFO中金账户信息,增加字段:收款人名称、收款人电话。
    --返厂单表 TB_E_BACKFACTORY_BILLS 删除字段:基础金价、产成品ID  CHAR(14 BYTE)
    --alter table TB_E_BACKFACTORY_BILLS drop column CREATETIME;  
    --alter table TB_E_BACKFACTORY_BILLS add CREATETIME CHAR(14 BYTE) not null;
    --2 alter table TB_E_BACKFACTORY_BILLS drop column FINISH_PRODUCT_ID;
    alter table TB_E_BACKFACTORY_BILLS add FACTORY VARCHAR2(64) not null;
    --3alter table TB_E_BACKFACTORY_BILLS add PAYEENAME VARCHAR2(64) not null;
     --alter table TB_E_BACKFACTORY_BILLS add FACTORY VARCHAR2(64);
     --alter table TB_E_BACKFACTORY_BILLS add description VARCHAR2(64);
    --comment on column tb_e_backfactory_bills.description is '备注';     "CREATETIME"            CHAR(14 BYTE) NOT NULL ENABLE,
    --4 alter table TB_E_BACKFACTORY_BILLS add PAYEETEL VARCHAR2(30) not null;
    --5 alter table TB_E_BACKFACTORY_BILLS add ACCOUNT VARCHAR2(64) not null;
    --6 alter table TB_E_BACKFACTORY_BILLS add RETURNDATE CHAR(14) not null;
    --7 comment on column TB_E_BACKFACTORY_BILLS.PAYEENAME is '收款人名称';
    --8 comment on column TB_E_BACKFACTORY_BILLS.PAYEETEL is '收款人电话';
    --9 comment on column TB_E_BACKFACTORY_BILLS.ACCOUNT is '银行帐号';
    --10 comment on column TB_E_BACKFACTORY_BILLS.RETURNDATE is '返厂日期';
    --11alter table TB_L_FINPRODU_FINISH_PRODUCT drop column REMARK
    --12 alter table TB_L_FINPRODU_FINISH_PRODUCT modify AGENCYBUYPRICE default 0 not null;
    --13 alter table TB_L_FINPRODU_FINISH_PRODUCT add AGENCYBUYTOTAL NUMBER(15,4) default 0 not null;
    --14 alter table TB_L_FINPRODU_FINISH_PRODUCT add BASEPRICE NUMBER(15,4) default 0 not null;
    --15 alter table TB_L_FINPRODU_FINISH_PRODUCT add BASEPRICETOTAL NUMBER(15,4) default 0 not null;
    --16 comment on column TB_L_FINPRODU_FINISH_PRODUCT.AGENCYBUYTOTAL is '代回购价格合计';
    --17 comment on column TB_L_FINPRODU_FINISH_PRODUCT.BASEPRICE is '基础价格';
    --18comment on column TB_L_FINPRODU_FINISH_PRODUCT.BASEPRICETOTAL is '基础价格合计';
    --0alter table TB_C_ACCOUNT_INFO add RECEIVERNAME VARCHAR2(64) not null;
    --alter table TB_C_ACCOUNT_INFO add RECEIVERTELEPHONE VARCHAR2(64) ;
    ---comment on column TB_C_ACCOUNT_INFO.RECEIVERNAME is '收款人名称';

    posted @ 2011-12-17 16:00 哈希 阅读(141) | 评论 (0)编辑 收藏

    function savesettle(){
        $(
    "#saveSettle").attr("action","<c:url value='/j8_distributorSummary/saveSettle'/>");
        
        $(
    "#saveSettle").submi
    注意:#id    取值于——form表单的ID值
    t();
    }



    posted @ 2011-12-15 15:57 哈希 阅读(180) | 评论 (0)编辑 收藏

    /**
     * 修改状态
     */
    function changeStates(flag) {
     if(flag == 1){
      if(confirm('确认审批是否通过?')){
       saveStates(flag,"<c:url value='/j8_distributorSettle/listSettle/approval'/>");
      }
     }else if(flag == 4){
      if(confirm('确认付款?')){
       saveStates(flag,"<c:url value='/j8_distributorSettle/listSettle/payment'/>");
      }
     }else{
      saveStates(flag,"<c:url value='/j8_distributorSettle/listSettle/approval'/>");
     }

    //审批数据提交
    function saveStates(flag,url){
     $.ajax({
        type: 'get',
        url: "<c:url value='/j8_distributorSettle/changeStates/'/>"+flag+"/<c:out value='${result.settleMaster.id}'/>",
        dataType: 'html',
        success: function(data){        
         if(data > 0){
           showInfo("操作成功");       
        window.location.href=url; 
         }else{
           showError("操作失败"); 
        return false;
         }
        }
     });
    }

    $(document).ready(function () {
     ConvertMoney();
    });
    /**
     * 修改状态
     */
    function changeStates(states) {
     $.ajax({
        type: 'get',
        url: "<c:url value='/j8_clientSummary/changeStates/'/>"+states+"/<c:out value='${result.repurchseMaster.id}'/>",
        dataType: 'html',
        success: function(data){        
         if(data > 0){
           showInfo("操作成功");
           if(states == 1){
            url = "<c:url value='/j8_clientSummary/summaryList/1'/>";
           }
           if(states == 2){
            url = "<c:url value='/j8_clientSummary/summaryList/2'/>";
           }
           if(states == 3){
            url = "<c:url value='/j8_clientSummary/summaryList/2'/>";
           }
           if(states == 4){
            url = "<c:url value='/j8_clientSummary/summaryList/3'/>";
           }
           window.location.href = url;       
        query();      
         }else{
           showError("操作失败"); 
        return false;
         }
        }
      });
    }

    function create() {
      var checkValues = getCoulmnValue(oTable,'key');
      if(isEmpty(checkValues)){
       showInfo("请选择要结算的行");
       return false;
      } else {
       checkSettle(checkValues);   
      }
     }
     //结算检查
     function checkSettle(checkValues){  
      $.ajax({
         type: 'get',
         url: "<c:url value='/j8_distributorSummary/checkSettle/'/>"+checkValues,
         dataType: 'html',
         success: function(data){        
          if(data == '1'){       
         window.location.href="<c:url value='/j8_distributorSummary/createSettle/'/>"+checkValues;
          }else{
            showInfo("只能对同一客户进行结算");
         return false;
          }
         }
       });
     }


     function changeStates(flag) {
      var checkValues = getCoulmnValue(oTable,'key');
      if(isEmpty(checkValues)){
       showInfo("请选择数据");
       return false;
      } else {
       if(flag == 1){
        if(confirm('确认审批是否通过?')){
         saveStates(flag,checkValues);
        }
       }else if(flag == 4){
        if(confirm('确认付款?')){
         saveStates(flag,checkValues);
        }
       }else{
        saveStates(flag,checkValues);
       }     
      }
     } 
     //审批数据提交
     function saveStates(flag,checkValues){
      $.ajax({
         type: 'get',
         url: "<c:url value='/j8_distributorSettle/changeStates/'/>"+flag+"/"+checkValues,
         dataType: 'html',
         success: function(data){        
          if(data > 0){
            showInfo("操作成功");       
         query();      
          }else{
            showError("操作失败"); 
         return false;
          }
         }
      });
     }

    function changeStates(states) {
      var checkValues = getCoulmnValue(oTable,'key');
      if(isEmpty(checkValues)){
       showInfo("请选择数据");
       return false;
      } else {
       $.ajax({
          type: 'get',
          url: "<c:url value='/j8_clientSummary/changeStates/'/>"+states+"/"+checkValues,
          dataType: 'html',
          success: function(data){        
           if(data > 0){
             showInfo("操作成功");       
          query();      
           }else{
             showError("操作失败"); 
          return false;
           }
          }
        });  
      }
     }

    posted @ 2011-12-15 15:54 哈希 阅读(167) | 评论 (0)编辑 收藏

    function flushleft(){//给表格的第一行加CLASS=flush_left其下所有都局左对齐
          $('.flush_left').parent().find('th').each(function(i){
             
    if($(this).attr('class')=='flush_left'){
             $(
    this).parents().parent().find('tr').each(function(){
                $(
    this).find('td').eq(i).css('text-align','left')
             }
    )
             }
    ;
          }
    );
       }

       
    function flushright(){//给表格的第一行加CLASS=flush_left其下所有都局右对齐
          $('.flush_right').parent().find('th').each(function(i){
             
    if($(this).attr('class')=='flush_right'){
             $(
    this).parent().parent().find('tr').each(function(){
                $(
    this).find('td').eq(i).css('text-align','right')
             }
    )
             }
    ;
          }
    );
       }

       
    function flushcenter(){//给表格的第一行加CLASS=flush_left其下所有都局中对齐
          $('.flush_center').parent().find('th').each(function(i){
             
    if($(this).attr('class')=='flush_center'){
             $(
    this).parent().parent().find('tr').each(function(){
                $(
    this).find('td').eq(i).css('text-align','center')
             }
    )
             }
    ;
          }
    );
       }

    posted @ 2011-12-15 10:49 哈希 阅读(401) | 评论 (0)编辑 收藏

     <td class="tablealignleft" >
                                                
    <select id="status" name="status">
                                                        
    <option value="">全部</option>
                                                        
    <c:forEach var="sta" items="${statusList}">
                                                            
    <option value="<c:out value="${sta.id}"></c:out>"><c:out value="${sta.name}"></c:out></option>                                                        
                                                        
    </c:forEach>
                                                                            
                                                
    </select>
                                            
    </td>    
    jQuery获取Select选择的Text和Value:
    1. $("#select_id").change(function(){//code});    //为Select添加事件,当选择其中一项时触发
    2var checkText=$("#select_id").find("option:selected").text();   //获取Select选择的Text
    3var checkValue=$("#select_id").val();   //获取Select选择的Value
    4var checkIndex=$("#select_id ").get(0).selectedIndex;   //获取Select选择的索引值
    5var maxIndex=$("#select_id option:last").attr("index");   //获取Select最大的索引值
    jQuery添加/删除Select的Option项:
    1. $("#select_id").append("<option value='Value'>Text</option>");   //为Select追加一个Option(下拉项)
    2. $("#select_id").prepend("<option value='0'>请选择</option>");   //为Select插入一个Option(第一个位置)
    3. $("#select_id option:last").remove();   //删除Select中索引值最大Option(最后一个)
    4. $("#select_id option[index='0']").remove();   //删除Select中索引值为0的Option(第一个)
    5. $("#select_id option[value='3']").remove();   //删除Select中Value='3'的Option
    5. $("#select_id option[text='4']").remove();   //删除Select中Text='4'的Option
    内容清空:
    $(
    "#charCity").empty();

    $(function(){$("#status").change(function(){
           var sdelectValue=$("#status").val();
           alert(sdelectValue);
           getCustomerInfo(sdelectValue)
       });
      });
     
     
       function getCustomerInfo(id){
           alert(id);
            $.ajax({
              type: 'get',
              //url: "<c:url value='/k4_oldGoldStorsge/getCustomer/'/>"+id,
              url: "<c:url value='/k4_oldGoldStorsge/getCustomerInfo/'/>"+id,
              dataType: 'json',
              success: function(data) {
                 alert(data.receivername);
                 $("#receiveName").val(data.receivername);   //name
                 $("#description").val(data.description);        //code
                 $("#receiverId").val(data.account);     //account
                 $("#receiverPhone").val(data.receiverTelephone);  //telephone
                 //$("#").val(data.);                       
             }
            });
     }

    posted @ 2011-12-15 09:43 哈希 阅读(389) | 评论 (0)编辑 收藏

     

     function getCustomer(url, param, width, height){
      
    var rs = window.showModalDialog(url,param,"dialogWidth=" + width + "px;dialogHeight=" + height + "px");
      
    var aValues=rs.split(",");
      $(
    "#supplier").val(aValues[0]);
      getCustomerInfo($(
    "#supplier").val());
     $(
    "#suppliername").val(aValues[1]);
     }


     
     
        
    function getCustomerInfo(id){
            alert(id);
           $.ajax(
    {
              type: 'get',
             url: 
    "<c:url value='/k4_oldGoldStorsge/getCustomer/'/>"+id,
             dataType: 'json',
             success: 
    function(data) {
                 alert(data.name);
                 $(
    "#receiveName").val(data.legalperson);   //name
                 $("#receiverId").val(data.account);        //code
                 $("#receiverBank").val(data.baseBank);     //account
                 $("#receiverPhone").val(data.taxpayerTel);  //telephone
                 $("#").val(data.);                        
             }

           }
    );
     }

     

     

    posted @ 2011-12-15 09:37 哈希 阅读(161) | 评论 (0)编辑 收藏

    jquery代码(jquery 读取table tr td值完成修改功能

    var $td
    =$(td).parents('tr').children('td');
     $(
    "#seshu").val($td.eq(0).find('input').val());
     $(
    "#jshuchudan").val($td.eq(1).find('input').val());
     $(
    "#jshuchuqi").val($td.eq(2).find('input').val());
     $(
    "#jchuantongddan").val($td.eq(3).find('input').val());
     $(
    "#jchuantongdqi").val($td.eq(4).find('input').val());
     $(
    "#schuantongddan").val($td.eq(5).find('input').val());
     $(
    "#schuantongdqi").val($td.eq(6).find('input').val());
     $(
    "#zhizuodan").val($td.eq(7).find('input').val());
     $(
    "#zhizuoqi").val($td.eq(8).find('input').val());
     $(
    "#ganbandan").val($td.eq(9).find('input').val());
     $(
    "#ganbanqi").val($td.eq(10).find('input').val());
     $(
    "#pinbandan").val($td.eq(11).find('input').val());
     $(
    "#pinbanqi").val($td.eq(12).find('input').val());
     $(
    "#jjid").val($td.eq(13).find('input').val());
     
     $(
    "#updateform").submit();

     用Jquery获取table中td的值:

              首先建立一个如下一个两行三列的table

               <table id="tb" style="text-align: center;" width="100%" border="1PX">
                    <tr> <td>A1  </td><td> A2 </td> <td>A3</td> </tr>
                    <tr><td>B1</td> <td>  B2</td><td>B3</td> </tr>
               </table>

            Jquery 代码部分

                  <SCRIPT type=text/javascript src="Jquery/jquery-1.4.2.js">//引入Jquery 插件不能少哦</SCRIPT>

                  <SCRIPT language="javascript" type="text/javascript" >

                    $(function(){
                        //使用jquery 取得table 中td里面的值
                           $("#tb td").click(function(){
                                          alert($(this).text());

                             })
               
                    });</SCRIPT >

     用Javascript 获取table中td的值:

          直接就写JS拉,借用上面table

          <script language="javascript" type="text/javascript">
            function GetTdValue()
            {
                //Javascript 取得table 中TD的值
                var VAL=document.getElementById("tb").rows[1].cells[1];
                alert(VAL.innerHTML)
            }
        </script>





    因为这个tr需要动态增加和删除,并且获得td中的值

    <script src="js/jquery-1.3.2.js" type="text/javascript"> </script>
    <script type="text/javascript">
    function addit(){
       
    var n = $("#paramTable tr:last td").eq(1).html();
       
    if(isNaN(n)) n = 1;
       
    else n++;
        $(
    "#paramTable").append("<tr><td>name</td><td>" + n + "</td><td onclick='delit(this);'>删除</td></tr>")
    }
    function delit(obj){ $(obj).parent().remove();} </script>
    <input type="button" onclick="addit()" value="添加">
    <table border=1 id="paramTable">
    <tr>
    <td width=100>
    参数名称
    </td>
    <td width=100>
    对应列号
    </td>
    <td width=60>
    是否删除
    </td>
    </tr>
    <tr>
    <td>name</td>
    <td>1</td>
    <td onclick="delit(this);">删除</td>
    </tr>
    </table>






     function getMerchandiseTable(){
                var arrMerchandise = [];
                $("#tbOrderMerchandise tr").each(function(){
                     var $MerchandiseIdTd = $("td:eq(0)",$(this) );//商品ID
                     
                     var $quantityTd = $("td:eq(3)",$(this) );//数量
                     var $priceTd=$("td:eq(6)",$(this) );//小计
                     var $DescriptionTd = $("td:eq(7)",$(this) );//备注
                    
                    if($MerchandiseIdTd.text()!="")
                    {
                        arrMerchandise.push($MerchandiseIdTd.text()+"|"+$quantityTd.text()+"|"+$priceTd.text()+"|"+$DescriptionTd.text());
                    }
                });
                $("#hidDetailList").val(arrMerchandise.join(","));
            }



    private List<hanvnet.Dto.Page.Table.DeliveryFeePage> GetDeliveryFeeList(string strChargerId)
        {
            string strFeeInput = hdFeeList.Value;

            List<hanvnet.Dto.Page.Table.DeliveryFeePage> lstFee
                = new List<hanvnet.Dto.Page.Table.DeliveryFeePage>();
            hanvnet.Dto.Page.Table.DeliveryFeePage deliveryFeePage = null;

            string[] strFeeList = strFeeInput.Split(Char.Parse(","));
            for (int i = 0; i < strFeeList.Length; i++)
            {
                deliveryFeePage = new hanvnet.Dto.Page.Table.DeliveryFeePage();
                string[] strFeeDetailList = strFeeList[i].Split(Char.Parse("|"));
                deliveryFeePage.DeliveryId = _deliveryId;
                deliveryFeePage.FeeId = int.Parse(strFeeDetailList[0]);
                deliveryFeePage.ReceiveId = strChargerId;
                deliveryFeePage.PlanAmount = decimal.Parse(strFeeDetailList[1]);
                deliveryFeePage.Description = strFeeDetailList[2];
                deliveryFeePage.DataStatus = 1;
                deliveryFeePage.InsDateTime = DateTime.Now;
                deliveryFeePage.InsUserId =       this.Session[hanvnet.Common.Utils.Constraints.C_SESSION_LOGINID].ToString();
              lstFee.Add(deliveryFeePage);
            }
            return lstFee;
        }
    function UnOffOrderAmount(){
            //alert("不优惠");
              var UnoffOrderAmounts=0;
              $("#tbOrderMerchandise tr").each(function(){
                     var $priceTd=$("td:eq(6)",$(this) );//优惠金额
                   
                    UnoffOrderAmounts+=$priceTd.text()*1;
                   
                });
                return UnoffOrderAmounts;
            }

    <td class="tablealigncenter" nowrap>
            <input type="text" name="countId" id="countId" onblur="getAgentAccountMoney(this)"></>
        </td>

     //alert($($($AgentMoney)).find("input").get(0).value);


     function getBillsTable(){
                    var arrbills = [];
                    $("#mainTableBody tr").each(function(){
                    var $productId=$("td:eq(1)",$(this) ); 
                    var $baseGoldPrice=$("td:eq(5)",$(this));
                    var $baseGoldAcountPrice=$("td:eq(6)",$(this));
                    var $AgentMoney=$("td:eq(7)",$(this));
                     //alert($($($AgentMoney)).find("input").get(0).value);
                    var $AgentAccountMoney=$("td:eq(8)",$(this));
                    // alert($($AgentAccountMoney).find("input").get(0).value);
                     if($productId!=null){
                      arrbills.push($productId.text()+"/"+$baseGoldPrice.text()+"/"+$baseGoldAcountPrice.text()+"/"+$($AgentMoney).find("input").get(0).value+"/"+$($AgentAccountMoney).find("input").get(0).value);
                      }
                    });
                    $("#hidTableValue").val(arrbills.join(","));
                    $("#createfrom").attr("action","<c:url value='/k4_oldGoldStorsge/saveFactoryBills'/>");
                    $("#createfrom").submit();
              }

    posted @ 2011-12-15 09:23 哈希 阅读(7822) | 评论 (1)编辑 收藏

     

    1. 班级  科目   分数  
    2. 1     语文   8800  
    3. 1     数学   8420  
    4. 1     英语   7812  
    5. ……  
    6. 2     语文   8715  
    7. 2     数学   8511  
    8. 2     英语   8512  
    9. ……  
    10.    
    11.    
    12. 要求转换成下面这样的结果  
    13. 班级    语文    数学    英语  
    14. 1       8800    8420    7812  
    15. 2       8715    8511    8512  

     

     

    这是一个非常经典的 4属性的表设计模式,顾名思义,这样的表一般有四列,分别是:entity_id, attribute_name, attribute_type, attribute_value ,这样的设计使我们添加字段非常容易,如:我们想添加一个物理成绩是非常简单的,我们只要向表中插入一条记录即可。但是,这样的设计有一个非常严重的问题,那就是:查询难度增加,查询效率非常差。

    要想实现上面的查询有一个原则,那就是:通过case语句创造虚拟字段,使结果集成为二维数组,然后应用聚合函数返回单一记录。怎么样?不理解,仔细看看下面的图和分析下面的语句你就理解了。

     

    1. create table score  
    2. (  
    3.     banji integer,  
    4.     kemu varchar(10),   
    5.     fengshu integer  
    6. )  
    7. go  
    8.    
    9. insert into score values  
    10. (1, '语文', 8800),  
    11. (1, '数学', 8420),  
    12. (1, '英语', 7812),  
    13. (2, '语文', 8715),  
    14. (2, '数学', 8511),  
    15. (2, '英语', 8512)  
    16. go  
    17.    
    18. select banji,  
    19.        max(yuwen)        语文,  
    20.        max(shuxue)       数学,  
    21.        max(yingyu)       英语  
    22. from    
    23.      (select  banji,  
    24.               case kemu  
    25.                when '语文' then fengshu  
    26.                else 0  
    27.              end                         yuwen,  
    28.              case kemu  
    29.                when '数学' then fengshu  
    30.                else 0  
    31.              end                         shuxue,  
    32.              case kemu  
    33.                when '英语' then fengshu  
    34.                else 0  
    35.              end                         yingyu  
    36.       from score  
    37.       ) as inner  
    38. group by inner.banji  
    39. order by 1  
    40. go  

     

     

    你可能正在感叹,这样的解决方案是多么的巧妙,可惜不是我想出来的,在这里,我也不敢把大师的思想据为己有,以上思想来自<SQL语言艺术>的第11章,想了解更全面的信息,大家可以参考。

     

     

    posted @ 2011-12-07 10:36 哈希 阅读(311) | 评论 (0)编辑 收藏

    好久没用List去保存一个JDBC查询结果,查询出来的ResultSet只执行了一次,然后就报NullPointException。明明数据库中有数据,就是执行不了第二次,一到把对象添加到list上面就直接报异常,郁闷了半天。
    Java代码 复制代码 收藏代码
    1. public List<Terminal> getTerm(String user){   
    2.             List<Terminal> termlist= null;//这里出现问题,没有new一个List   
    3.             //改为List<Terminal> termlist= new ArrayList();,   
    4.               //new一个ArrayList就没事了,日,以前初学的时候也得过这种问题...汗   
    5.                         try {   
    6.                 con = DBPool.getPool().getConnection();   
    7.                 ps =con.prepareStatement("select * from gps_termcodetable where kh_user=?");   
    8.                 ps.setString(1, user);   
    9.                 rs = ps.executeQuery();   
    10.                 while(rs.next()){   
    11.                     Terminal term = new Terminal();   
    12.                     String number = rs.getString("hm_number");   
    13.                     String nick = rs.getString("mc_nick");   
    14.                     term.setZhNumber(number);   
    15.                     term.setLisence(rs.getString("mc_nick"));   
    16.                     termlist.add(term);   
    17.                 }   
    18.                 rs.close();   
    19.                 ps.close();   
    20.                 con.close();   
    21.             } catch (SQLException ex) {   
    22.                 Logger.getLogger(GetTerminal.class.getName()).log(Level.SEVERE, null, ex);   
    23.             }   
    24.          return termlist;   
    25.     }  

    后面才发现没有new一个ArrayList,郁闷了,还犯这种错误,久了没用也会生疏

    posted @ 2011-12-05 22:14 哈希 阅读(1222) | 评论 (0)编辑 收藏

    1、 开始->设置->控制面板->管理工具->服务
    停止所有Oracle服务。

    2、 开始->程序->Oracle - OraHome81->Oracle Installation Products->Universal Installer
    卸装所有Oracle产品,但Universal Installer本身不能被删除

    5、 运行regedit,选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,按del键删除这个入口。

    6、 运行regedit,选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,滚动
    这个列表,删除所有Oracle入口。

    7、 运行refedit,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application,
    删除所有Oracle入口。

    8、 开始->设置->控制面板->系统->高级->环境变量
    删除环境变量CLASSPATH和PATH中有关Oracle的设定

    9、 从桌面上、STARTUP(启动)组、程序菜单中,删除所有有关Oracle的组和图标

    10、 删除\Program Files\Oracle目录

    11、 重新启动计算机,重起后才能完全删除Oracle所在目录

    12、 删除与Oracle有关的文件,选择Oracle所在的缺省目录C:\Oracle,删除这个入口目录及所有子目录,并从Windows 2000目录(一般为C:\WINNT)下删除以下文件ORACLE.INI、oradim73.INI、oradim80.INI、oraodbc.ini等等。

    13、 WIN.INI文件中若有[ORACLE]的标记段,删除该段

    14、 如有必要,删除所有Oracle相关的ODBC的DSN

    posted @ 2011-11-30 15:30 哈希 阅读(135) | 评论 (0)编辑 收藏

    1、 开始->设置->控制面板->管理工具->服务
    停止所有Oracle服务。

    2、 开始->程序->Oracle - OraHome81->Oracle Installation Products->Universal Installer
    卸装所有Oracle产品,但Universal Installer本身不能被删除

    5、 运行regedit,选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,按del键删除这个入口。

    6、 运行regedit,选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,滚动
    这个列表,删除所有Oracle入口。

    7、 运行refedit,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application,
    删除所有Oracle入口。

    8、 开始->设置->控制面板->系统->高级->环境变量
    删除环境变量CLASSPATH和PATH中有关Oracle的设定

    9、 从桌面上、STARTUP(启动)组、程序菜单中,删除所有有关Oracle的组和图标

    10、 删除\Program Files\Oracle目录

    11、 重新启动计算机,重起后才能完全删除Oracle所在目录

    12、 删除与Oracle有关的文件,选择Oracle所在的缺省目录C:\Oracle,删除这个入口目录及所有子目录,并从Windows 2000目录(一般为C:\WINNT)下删除以下文件ORACLE.INI、oradim73.INI、oradim80.INI、oraodbc.ini等等。

    13、 WIN.INI文件中若有[ORACLE]的标记段,删除该段

    14、 如有必要,删除所有Oracle相关的ODBC的DSN

    posted @ 2011-11-30 15:30 哈希 阅读(158) | 评论 (0)编辑 收藏

    方法一:
    var re=/正则表达式/;
    re.test($("txtid").val())

    方法二:
    $("txtid").val.match(/正则表达式/);

    验证数字的正则表达式集(转载)
    验证数字:^[0-9]*$
    验证n位的数字:^\d{n}$
    验证至少n位数字:^\d{n,}$
    验证m-n位的数字:^\d{m,n}$
    验证零和非零开头的数字:^(0|[1-9][0-9]*)$
    验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
    验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
    验证非零的正整数:^\+?[1-9][0-9]*$
    验证非零的负整数:^\-[1-9][0-9]*$
    验证非负整数(正整数 + 0) ^\d+$
    验证非正整数(负整数 + 0) ^((-\d+)|(0+))$
    验证长度为3的字符:^.{3}$
    验证由26个英文字母组成的字符串:^[A-Za-z]+$
    验证由26个大写英文字母组成的字符串:^[A-Z]+$
    验证由26个小写英文字母组成的字符串:^[a-z]+$
    验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
    验证由数字、26个英文字母或者下划线组成的字符串:^\w+$
    验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。
    验证是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+
    验证汉字:^[\u4e00-\u9fa5],{0,}$
    验证Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
    验证InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
    验证电话号码:^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。
    验证身份证号(15位或18位数字):^\d{15}|\d{}18$
    验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12”
    验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正确格式为:01、09和1、31。
    整数:^-?\d+$
    非负浮点数(正浮点数 + 0):^\d+(\.\d+)?$
    正浮点数 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
    非正浮点数(负浮点数 + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$
    负浮点数 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
    浮点数 ^(-?\d+)(\.\d+)?

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     
    <HEAD>
      
    <TITLE> New Document </TITLE>
      
    <META NAME="Generator" CONTENT="EditPlus">
      
    <META NAME="Author" CONTENT="">
      
    <META NAME="Keywords" CONTENT="">
      
    <META NAME="Description" CONTENT="">
     
    </HEAD>
     
    <script language=JavaScript>
      
    function warn(){
         
    var num=document.getElementById("num").value;
         
         
    var pattern=/^[0-9]{1,20}$/;
        
    if(num.match(pattern)==null || num==""){
          alert(
    "请输入正整数!");
          
    return false;
        }

       }

       
    </script>
     
    <BODY>
      
    <form  onsubmit="return warn()" action="Noname1.html" method="post">
          
          
    <input type="text" id="num"/>
          
          
    <input type ="submit" value="submit" />
          
    <input type="button" value="nihao" onclick="warn()">
          
    <input type="button" id="weituo2" value="返回"  onclick="warn()">
      
    </form>
     
    </BODY>
    </HTML>



    posted @ 2011-11-30 11:46 哈希 阅读(154) | 评论 (0)编辑 收藏

    http://code.google.com/p/j2eewiki/wiki/Struts2Hello

    posted @ 2011-11-28 15:09 哈希 阅读(186) | 评论 (0)编辑 收藏

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    </head>

    <body>
     <script language="javascript">
      function showBaby()
      {
       var path=window.showModalDialog("花园baby.html","","dialogWidth:400px;dialogHeight:400px");
       
       document.getElementById("img").innerHTML="<img src='"+path+"' width='300' height='300'>";
       
       
      }
     </script>
     <a href="javaScript:showBaby()">我喜欢...</a>
     
     <p id="img">
     </p>
     
    </body>
    </html>



    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    </head>

    <body>
    <form id="babyFrm" name="babyFrm" method="post" action="">
      <table width="471" height="405" border="1" align="center" cellpadding="0" cellspacing="0">
        <tr>
          <td>
        <img src="imgs/[叮叮车].jpg" width="150" height="150" /><br />
           <input name="gb" type="radio" value="imgs/[叮叮车].jpg" checked="checked"/>
           叮叮车      </td>
          <td><img src="imgs/[唔西·迪西].jpg" width="150" height="150" /><br />
            <input type="radio" value="imgs/[唔西·迪西].jpg" name="gb"/>
          唔西·迪西</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td><img src="imgs/[汤姆布利柏].jpg" width="150" height="150" /><br />
            <input type="radio" value="imgs/[汤姆布利柏].jpg" name="gb"/>
          汤姆布利柏          <br /></td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td colspan="2" align="center"><input name="btnOk" type="button" id="btnOk" value="我选好了" onclick="selectOk()"/></td>
          <td>&nbsp;</td>
        </tr>
      </table>
    </form>
    <script language="javascript">
     function selectOk(){
      //得到所有的单选按钮,返回被选中的按钮的value
      var gbs=document.getElementsByName("gb");
      var value;
      for(var i=0;i<gbs.length;i++){
       if(gbs[i].type=="radio" && gbs[i].checked){
        value=gbs[i].value;
        break;
       }
      }
      window.returnValue=value;
      window.close();
     }
    </script>

     </body>
    </html>

    posted @ 2011-11-27 22:00 哈希 阅读(186) | 评论 (0)编辑 收藏

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <script language="javascript">
     function searchFriend(){
      //得到所有的复选框
      var s=document.getElementById("allFriend");
      var ack=document.getElementsByName("chkFriend");
      for(var i=0;i<ack.length;i++){
       if(ack[i].type=="checkbox"){
        ack[i].checked=s.checked;
       }
      }
     }
     
     function rsearchFriend(){
      var ack=document.getElementsByName("chkFriend");
      for(var i=0;i<ack.length;i++){
       if(ack[i].type=="checkbox"){
        ack[i].checked=!ack[i].checked;
       }
      }
     }
     
     
     
     
    </script>
    </head>

    <body>
    <form name="chkFriend" method="post" action="">
      <p>你想交一个什么样的朋友呢,请选择:</p>
      <p>
       <!-- 所有的复选框名字需要调整一致 -->
        <input type="checkbox" name="chkFriend" value="温柔"> 温柔
        <input type="checkbox" name="chkFriend" value="年轻"> 年轻
        <input type="checkbox" name="chkFriend" value="漂亮"> 漂亮
        <input type="checkbox" name="chkFriend" value="爱洗衣服">爱洗衣服
        <input type="checkbox" name="chkFriend" value="爱做饭">爱做饭
    </p>
      <p>
      <input type="checkbox" onClick="searchFriend()" id="allFriend" name="allFriend" value="以上全选">以上全选
    </p>
    <input type="checkbox" onClick="rsearchFriend()" id="rallFriend" name="rallFriend" value="反选">反选
    </p>
    <p>
    <input type="button" name="Submit" value="寻找目标">
    </p>
    </form>

    </body>
    </html>

    posted @ 2011-11-27 21:54 哈希 阅读(165) | 评论 (0)编辑 收藏

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <script language="javascript">
        function show()
    {
            var value
    =window.showModalDialog("b.html","","dialogWidth:200px;dialogHeight:200px;");
            document.write(
    "<h1>"+value+"</h1>");
        }

    </script>
    </head>

    <body onload="show()">
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <script language="javascript">
        
    function pass(author){
            window.returnValue
    =author;
            window.close();
    //关掉
        }
    </script>
    </head>

    <body>
        
    <a href="javaScript:pass('大仲马')">大仲马</a><br/>
        
    <a href="javaScript:pass('小仲马')">小仲马</a><br/>
    </body>
    </html>
       
    </body>
    </html>

    posted @ 2011-11-27 21:34 哈希 阅读(173) | 评论 (0)编辑 收藏

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <style type="text/css">
     select{
      font-size:30px;
     }
    </style>
    </head>

    <body onload="bornCity('p000')">
     <script language="javascript">
      var pcs=new Array();
      pcs[0]=new Array("p000","==请选择省==","0");
      pcs[1]=new Array("p001","==陕西==","0");
      pcs[2]=new Array("p002","==广东==","0");
      pcs[3]=new Array("p003","==山西==","0");
      pcs[4]=new Array("c001","==西安==","p001");
      pcs[5]=new Array("c002","==渭南==","p001");
      pcs[6]=new Array("c003","==深圳==","p002");
      pcs[7]=new Array("c005","==佛山==","p002");
      pcs[8]=new Array("c006","==东莞==","p002");
      pcs[9]=new Array("c007","==大同==","p003");
      pcs[10]=new Array("c008","==请选择市==","p000");
      
      
      
      function bornCity(value){
       var city=document.getElementById("city");
       //清空
       city.options.length=0;
       
       for(var i=0;i<pcs.length;i++){
        if(pcs[i][2]==value){
         city.options.add(new Option(pcs[i][1],pcs[i][0]));
        }
       }
       
       
       
      }
      
      
      
      
     </script>
     <form name="pcfrm">
      省:
      <select name="province" onchange="bornCity(this.value);">
       <script language="javascript">
        for(var i=0;i<pcs.length;i++){
        
         if(pcs[i][2]=="0")
         {
          document.write("<option value='"+pcs[i][0]+"'>"+pcs[i][1]+"</option>");
         } 
        }
       </script>
      </select>
      市:
      
      <select name="city" id="city">
       
      </select>
     </form>
    </body>
    </html>

    posted @ 2011-11-27 21:29 哈希 阅读(168) | 评论 (0)编辑 收藏


    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    </head>

    <body>
     <!--放置广告层-->
     <div id="adv" style="position:absolute; left:60px; top:220px; width:100px; height:75px; z-index:2">
      <a href="http://www.xinzhanedu.com">
       <img src="imgs/ad.jpg"/>
      </a>
      
      <div id="close" style="position:absolute; left:79px; top:61px; width:21px; height:14px;">
       <img src="imgs/close.png" style="cursor:pointer;" onClick="closeAdv()"/>
      </div>
      
     </div>
     <script language="javascript">
      var x=0,y=0,ypos=220,xpos=60,step=6,speed=10;
      var adv=document.getElementById("adv");
      function gogogo(){
       adv.style.left=xpos+document.body.scrollLeft;
       adv.style.top=ypos+document.body.scrollTop;
       if(x==0){
        //从左到右
        xpos+=step;
       }else
       {
        xpos-=step;
       }
       
       
       if(xpos>=document.body.clientWidth-100){
        //改变方向
        xpos=document.body.clientWidth-100;
        x=1;
       }
       if(xpos<0){
        xpos=0;
        x=0;
       }
       //纵向
       
       if(y==0){
        //从左到右
        ypos+=step;
       }else
       {
        ypos-=step;
       }
       
       
       if(ypos>=document.body.clientHeight-75){
        //改变方向
        ypos=document.body.clientHeight-75;
        y=1;
       }
       if(ypos<0){
        ypos=0;
        y=0;
       }
       
       
      }
      setInterval("gogogo()",speed);
     </script>

     
     


     <table width="2000" height="1000">
      <tr>
       <td>
        <img src="imgs/bg.jpg" width="1400" height="3417"/>
       </td>
      </tr>
     </table>
    </body>
    </html>

    posted @ 2011-11-27 21:28 哈希 阅读(168) | 评论 (0)编辑 收藏

    b<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    </head>

    <body>
     <div id="yellow" style="position:absolute; left:0px; top:0px; width:200px; height:200px; background-color:#CCFF33; z-index:20">
      这是一个黄层
     </div>
     <div id="blue" style=" overflow:hidden;position:absolute; left:100px; top:100px; width:200px; height:200px; background-color:#3399FF; z-index:1">
      这是一个蓝层
      <div id="black" style="position:absolute; left:100px; top:100px; width:136px; height:136px; background-color:#000000;">
      </div>
     </div>
    </body>
    </html>

    posted @ 2011-11-27 21:24 哈希 阅读(693) | 评论 (0)编辑 收藏

         摘要: web.xmlCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.c...  阅读全文

    posted @ 2011-06-11 15:35 哈希 阅读(194) | 评论 (0)编辑 收藏

    Student(S#,Sname,Sage,Ssex) 学生表
    Course(C#,Cname,T#) 课程表
    SC(S#,C#,score) 成绩表
    Teacher(T#,Tname) 教师表

    问题:
    1、查询“001”课程比“002”课程成绩高的所有学生的学号;
      select a.S# from (select s#,score from SC where C#='001') a,(select s#,score
      from SC where C#='002') b
      where a.score>b.score and a.s#=b.s#;
    2、查询平均成绩大于60分的同学的学号和平均成绩;
        select S#,avg(score)
        from sc
        group by S# having avg(score) >60;
    3、查询所有同学的学号、姓名、选课数、总成绩;
      select Student.S#,Student.Sname,count(SC.C#),sum(score)
      from Student left Outer join SC on Student.S#=SC.S#
      group by Student.S#,Sname
    4、查询姓“李”的老师的个数;
      select count(distinct(Tname))
      from Teacher
      where Tname like '李%';
    5、查询没学过“叶平”老师课的同学的学号、姓名;
        select Student.S#,Student.Sname
        from Student  
        where S# not in (select distinct( SC.S#) from SC,Course,Teacher where  SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平');
    6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;
      select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and SC.C#='001'and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002');
    7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;
      select S#,Sname
      from Student
      where S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平' group by S# having count(SC.C#)=
         (select count(C#) from Course,Teacher  where Teacher.T#=Course.T# and Tname='叶平'));
    8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名;
      Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2
      from Student,SC where Student.S#=SC.S# and C#='001') S_2 where score2 <score;
    9、查询所有课程成绩小于60分的同学的学号、姓名;
      select S#,Sname
      from Student
      where S# not in (select Student.S# from Student,SC where S.S#=SC.S# and score>60);
    10、查询没有学全所有课的同学的学号、姓名;
        select Student.S#,Student.Sname
        from Student,SC
        where Student.S#=SC.S# group by  Student.S#,Student.Sname having count(C#) <(select count(C#) from Course);
    11、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;
        select S#,Sname from Student,SC where Student.S#=SC.S# and C# in select C# from SC where S#='1001';
    12、查询至少学过学号为“001”同学所有一门课的其他同学学号和姓名;
        select distinct SC.S#,Sname
        from Student,SC
        where Student.S#=SC.S# and C# in (select C# from SC where S#='001');
    13、把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩;
        update SC set score=(select avg(SC_2.score)
        from SC SC_2
        where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# and Course.T#=Teacher.T# and Teacher.Tname='叶平');
    14、查询和“1002”号的同学学习的课程完全相同的其他同学学号和姓名;
        select S# from SC where C# in (select C# from SC where S#='1002')
        group by S# having count(*)=(select count(*) from SC where S#='1002');
    15、删除学习“叶平”老师课的SC表记录;
        Delect SC
        from course ,Teacher  
        where Course.C#=SC.C# and Course.T#= Teacher.T# and Tname='叶平';
    16、向SC表中插入一些记录,这些记录要求符合以下条件:没有上过编号“003”课程的同学学号、2、
        号课的平均成绩;
        Insert SC select S#,'002',(Select avg(score)
        from SC where C#='002') from Student where S# not in (Select S# from SC where C#='002');
    17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示: 学生ID,,数据库,企业管理,英语,有效课程数,有效平均分
        SELECT S# as 学生ID
            ,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='004') AS 数据库
            ,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='001') AS 企业管理
            ,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='006') AS 英语
            ,COUNT(*) AS 有效课程数, AVG(t.score) AS 平均成绩
        FROM SC AS t
        GROUP BY S#
        ORDER BY avg(t.score)  
    18、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分
        SELECT L.C# As 课程ID,L.score AS 最高分,R.score AS 最低分
        FROM SC L ,SC AS R
        WHERE L.C# = R.C# and
            L.score = (SELECT MAX(IL.score)
                          FROM SC AS IL,Student AS IM
                          WHERE L.C# = IL.C# and IM.S#=IL.S#
                          GROUP BY IL.C#)
            AND
            R.Score = (SELECT MIN(IR.score)
                          FROM SC AS IR
                          WHERE R.C# = IR.C#
                      GROUP BY IR.C#
                        );
    19、按各科平均成绩从低到高和及格率的百分数从高到低顺序
        SELECT t.C# AS 课程号,max(course.Cname)AS 课程名,isnull(AVG(score),0) AS 平均成绩
            ,100 * SUM(CASE WHEN  isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) AS 及格百分数
        FROM SC T,Course
        where t.C#=course.C#
        GROUP BY t.C#
        ORDER BY 100 * SUM(CASE WHEN  isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC
    20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004)
        SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '001' THEN 1 ELSE 0 END) AS 企业管理平均分
            ,100 * SUM(CASE WHEN C# = '001' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '001' THEN 1 ELSE 0 END) AS 企业管理及格百分数
            ,SUM(CASE WHEN C# = '002' THEN score ELSE 0 END)/SUM(CASE C# WHEN '002' THEN 1 ELSE 0 END) AS 马克思平均分
            ,100 * SUM(CASE WHEN C# = '002' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '002' THEN 1 ELSE 0 END) AS 马克思及格百分数
            ,SUM(CASE WHEN C# = '003' THEN score ELSE 0 END)/SUM(CASE C# WHEN '003' THEN 1 ELSE 0 END) AS UML平均分
            ,100 * SUM(CASE WHEN C# = '003' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '003' THEN 1 ELSE 0 END) AS UML及格百分数
            ,SUM(CASE WHEN C# = '004' THEN score ELSE 0 END)/SUM(CASE C# WHEN '004' THEN 1 ELSE 0 END) AS 数据库平均分
            ,100 * SUM(CASE WHEN C# = '004' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '004' THEN 1 ELSE 0 END) AS 数据库及格百分数
      FROM SC

    21、查询不同老师所教不同课程平均分从高到低显示
      SELECT max(Z.T#) AS 教师ID,MAX(Z.Tname) AS 教师姓名,C.C# AS 课程ID,MAX(C.Cname) AS 课程名称,AVG(Score) AS 平均成绩
        FROM SC AS T,Course AS C ,Teacher AS Z
        where T.C#=C.C# and C.T#=Z.T#
      GROUP BY C.C#
      ORDER BY AVG(Score) DESC
    22、查询如下课程成绩第 3 名到第 6 名的学生成绩单:企业管理(001),马克思(002),UML (003),数据库(004)
        [学生ID],[学生姓名],企业管理,马克思,UML,数据库,平均成绩
        SELECT  DISTINCT top 3
          SC.S# As 学生学号,
            Student.Sname AS 学生姓名 ,
          T1.score AS 企业管理,
          T2.score AS 马克思,
          T3.score AS UML,
          T4.score AS 数据库,
          ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) as 总分
          FROM Student,SC  LEFT JOIN SC AS T1
                          ON SC.S# = T1.S# AND T1.C# = '001'
                LEFT JOIN SC AS T2
                          ON SC.S# = T2.S# AND T2.C# = '002'
                LEFT JOIN SC AS T3
                          ON SC.S# = T3.S# AND T3.C# = '003'
                LEFT JOIN SC AS T4
                          ON SC.S# = T4.S# AND T4.C# = '004'
          WHERE student.S#=SC.S# and
          ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)
          NOT IN
          (SELECT
                DISTINCT
                TOP 15 WITH TIES
                ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)
          FROM sc
                LEFT JOIN sc AS T1
                          ON sc.S# = T1.S# AND T1.C# = 'k1'
                LEFT JOIN sc AS T2
                          ON sc.S# = T2.S# AND T2.C# = 'k2'
                LEFT JOIN sc AS T3
                          ON sc.S# = T3.S# AND T3.C# = 'k3'
                LEFT JOIN sc AS T4
                          ON sc.S# = T4.S# AND T4.C# = 'k4'
          ORDER BY ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) DESC);

    23、统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ <60]
        SELECT SC.C# as 课程ID, Cname as 课程名称
            ,SUM(CASE WHEN score BETWEEN 85 AND 100 THEN 1 ELSE 0 END) AS [100 - 85]
            ,SUM(CASE WHEN score BETWEEN 70 AND 85 THEN 1 ELSE 0 END) AS [85 - 70]
            ,SUM(CASE WHEN score BETWEEN 60 AND 70 THEN 1 ELSE 0 END) AS [70 - 60]
            ,SUM(CASE WHEN score < 60 THEN 1 ELSE 0 END) AS [60 -]
        FROM SC,Course
        where SC.C#=Course.C#
        GROUP BY SC.C#,Cname;

    24、查询学生平均成绩及其名次
          SELECT 1+(SELECT COUNT( distinct 平均成绩)
                  FROM (SELECT S#,AVG(score) AS 平均成绩
                          FROM SC
                      GROUP BY S#
                      ) AS T1
                WHERE 平均成绩 > T2.平均成绩) as 名次,
          S# as 学生学号,平均成绩
        FROM (SELECT S#,AVG(score) 平均成绩
                FROM SC
            GROUP BY S#
            ) AS T2
        ORDER BY 平均成绩 desc;
     
    25、查询各科成绩前三名的记录:(不考虑成绩并列情况)
          SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数
          FROM SC t1
          WHERE score IN (SELECT TOP 3 score
                  FROM SC
                  WHERE t1.C#= C#
                ORDER BY score DESC
                  )
          ORDER BY t1.C#;
    26、查询每门课程被选修的学生数
      select c#,count(S#) from sc group by C#;
    27、查询出只选修了一门课程的全部学生的学号和姓名
      select SC.S#,Student.Sname,count(C#) AS 选课数
      from SC ,Student
      where SC.S#=Student.S# group by SC.S# ,Student.Sname having count(C#)=1;
    28、查询男生、女生人数
        Select count(Ssex) as 男生人数 from Student group by Ssex having Ssex='男';
        Select count(Ssex) as 女生人数 from Student group by Ssex having Ssex='女';
    29、查询姓“张”的学生名单
        SELECT Sname FROM Student WHERE Sname like '张%';
    30、查询同名同性学生名单,并统计同名人数
      select Sname,count(*) from Student group by Sname having  count(*)>1;;
    31、1981年出生的学生名单(注:Student表中Sage列的类型是datetime)
        select Sname,  CONVERT(char (11),DATEPART(year,Sage)) as age
        from student
        where  CONVERT(char(11),DATEPART(year,Sage))='1981';
    32、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列
        Select C#,Avg(score) from SC group by C# order by Avg(score),C# DESC ;
    33、查询平均成绩大于85的所有学生的学号、姓名和平均成绩
        select Sname,SC.S# ,avg(score)
        from Student,SC
        where Student.S#=SC.S# group by SC.S#,Sname having    avg(score)>85;
    34、查询课程名称为“数据库”,且分数低于60的学生姓名和分数
        Select Sname,isnull(score,0)
        from Student,SC,Course
        where SC.S#=Student.S# and SC.C#=Course.C# and  Course.Cname='数据库'and score <60;
    35、查询所有学生的选课情况;
        SELECT SC.S#,SC.C#,Sname,Cname
        FROM SC,Student,Course
        where SC.S#=Student.S# and SC.C#=Course.C# ;
    36、查询任何一门课程成绩在70分以上的姓名、课程名称和分数;
        SELECT  distinct student.S#,student.Sname,SC.C#,SC.score
        FROM student,Sc
        WHERE SC.score>=70 AND SC.S#=student.S#;
    37、查询不及格的课程,并按课程号从大到小排列
        select c# from sc where scor e <60 order by C# ;
    38、查询课程编号为003且课程成绩在80分以上的学生的学号和姓名;
        select SC.S#,Student.Sname from SC,Student where SC.S#=Student.S# and Score>80 and C#='003';
    39、求选了课程的学生人数
        select count(*) from sc;
    40、查询选修“叶平”老师所授课程的学生中,成绩最高的学生姓名及其成绩
        select Student.Sname,score
        from Student,SC,Course C,Teacher
        where Student.S#=SC.S# and SC.C#=C.C# and C.T#=Teacher.T# and Teacher.Tname='叶平' and SC.score=(select max(score)from SC where C#=C.C# );
    41、查询各个课程及相应的选修人数
        select count(*) from sc group by C#;
    42、查询不同课程成绩相同的学生的学号、课程号、学生成绩
      select distinct  A.S#,B.score from SC A  ,SC B where A.Score=B.Score and A.C# <>B.C# ;
    43、查询每门功成绩最好的前两名
        SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数
          FROM SC t1
          WHERE score IN (SELECT TOP 2 score
                  FROM SC
                  WHERE t1.C#= C#
                ORDER BY score DESC
                  )
          ORDER BY t1.C#;
    44、统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,查询结果按人数降序排列,若人数相同,按课程号升序排列  
        select  C# as 课程号,count(*) as 人数
        from  sc  
        group  by  C#
        order  by  count(*) desc,c#  
    45、检索至少选修两门课程的学生学号
        select  S#  
        from  sc  
        group  by  s#
        having  count(*)  >  =  2
    46、查询全部学生都选修的课程的课程号和课程名
        select  C#,Cname  
        from  Course  
        where  C#  in  (select  c#  from  sc group  by  c#)  
    47、查询没学过“叶平”老师讲授的任一门课程的学生姓名
        select Sname from Student where S# not in (select S# from Course,Teacher,SC where Course.T#=Teacher.T# and SC.C#=course.C# and Tname='叶平');
    48、查询两门以上不及格课程的同学的学号及其平均成绩
        select S#,avg(isnull(score,0)) from SC where S# in (select S# from SC where score <60 group by S# having count(*)>2)group by S#;
    49、检索“004”课程分数小于60,按分数降序排列的同学学号
        select S# from SC where C#='004'and score <60 order by score desc;
    50、删除“002”同学的“001”课程的成绩
    delete from Sc where S#='001'and C#='001'

    posted @ 2011-06-08 17:55 哈希 阅读(131) | 评论 (0)编辑 收藏

    1.列出至少有一个员工的所有部门。(两个表联合查询,及group by...having的用法)
    select dname from dept where deptno in(select deptno from emp group by deptno having count(*)>1);

    2.列出薪金比“SMITH”多的所有员工。(经典的自连接查询)
    select ename from emp where sal>(select sal from emp where ename like'SMITH');

    3.列出所有员工的姓名及其直接上级的姓名。(多次对自己查询,为表的取个别名,内部查询可以像对象一样引用外部的对象的字段,这里引用与编程中的作用域相似,即与{}类比)

    select ename,(select ename from emp where empno in(a.mgr)) from emp a ;

    4.列出受雇日期早于其直接上级的所有员工。(同上,日期可直接拿来比较)

    select ename from emp a where HIREDATE<(select HIREDATE from emp where empno in(a.mgr));

    5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门(以emp表为主,左连接查询)

    select dname,emp.* from dept left join emp on dept.deptno=emp.deptno;

    6.列出所有“CLERK”(办事员)的姓名及其部门名称。(域,注意())

    select ename,(select dname from dept where deptno in(a.deptno)) as dname from emp a where JOB like'CLERK';

    7.列出最低薪金大于1500的各种工作。
    select job from emp where sal>1500;

    8.列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。(经典的两个表连接)

    select ename from emp where deptno=(select deptno from dept where dname like'SALES');

    9.列出薪金高于公司平均薪金的所有员工。(反复查自己)

    select ename from emp where sal>( select avg( sal) from emp);

    10.列出与“SCOTT”从事相同工作的所有员工。(排除自己)

    select ename from emp where job in(select job from emp where ename like'SCOTT') and ename!='SCOTT' ;

    11.列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。(any的用法,且排挤)

    select ename,sal from emp where sal=any(select sal from emp wheredeptno=30) and deptno!=30;

    12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。(max的用法)

    select sal,ename from emp where sal>(select max(sal) from emp where deptno=30);


    13.列出在每个(每个是关键字,对此group by)部门工作的员工数量、平均工资和平均服务期限。(经典的group by用法)

    select deptno,count(*),avg(a.sal),avg(sysdate-HIREDATE) from emp a group by deptno;

    14.列出所有员工的姓名、部门名称和工资.(经典的两个表的连接查询,用具体的名称替换一个表中的主键的id (解决很多人在实际运用中会遇到的不能绑定多列的问题),也可用where来查询 ,与题5比较)

    select ename,sal,(select dname from dept a where a.deptno=b.deptno)as dname from emp b;

    15.列出所有部门的详细信息和部门人数。(因为是*,将显示dept和后面临时表b的全部字段(注意:不只是dept的字段,注意*号))

    select * from dept a left join (select deptno,count(*) from emp group by deptno) b on a.deptno=b.deptno ;

    16.列出各种(与每个同义(参看题13))工作的最低工资。

    select job,min(sal) from emp group by job ;


    17.列出各个部门的MANAGER(经理,经理唯一,不用group by)的最低薪金。

    select min(sal) from emp where job like'MANAGER';(因为MANAGER是值不是字段,所以不能用小写)

    18.列出所有员工的年工资,按年薪从低到高排序。(nvl:空转化函数)

    select ename,sal+nvl(comm,0) as sal from emp order by sal ;

    posted @ 2011-05-28 16:33 哈希 阅读(170) | 评论 (0)编辑 收藏

    简单的说:

    struts 控制用的

    hibernate 操作数据库的

    spring 用解耦的

    详细的说:

    STRUTS 在 SSH 框架中起控制的作用 , 其核心是 Controller, 即 ActionServlet, 而 ActionServlet 的核心就是 Struts-confi g.xml. 主要控制逻辑关系的处理 .

    hibernate 是数据持久化层 , 是一种新的对象、关系的映射工具 , 提供了从 Java 类到数据表的映射,也提供了数据查询和恢复等机制 , 大大减少数据访问的复杂度。把对数据库的直接操作 , 转换为对持久对象的操作 .

    SPRING 是一个轻量级的控制反转 (IoC) 和面向切面 (AOP) 的容器框架 , 面向接口的编程 , 由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控。这也就是所谓 “ 控制反转 ” 的概念所在:(依赖)控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。依赖注入,即组件之间的依赖关系由容器在运行期决定,形象的来说,即由容器动态的将某种依赖关系注入到组件之中

    起到的主要作用是解耦

    Struts 、 spring 、 Hibernate 在各层的作用

    1 ) struts 负责 web 层 .

    ActionFormBean 接收网页中表单提交的数据,然后通过 Action 进行处理,再 Forward 到对应的网页。

    在 struts-config.xml 中定义 <action-mapping>, ActionServlet 会加载。

    2 ) spring 负责业务层管理,即 Service (或 Manager).

    1 . service 为 action 提供统计的调用接口,封装持久层的 DAO.

    2 .可以写一些自己的业务方法。

    3 .统一的 javabean 管理方法

    4 .声明式事务管理(http://www.cnblogs.com/rushoooooo/archive/2011/08/28/2155960.html

    5. 集成 Hiberante

    3 ) Hiberante ,负责持久化层,完成数据库的 crud 操作

    hibernate 为持久层,提供 OR/Mapping 。

    它有一组 .hbm.xml 文件和 POJO, 是跟数据库中的表相对应的。然后定义 DAO ,这些是跟数据库打交道的类,它们会使用 PO 。

    在 struts+spring+hibernate 的系统中,

    对象的调用流程是: jsp-> Action - > Service ->DAO ->Hibernate 。

    数据的流向是 ActionFormBean 接受用户的数据, Action 将数据从 ActionFromBean 中取出,封装成 VO 或 PO,

    再调用业务层的 Bean 类,完成各种业务处理后再 forward 。而业务层 Bean 收到这个 PO 对象之后,会调用 DAO 接口方法,进行持久化操作。

     

     

     

    spring:Aop管理事务控制,IoC管理各个组件的耦合,DaoTemplate作为常规持久层的快速开发模板!

    struts:控制层Action,页面标签和Model数据,调用业务层

    Hibernate:负责数据库和对象的映射,负责DAO层(Data Access Object:数据访问)

     

    spring整合hibernate和struts,只要在配好了applicationContext.xml,在struts的action中直接调用就可以了。hibernate访问数据库的操作都在spring中实现了,spring的调用又在stuts的action中实现了。这个ssh框架就连到了一起……

     

     

    1 SSH在开发中的位置

    现在J2EE的开源框架多的数不清楚,目前(已经、正在)比较流行的常用框架大概有struts,spring,hibernate,jsf,webwork,而 struts+spring+hibernate(SSH)这种轻量级架构被誉为“黄金组合”。spring和hibernate更是被许多人认为是未来五年内不会被淘汰的技术,犹如当年的struts,今天的开发中依然被广泛采用。

    2 为什么使用SSH  

    其实,就算用Java建造一个不是很烦琐的web应用,也不是件轻松的事情。 在构架的一开始就有很多事情要考虑。从高处看,摆在开发者面前有很多问题:要考虑是怎样建立用户接口?在哪里处理业务逻辑? 怎样持久化的数据。 而这三层构架中,每一层都有他们要仔细考虑的。 各个层该使用什么技术?怎样的设计能松散耦合还能灵活改变? 怎样替换某个层而不影响整体构架?应用程序如何做各种级别的业务处理(比如事务处理)?

        构架一个Web应用需要弄明白好多问题。 幸运的是,已经有不少开发者已经遇到过这类问题,并且建立了处理这类问题的框架。 一个好框架具备以下几点:减轻开发者处理复杂的问题的负担("不重复发明轮子");内部有良好的扩展; 并且有一个支持它的强大的用户团体。 好的构架一般有针对性的处理某一类问题,并且能将它做好(Do One Thing well)。 然而,你的程序中有几个层可能需要使用特定的框架,已经完成的UI(用户接口) 并不代表你也可以把你的业务逻辑和持久逻辑偶合到你的UI部分。 举个例子,你不该在一个Controller(控制器)里面写JDBC代码作为你的业务逻辑, 这不是控制器应该提供的。 一个UI 控制器应该委派给其它给在UI范围之外的轻量级组件。 好的框架应该能指导代码如何分布。 更重要的是,框架能把开发者从编码中解放出来,使他们能专心于应用程序的逻辑(这对客户来说很重要)。 

    他们里面有很我优秀的设计理念及模式应用。比如, struts属于MVC框架,关键是要了解MVC的概念及大致原理,掌握就很容易了;而hibernate属于orm系统,属于持久层的解决方案,同样需要对ORM的概念及原理有一个总体的了解,必要时可以去查查EJB1及EJB2里面用于持久层的Entity Bean的使用。而spring属于应用程序框架,其核心是IOC容器以及AOP,把这两个核心概念(也可称为大模式)了解以后,再加上一定的内力修为,其它就都不难了。Spring中还集成了很多适用东西(不过这些东西80%的在某一个项目中可能一直用不上),比如对JDBC的封装、自己的MVC、对动态语言的简洁访问等,这些你根据自己的项目情况来选择学习,用到的时候再看看他的文档,一个项目下来应该就能把握。

    3 对于SSH的理解

    在SSH框架中,struts用来解决MVC中显示、请求控制部分,spring主要负责访问数据库DAO类的事务控制以及它被人称誉的IOC思想在业务类中的恰当运用,hibernate主要是充当数据访问层组件。由于spring对hibernate的良好支持,在DAO类主要由spring来完成,hibernate更多关注的应是O/R影射文件上的配置,如级联关系,延迟加载等如何设置才能使效率更高。见图1 (框架组合示意图)

    4 收获和问题

    4.1 actionform,PO,VO三对象的运用

    讨论最多的是actionform,PO,VO三对象的运用,本人倾向的观点是:在SSH框架中,PO和VO可以不必区分,即业务层和持久层都可以使用hibernate产生的PO对象,我暂时把对象分成actionform和po两种来分析,action 应该是actionform和po的分界点,po不能穿透业务层,突破action到达页面显示层,同样actionform也不能突破action传到后台业务、持久层。(原因:po是持久对象,到达页面后就脱离了session成为无状态(暂理解为脱管态)的对象,而hibernate的持久对象是有状态(包含数据库主键)的,无状态的对象传到后台在调用hibernate的保存方法时会出错,一定要把无状态的对象先转化成持久态对象才能保存)在action中应该对两对象进行转化,转化的方法目前我还没发现有什么非常好的方法(欢迎高手不惜赐教),最普通的就是用get(),set()方法,也可以使用struts提供的属性复制方法BeanUtils类,但这个好象只支持单个类的转化,对于集合对象不行,需要我们自己扩展。

    4.2 spring事务管理

    在配置spring的事务管理中,最好把事务控制配置在业务类上,而不要配置在DAO类(需要保证多个原子事务操作同时失败回滚时这是一种解决办法);

    4.3 action如何获取业务类

    action中如何获取业务类:写一个父类action,在父类中通过spring的webapplicationcontent获得业务类的实例。struts中的具体action继承该父类,通过调用父类的getService()直接获得业务类的实例。

    4.4 理解AOP思想

    深入理解AOP思想,我暂时感觉到的就是尽量面向接口编程,不管是域对象还是业务类或者是DAO类都设计出接口,在各方法中我们尽量传入对象的接口,这对我们重用这些方法,扩展是很有好处的。

    4.5 分页处理 level

    5 系统包划分

    posted @ 2011-05-20 17:00 哈希 阅读(310) | 评论 (0)编辑 收藏

         摘要: Eclipse快速上手Hibernate--1. 入门实例 < language="javascript" type="text/javascript">document.title="Eclipse快速上手Hibernate--1. 入门实例 - "+document.title     这篇文章主要谈谈Hibernate的入门开发,例子很简单,就是...  阅读全文

    posted @ 2011-05-20 15:30 哈希 阅读(155) | 评论 (0)编辑 收藏

         摘要: 这篇文章将教你快速地上手使用 Spring 框架. 如果你手上有一本《Spring in Action》, 那么你最好从第三部分"Spring 在 Web 层的应用--建立 Web 层"开始看, 否则那将是一场恶梦! 首先, 我需要在你心里建立起 Spring MVC 的基本概念. 基于 Spring 的 Web 应用程序接收到 http://localhost:8080/...  阅读全文

    posted @ 2011-05-17 22:23 哈希 阅读(243) | 评论 (0)编辑 收藏

    所用数据:
    SELECT a.deptno, a.employename, a.salary
      FROM t_salary a

    000001         李可                              1000
    000001         李强                              2000
    000001         杨彦军                            4000
    000002         童家道                            3000
    000002         姜文                              3000
    000002         罗文                              3000
    000003         窨嫡                              3000
    000003         童家道                            3000
    000003         童家道                            3000
    000004         于名                              4000
    SELECT A.deptno, A.employename,A.salary,
    --1 按照名称进行分区,同时按照名称进行合计 
    SUM(A.salary)OVER(PARTITION BY A.employename) AS SUM_INC_ONLY,
    --2 按照名称进行累计 
    SUM(A.salary)OVER(ORDER BY A.employename) AS SUM_INC,
    --3   和 1 效果相同 
    SUM(A.salary)OVER(PARTITION BY A.employename ORDER BY A.employename) AS SUM_INC_NAME,
    --4 按照部门分组,部门内进行合计。名称相同时进行累计 
    SUM(A.salary)OVER(PARTITION BY A.deptno ORDER BY A.employename) AS SUM_INC_DEP,
    --5 按照部门,名称分组,部门名称相同时进行合计 
    SUM(A.salary)OVER(PARTITION BY A.deptno,A.employename ) AS SUM_INC_DEP_NAM
    FROM t_salary A


    所得结果:
    DEPTNO     EMPLOYENAME     SALARY     SUM_INC_ONLY     SUM_INC     SUM_INC_NAME     SUM_INC_DEP     SUM_INC_DEP_NAM
    000002     姜文    3000    3000    3000    3000    3000    3000
    000001     李可    1000    1000    4000    1000    1000    1000
    000001     李强    2000    2000    6000    2000    3000    2000
    000002     罗文    3000    3000    9000    3000    6000    3000
    000002     童家道    3000    9000    18000    9000    9000    3000
    000003     童家道    3000    9000    18000    9000    6000    6000
    000003     童家道    3000    9000    18000    9000    6000    6000
    000001     杨彦军    4000    4000    22000    4000    7000    4000
    000004     于名    4000    4000    26000    4000    4000    4000
    000003     窨嫡    3000    3000    29000    3000    9000    3000

    posted @ 2011-05-13 17:01 哈希 阅读(168) | 评论 (0)编辑 收藏