亮's profileday-report StudyPhotosBlogLists Tools Help

day-report Study

我们是“草根开发者”,我们有“草根”的快乐,“草根”的思想,Open是我们的追求,Share是我们的思想。我们疼并快乐着!“疼就疼吧,让我疼死算了!”(武林外传,老邢台词)
  • Send a private message
  • Tell a friend
  • Add to your network

Occupation
Location
Interests
从事php开发工作5年以上。
现某日企从事基于PHP的标准品图形显示系统开发与维护。
用来存放我认识或认识我的朋友们的BLOG地址。
March 09

日本向け開発名詞定義(テスト分)

日本向けシステム開発の場合で、テスト(試験方案)に関しては、いろいろな名詞があります。その中には、テストの分類とし、何の部分を分けますか?
私の印象には、下記の4つがあるようです。

1、「正常系」----正常系とは、入力ミスなどが無く、エラーメッセージなどが一切出ず、最後まで処理が進み、 通常状態に戻るルート。

2、「準正常系」---準正常系とは、エラーメッセージなどは出るが、最終的には、処理が最後まで進まなくても、 通常状態に戻るルート。

3、「異常系」---異常系系とは、通常状態に戻れず、システムを停止、または、リセットするしかないルート。

4、「意地悪テスト」--意地悪テストとは、正常な動作(クリックを複数回連続するなど)で正常に動作することを確認する。

その4つ分類にて、システム試験方案とメッセージレーベルを分けるようです。

December 04

我身边的IT名词-200812

1-BHO(Browser Helper Object,浏览器辅助对象,简称BHO),HO是微软推出的作为浏览器对第三方程序员开放交互接口的业界标准,通过简单的代码就可以进入浏览器领域的“交互接口”(INTERACTIVED Interface)。通过这个接口,程序员可以编写代码获取浏览器的行为,比如“后退”、“前进”、“当前页面”等,利用BHO的交互特性,程序员还可以用代码控制浏览器行业,比如修改替换浏览器工具栏,添加自己的程序按钮等(见图1)。这些在系统看来都是没有问题的。BHO原来的目的是为了更好的帮助程序员打造个性化浏览器,以及为程序提供更简洁的交互功能,现在很多IE个性化工具就是利用BHO的来实现。
  Internet Explorer同普通的Win32程序没有什么两样。借助于BHO,你可以写一个进程内COM对象,这个对象在每次启动时都要加载。这样的对象会在与浏览器相同的上下文中运行,并能对可用的窗口和模块执行任何行动。例如,一个BHO能够探测到典型的事件,如GoBack、GoForward、 DocumentComplete等;另外BHO能够存取浏览器的菜单与工具栏并能做出修改,还能够产生新窗口来显示当前网页的一些额外信息,还能够安装钩子以监控一些消息和动作。
 BHO在注册表中的位置是:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects。

2-JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。类似于XML结构,但是不是使用<></>方式,而是采用“{}”进行处理,在编码时可以使用JavaScript的eval()函数对所读出的JSON字符串进行解析,并使用"."方式访问。如:json_object.name,json_object.email。
格式:{"name":"张三","password":"123456","department":"技术部","sex":"男","old":"28"}

3-JFace是建立在SWT之上的UI部件,它是SWT的扩展。JFace工具箱提供了一组功能强大的用户界面组件,开发人员可以轻松地在独立应用程序中利用这些组件,以简化常见的UI编程任务。JFace在其API和实现方面都是独立于窗口系统的,它旨在使用SWT而不隐藏它。

4-JSF(Java Server Faces),JSF全称Java Server Faces ,是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。它提供了一种以组件为中心的用户界面(UI)构建方法,从而简化了Java服务器端应用程序的开发。JSF(Java Server Faces)技术为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标签库。就像Struts框架一样,JSF定义了一套JSF标签,能够生成与JavaBean属性绑定在一起的HTML表单元素。从应用开发者的角度看,两种框架十分相似,但是JSF可能会得到更多的支持,因为 JSF是Java的标准。
较常用框架:
sun-ri,myfaces,icefaces,richfaces,seam。

5-SVG(Scalable Vector Graphics),可缩放矢量图形,是基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式。SVG的特点:基于XML,采用文本来描述对象,具有交互X和动态X,完全支持DOM。成为现在网上重要的图片格式之一,因为采用矢量图因此在缩放时可保证图形圆滑感。SVG查看工具:Adobe SVG Viewer。

6-RIA(Rich Internet Applications)富互联网应用
特点是,基于Flash的ActionScript与JavaScript提供完美界面与用户交互感。不仅可以传输文字信息也可以传输音频视频信息,另外由于生成后采用Flash对于代码保护也有一定好处。
当前RIA技术中较流行的框架有:
(1)Flex(Macromedia Flash) ----国人较常用的一种框架,国内参考资料较多;
(2)Laszlo----一种开源RIA框架技术,国外较常用,国内资料较少,在美纳斯达克NSDQU采用;
(3)其他,Avalon,Java SWT,XUL(fireFox插件使用),Bindows 

December 01

代码收集--多目录等级建立(建立指定多级目录)

<?php
function   mkdir_r($ndirName){
      $dirName   =   str_replace( "\\ ",   "/ ",   $ndirName);
      $dirs   =   explode( '/ ',   $dirName);
      $dir= ' ';
      foreach   ($dirs   as   $part)   {
              $dir.=$part. '/ ';
              if   (!is_dir($dir)   &&   strlen($dir)> 0)
                      mkdir($dir);
      }
}
?>

代码收集--生成带字体的图片

<?php
function create_chkimg($sessionid){
		try{
			$im = @imagecreate(40,20);
			$backcolor = imagecolorallocate($im, 125,125,125);
			$textcolor = imagecolorallocate($im, 255,255,255);
			imagettftext($im, 10,0,1,13, $textcolor, "inc/ANTQUAI.TTF","testing");
			imagejpeg($im, "image/checkimg/test.jpg");
		} catch(Exception $e){
			$e->getMessage();
		}
	}
?>
November 25

AJAX运行过程中5种状态及状态码说明

1- AJAX状态值与状态码区别
  AJAX状态值是指,运行AJAX所经历过的几种状态,无论访问是否成功都将响应的步骤,可以理解成为AJAX运行步骤。如:正在发送,正在响应等,由AJAX对象与服务器交互时所得;使用“ajax.readyState”获得。(由数字1~4单位数字组成)
AJAX状态码是指,无论AJAX访问是否成功,由HTTP协议根据所提交的信息,服务器所返回的HTTP头信息代码,该信息使用“ajax.status”所获得;(由数字1XX,2XX三位数字组成,详细查看RFC)
  这就是我们在使用AJAX时为什么采用下面的方式判断所获得的信息是否正确的原因。

if(ajax.readyState == 4 && ajax.status == 200) {
  putData(ajax.responseText);
}

2- AJAX运行步骤与状态值说明
  在AJAX实际运行当中,对于访问XMLHttpRequest(XHR)时并不是一次完成的,而是分别经历了多种状态后取得的结果,对于这种状态在AJAX中共有5种,分别是。
  0 - (未初始化)还没有调用send()方法
  1 - (载入)已调用send()方法,正在发送请求
  2 - (载入完成)send()方法执行完成,
  3 - (交互)正在解析响应内容
  4 - (完成)响应内容解析完成,可以在客户端调用了
  对于上面的状态,其中“0”状态是在定义后自动具有的状态值,而对于成功访问的状态(得到信息)我们大多数采用“4”进行判断。

3- AJAX运行步骤示义图
clip_image001

参考来自:readyState 5种状态(Ajax)

November 18

向Oracle中导入大规模数据方法(使用Sqlldr命令方式,秀凡宏使用)

环境:
  WindowsXp
  Oracle9i
  PLSql7.5

1-为什么要导入大规模数据?
  创建大规模数据,我个人认为有两种需求:
  (1)在没有使用其他非第三方工具时,直接使用Oracle命令方式导入的数据或由客户直接手写而成的即有数据,在这种情况下,数据大都是被做成CSV文件方式;
  (2)测试需要,测试人员在测试程序(系统)压力或缓冲以及其他测试时经常采用的方式,这种情况下需要对数据进行构造并对程序进行测试。(以前测试时遇到过需要对百万级数据测试时,就必须自己构建,千万级时建议使用C写TEXT文件实现)

2-如何创建大规模测试数据?
  根据上面所说,其中(2)项需要由测试人员自己创建,我所采用的是Excel与秀凡结合操作。
  PS秀凡作为一款非常实用的文本编辑软件由日本人开发,功能相当强大,我在创建时多采用秀凡的宏记录与块复制功能完成大规模数据创建。
  2-1 打开秀凡
  进入时由于没有注册选择第一项。
clip_image002
  2-2 在秀凡中复制一条现有数据的CSV结构
clip_image004
  2-3 复制该CSV条项,并启动秀凡宏记录功能,使用宏记录功能追加数据
    (1)复制数据项
    (2)在第一条项将光标放到最后一列
clip_image006
    (3)点击Shift+F1开始记录宏操作;
    记录宏的内容为“回车”>>“粘贴”(Ctrl+V)>>Shift+F1停止记录
clip_image008
clip_image010
    (4)点击Shift+F2执行刚才所执行的宏操作,这时就可以对数据进行创建
clip_image012
PS当数据创建100条时,采用同样方式即可快速创建项目。
    (5)对于第一项“STVSUI”项,我们可以使用Excel的自动加数的功能将数据变为“STVSUI1XXXX”,这样就不能造成数据重复插入。再采用秀凡的矩形剪切与粘贴,就可以完成不重复的万,十万级,百万级测试数据。

3-使用Oracle的Sqlldr命令将大规模数据追加到数据库中
  3-1 创建准备,使用Sqldr命令将之前所创建的数据插入数据库,需要三个文件(二个也可以,为了批处理方便追加一个BAT执行文件)
  (1)命令执行BAT文件;

sqlldr stvsui/admin@testdb control=testinsert.ctl logfile=lg_testinsert.log commit_discontinued = true

  PS可使” commit_discontinued”参数来确定是否直接进行Commit,默认为“FALSE”。
  另外,对于Oracle数据库,Oracle8时采用sqlldr80命令,不成功时请使用该命令

(2)数据定向与表结构写向CTL文件;

LOAD DATA
INFILE 'test.csv'
INTO TABLE tb_testinsert
FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(
PID, -- 形状番号
FID, -- 大分類名称ID
IID, -- インデックス名称ID
SID, -- 小分類名称ID
CID, -- カテゴリー名称ID
PNAME -- 部品名称
)

  (3)创建的测试数据CSV文件
clip_image014

  3-2 进入Windows的命令行方式,执行BAT文件
  这时数据就会被追加进入,并且追加的结果被记录到指定的lg_testinsert.log文件中。

November 03

如何对编写的JavaScript实现Debug的功能---使用fireFox


1- 环境
windowsXp
fireFox3.0.3

2- 实现javaScript的Debug的两种方法
  对JavaScript实现Debug的功能大体上有两种方法:
  (1) 即是安装微软的InterDev开发组件,并安装ScriptDebug功能,即可对网页中的javascript进行Debug功能;
  (2) 使用fireFox与fireBug插件实现对javaScript的Debug功能。
  经过总结,后者,即在fireFox中使用fireBug插件来实现对javaScript的Debug功能相对容易些(因为fireFox采用绿色与插件方式,可以减少对系统中不必要的dll的安装。),本次我将讲解如何使用fireFox+fireBug对javaScript的Debug。

3- fireFox安装与插件获得(日文版)
  3-1 从mozilla公司下载最新版fireFox3.03版本并进行安装;
clip_image002
clip_image004
clip_image006
  3-2 安装后点击[工具]->[插件],打开插件菜单
clip_image008

  3-3 选择搜索插件,在搜索中输入“fireBug”
clip_image010
  3-4 点击找到的fireBug插件,并追加到fireFox中
clip_image012
  安装后,fireFox会提示出重启fireFox的信息,这时点击重启即可,这样fireBug插件就被安装到fireFox中了。
clip_image014
  3-5 重启后,需要对fireBug的有效化设定

4- 使用fireBug对javaScript进行Debug处理
  4-1 写一个测试用的html网页
test.html

<html>
<head>
<title>fireBug Debug Test</title>
<script language="javascript">
var var_1="hello";
var var_2="fireBug";

function showAlert(){
	alert(var_1+" "+var_2+"!");
}
</script>
</head>
<body>

<button type="button" onclick="showAlert();">showMessage</button>

</body>
</html>


  4-2 点击“clip_image016”按钮,有效化fireBug与跟踪设置的情况
image
  点击“连接”设置,并在其中的设置相关的信息中进行运行。
  PS打开fireFox,如果在第3步中安装成功则会在fireFox中的右下角有一个“
clip_image016[1]”按钮了。
clip_image020
  点击[选择的项目功能有效]按钮,对该页面中设置Debug环境,设置后,再次打开“连接”选项,这时该界面就为空白即表示已有效的状态了。
  4-3 对script进行Debug
  点击[Script]选项,在[Script]中可以显示相被加载的javaScript内容,点击鼠标左键,在指定的需要查看的位置设置断点。
clip_image022
clip_image024
  4-4 运行,指行的事件的元素[showMessage]按钮。
image
  这时可以发现javaScript可以进行了跟踪,在右边的界面中,有单步,进入等设置,开发人员可以根据不同的方式进行查看。
clip_image028
  4-5 对于网页中使用src包入的javaScript,fireBug也可以进行跟踪处理,但是直接在网页中不能查看到,这时就必须进入查看的javascript.js文件中设置断点。
  这样我们就可以使用fireFox方便的对javaScript进行Debug功能了,但是这仅仅是fireBug的一小部分,fireBug还可以将html按照dom方式进行读取查看,对html中的各个元素进行查看,对header信息进行读取及CSS层仕样查看。

October 15

PHP+IIS下访问Oracle9i不成功的几种处理方法(含php_oracle.dll加载不成功)

1-环境
  Php4.3.8
  WinXp
  IIS5.1
  Oracle9i

2-动态链接库加载不成功的错误情况
   问题情况说明:
      在配置PHP+IIS与Oracle时会出现“Unable to load dynamic library 'C:\php\ext\php_oracle.dll”或“php_oci8.dll”加载不成功的错误提示信息,这种原因主要有以下几方面。
  
问题解决:
      (1) 确认ext(扩展目录)在php.ini文件中配置是否正确;
      (2) 将php目录下的php4ts.dll文件复制到system32目录中;
      (3) 将php的ext目录中的php_oracle.dll复制到system32目录中;
      (4) 将oracl\bin\oci.dll与ociw32.dll文件复制到system32目录中
      (5) 重启IIS服务器,查看phpinfo的情况,完成确认

3-动态连接加载成功但连接不上Oracle服务器
    问题情况说明:
       在完成了IIS下加载Oracle后,在IE中使用动态页网访问服务器时,仍会出现,访问被拒绝访问的情况,对于这种情况,主要是由于IIS中采用了匿名用户,当用户使用IE进行访问时,IIS会将该用户默认归属到“IUSR_HostName”中,在IIS中使用该用户进行访问,在IIS服务器设置中被默认设置,由于该默认用户造成对Oracle9i目录没有相应的访问权限,造成不能访问。
clip_image002
PS:若将该设置去掉后,其他用户将不能通过网络访问该WEB站点。

    解决方法:
      (1)为WindowsXP的NTFS磁盘添加安全选项
           打开“控制面板->管理工具->本地安全策略”将“安全设置->本地策略->安全选项”里的“网络访问:本地帐户的共享和安全模式属性”使用
“经典-本地用户以自己的身份验证”
      (2)为Oracle所在分区追加NTFS属性,并设置访问权限
          (2-1)确定ORACLE_HOME 路径所在的分区格式是:NTFS格式;
          (2-2)在分区属性->安全中,将IUSR_HostnName与IWMA_HostName用户追加到该Oracle目录中,并赋予“读取与运行”权限;
          (2-3)在分区属性->安全中,将Authenticated Users (如果没有的话添加该用户)看下面的属性,将Read and Execute (读取和运行)的勾去掉,然后又勾上,确定后重新启动机器

October 14

NetBeans For PHP的Debug环境配置

1-环境:
  WindowsXp
 
Apache 2.2.9
  php5.2.6
  XDebug2.0.3
  NetBeans IDE For PHP 6.1

2-NetBeans For PHP说明
  对于NetBeans For PHP,当前仅能对PHP5以上版本进行检查处理与调试,只能使用XDebug的2.0以上版本。

3-NetBeans For PHP的调试(Debug)环境配置
  3-1 下载XDebug2.0.X的dll文件
  3-2 将从Xdebug网站上下载到的php_xdebug-2.0.3-5.2.5.dll文件复制到自定义的xdebug目录中(如:php5/xdebug)
  3-3 打开php.ini文件,配置xdebug的属性情况

[XDebug]
xdebug.remote_enable=1
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
zend_extension_ts=C:/php5/xdebug/php_xdebug-2.0.3-5.2.5.dll

  3-4 使用phpinfo.php查看XDebug的配置情况,如下图
clip_image002
clip_image004
  看到上面的信息后即表示XDebug已在PHP中配置成功

4-
使用NetBeans IDE For PHP进行调试
  4-1 新建立一个PHP项目
clip_image006
  4-2 配置项目目录与代码目录相关信息
clip_image008
  4-3 在弹出的代码编辑中输入相应的代码信息
clip_image010
  4-4 在需要调试代码行处,点击左侧,追加断点
clip_image012

  4-5 点击菜单中clip_image014按钮进行调试
clip_image016
  4-6 这时NetBeans会启动相应浏览器,并进入调试模式。
clip_image018
clip_image020

August 29

Dojo学习笔记(2)---- Dojo事件绑定

Dojo 1.1.1
对于Dojo的事件绑定有两种,一种为html标准元素绑定,一种为dojo所提供的轻量级元素事件绑定。
1-什么是dojo的轻量级元素,什么是html标准元素?
1dojo轻量级元素,即,对于html标签中使用dojo的属性再次决定该标签的dojo元素属性(使用dojotype属性),代码如下:

<div dojotype="dijit.form.Button" id="helloButton">
     hello,Button
</div>

说明:在上面的div中使用dojotype来重新决定该标签元素的属性为“dijit.form.Button”即,一个按钮,生成后显示为。
clip_image002[4]
2html标准元素,即,如上例中在编写html时如果要产生Button按钮,有两种处理方式,一种是使用<button>标签元素,另一种则使用form中的<input>,代码如下:

<!-- 使用Button元素 -->
<button id="button1">
        helloButton
</button>
<!-- 使用form的input元素 -->
<input type="button" id="button2" value="helloButton"/>

2-Dojo中如何绑定dojo元素与html标准元素事件
  2-1 Dojo元素,html元素与事件绑定标准步骤(如何加载与配置dojo不在说明)
     (1)根据ID获取元素(使用dojo.byId获取元素)
     (2)定义事件或对象方法(javaScript自定义)
     (3)绑定元素与事件(使用dojo.connect将元素与事件与调用方法(或对象方法)进行绑定)
     (4)引入dojo元素对象(使用dojo.require)
     (5)确定dojo元素类型(dojo元素时,在html标签中使用dojotype属性确定dojo元素)

  2-2 dojo元素与事件绑定实例
[1-dojoevent(dojo).html]

<html>
    <head>
        <title>Dojo Event</title>
        <meta content="text/html; charset=UTF-8">
        <script type="text/javascript">
            var djConfig = {
                isDebug: true,
                parseOnLoad: true,
                bindEncoding: "UTF-8"
            };
        </script>
        <script type="text/javascript" src="js/dojo/dojo/dojo.js"></script>
        <script>
        /* 加载dojo的dijit.form.Button元素,可以对标记dojotype的元素进行解释 */
            dojo.require("dijit.form.Button");
            var init = function(){
	/* 获取元素ID,并与事件响应相对应 */
                var helloButton = dojo.byId("dojobutton");
                dojo.connect(helloButton, "onclick", "showButton");
            }
            function showButton(){
                alert("Dojo Event Test!");
            }
            dojo.addOnLoad(init);
        </script>
    </head>
    <body>
        <h1>DojoEvent Test</h1>
	<!-- 对div元素定义dojotype,使其变为Button,并设定按钮名称 -->
        <div dojotype="dijit.form.Button" id="dojobutton" label="Press Me"/>
    </body>
</html>

clip_image004
  2-3 html标准元素与事绑定实例
[1-dojoevent(html).html]

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Dojo Event</title>
        <script type="text/javascript">
            var djConfig = {
                isDebug: true,
                paserOnLoad: true
            };
        </script>
        <script type="text/javascript" src="js/dojo/dojo/dojo.js"></script>
        <script>
            function init(){
		// 根据ID获取Html元素
                var Button1 = dojo.byId("button1");
                var Button2 = dojo.byId("button2");
		// 绑定对象与事件响应
dojo.connect(Button1, "onclick", "showButton"); dojo.connect(Button2, "onclick", "showButton"); } // 事件响应方法
function showButton(){ alert("Dojo Event Test!"); } // 初始化加载
dojo.addOnLoad(init); </script> </head> <body> <h1>DojoEvent Test</h1> <button id="button1">helloButton</button> <input type="button" id="button2" value="helloButton"/> </body> </html>

clip_image006

Dojo学习笔记(1)----什么是Dojo,如何安装使用

Dojo 1.1.1
1-什么是Dojo
Dojo(日文解释:道场),Dojo是一个非常强大的面向对象的JavaScript工具箱,开发人员可以很方便的根据OO方式进行开发编码,它可以很方便的在短时间内构建重量级的JS应用,提供了强大的交互功能与界面编辑处理功能,可很方便的处理Ajax请求与漂亮的交互界面,满足Web2.0的要求。

2-Dojo
如何安装与使用?
  2-1下载下安装
  Dojo可以从
http://dojotoolkit.org/主站中下载到,将解压后的代码放到项目中相应目录即可。
clip_image002
  2-2 Dojo的使用需要按照以下顺序进行使用。为了保证Html被载入后,保证Dojo中的如视图对应“widget”到网页中的对象,因此需要遵循以下顺序进行使用。
    2-2-1 Dojo编码调用顺序
             (1)设定djConfig变量;
             (2)加载dojo.js文件;
             (3)执行dojo.require加载相应Dojo功能;
             (4)定义初始化函数init;
             (5)使用Dojo的addOnload调用初始化函数。Dojo.addOnload(init)。
    2-2-2 一个简单的Dojo应用程序(目录存放方式见上图)
[index.html]

<html>
<head>
<title>Dojo Toolkit Test Page</title>
<meta content="text/html; charset=UTF-8">
<!-- 1--配置dojo启动属性-->
<script type="text/javascript">
var djConfig = {
isDebug: true,
parseOnLoad: true,
bindEncoding: "UTF-8"
};
</script>
<!-- 2--加载dojo基本对象-->
<script type="text/javascript" src="js/dojo/dojo/dojo.js">
</script>
<script type="text/javascript">
// 3--加载相应工具包
dojo.require("dijit.form.Button");
dojo.require("dijit.TitlePane");

// 4--定义初始化函数
var init = function(){
var node = dojo.byId("testHeading");
dojo.connect(node, "onclick", function(){
dojo.byId("testHeading").innerHTML = "Hello,DojoWorld!";
});

var helloButton = dojo.byId("helloButton");
dojo.connect(helloButton, "onclick", "helloPress");

console.log("Require is done!");
}
function helloPress(){
console.log("Hello,Dojo World!");
}

// 5--使用dojo.addOnLoad调用初始化函数
dojo.addOnLoad(init);
</script
>
</head>
<body>
<!-- this is a Typical WebPage starting point ... --><h1 id="testHeading">Dojo Skeleton Page</h1>
<div id="contentNode">
<p>
<button dojotype="dijit.form.Button" id="helloButton">
hello,Button
</button>
</p>
</div>
</body>
</html>

clip_image004
3-参照实例说明dojo使用
  3-1 djConfig的设定
    3-1-1 djConfig定义方式
    在dojo中加载dojo.js前需要对dojo相关环境进行配置,在dojo中有两种定义方式,一种是定义djConfig方式,另一种是在加载dojo.js时加入djConfig属性方式。
            (1)定义djConfig方式,如上例中

<!-- 1--配置dojo启动属性-->
<script type="text/javascript">
var djConfig = {
isDebug:true,
parseOnLoad:true,
bindEncoding:"UTF-8"
};
</script>

           (2)加载时定义方式,代码如下

<!-- 2--加载dojo基本对象-->
<script type="text/javascript" src="js/dojo/dojo/dojo.js" djConfig="parseOnLoad: true, isDebug:true"></script>

    3-1-2 djConfig的参数
    一个完整的djConfig对象定义如下(值均为dojo的默认值)

<script type="text/javascript">
var djConfig = {
isDebug: false,
debugContainerId: "",
bindEncoding: "",
allowQueryConfig: false,
baseScriptUri: "",
parseWidgets: true,
searchIds: [],
baseRelativePath: "",
libraryScriptUri: "",
iePreventClobber: false,
ieClobberMinimal: true,
preventBackButtonFix: true,
parseOnLoad: false
};
</script>

(1)isDebug:打开dojo的debug窗体;
(2)debugContainerId:默认为空,即让dojo直接使用document.write输出,这样可能会破坏页面的布局,可以指定一个html的元素ID作为输出;
(3)bindEncoding设置默认的bind请求的编码方式(AJAX传递等)
(4)allowQueryConfig个属性指明 dojo是否允许从页面url的参数中读取djConfig中的相关属性,当值为true时,dojo会优先从url参数中读取djConfig的其他属性,
比如:http://server/dojoDemo.htm?djConfig.debugContainerId=divDebug
(5)baseScriptUri使用URI方式定义dojo的工作路径一般不需要设置,dojo会自动根据你引用dojo.js的路径设置这个值,比如,<script type="text/javascript" src="../dojo/dojo.js"></script>,自动获取的值便是 ../dojo/
如果你有多个工程需要同时引用dojo.js的话,建议也把dojo当作一个独立的工程,引用的时候采用绝对路径就可以了
(6)parseWidgets这个是可以控制dojo是否自动解析具有dojoType的html元素为对应的widget,如果你没有使用任何Widget,建议设置为false以加快dojo的加载速度。
(7)searchIds这是一个字符串数组,定义了所有需要解析为widget的html元素的ID,如果ID不在其中的html元素是不会被解析的,当数组为空数组时,则所有具有dojoType的元素都会被解析。
(8)baseRelativePath采用绝对路径方式定义dojo的路径,如:"c:/dojo"
(9)libraryScriptUri设定dojo其他工具包的路径
(10)parseOnLoad是否可以使用dojo.addOnLoad预先加载相应dojo对象与视图,如上例中。若去掉该项,则运行后,Button的效果将为默认form按钮。
(11)iePreventClobber未知
(12)ieClobberMinimal未知
(13)preventBackButtonFix未知
(14)parseOnLoad是否使用预加载方式

3-2 dojo.js的加载
      dojo.js的加载可以分两种,一种是加载dojo后,放到工作路径中指定方式。

<script type="text/javascript" src="js/dojo/dojo/dojo.js"></script>

      另一种为使用URL指定方式,可以直接指定AOL链接

<script type="text/javascript" src="http://o.aolcdn.com/dojo/0.4.3/dojo.js "></script>

3-3 dojo.requrie的实行
      像java一样根据业务的不同加载相应的dojo工具包则就需要使用dojo.require进行加载。
      *dojo使用空间命名方式,对于加载时,即使用相应目录为加载。如:
clip_image006
      加载时有两种方式:一种为完全加载,另一种为部分加载
      完全加载,即,加载dojo指定包中所有工具

dojo.require("dijit.form.*");

     部分加载,即,加载dojo指定包中指定工具

dojo.require("dijit.form.Button");

3-4 初始化函数定义
      初始化函数定义需要使用dojo的addOnLoad进行调用,用来处理那些Dojo的界面情况对带有dojotype的元素进行预先解释,否则带有dojotype的元素将仍保持使用html标准方式。
3-5 使用addOnLoad调用初始化函数
      使用dojo.addOnLoad(),指定html页面读入后调用的函数。因为对于html的load来说没有完成的话,Widget对象不能被实例化因此需要使用预定义函数进行处理。

dojo.addOnLoad(object,"functionname");

      *当不读入时使用addOnUnload函数。

August 25

日系开发常用工具集

1-实用开发工具(因Eclipse作为非常普遍的开发工具,故不再提出)
        (1)ZendStudio----PHP专业编辑器
        (2)NetBeans----PHP,JAVA,JavaScript,XML,HTML,DHTML
        (3)Aptana_Studio----日系免费WEB开发环境

2-JavaScript调试工具:(Debug+Dom浏览)
  2-1 IE版
        (1)Internet Explorer Developer Toolbar----IE版HTML,DOM浏览查看工具(不含JavaSciprt调试)
        (2)Windows Script Debugger----IE版JS,VBS调试工具
  2-2 FireFox版
        (1)FireBug----JavaScript调试(Debug)工具

3-CSV编辑器
        (1)ListPad----CSV编辑工具
        (2)CS Editor Free版----CSV编辑工具

4-Windows日志(LOG)查看工具
        (1)tail for Windows----Windows的LOG日志查看工具

5-数据库操作工具
        (1)CSE----数据库设计查询工具(较常用)
        (2)黒猫 SQL Studio----通用版Sql开发环境,支持多种数据库ODBC

6-HttpHeader查看工具
        (1)ieHTTPHeaders----查看HTTP传递中Header信息情况

7-JavaScripts框架
       (1)Dojo-------------成熟的JS框架体系,JS的OO编程风格,具备WEB2.0特性,并带有界面层仕样分离库可方便开发界面与交互;
       (2)Prototype------JS原型框架体系 
August 19

Oracle9将服务(数据库)删除(Oracle9i日文版)

1-环境
  WindowsXp(Sp2)
  Oracle9i
  PLSQL
*说明:删除Oracle的服务(数据库)有两步操作,一是删除服务与数据库,二是删除服务的网络连接。


2- 删除原有服务(数据库)
  2-1 删除原有服务(数据库)
clip_image002
  选择其中的“データベースの削除”项目,在弹出的对象框中先择要删除的服务(数据库名)
clip_image004

clip_image006
clip_image008clip_image010
clip_image012
clip_image014
  2-2 删除原有服务网络连接
    (1)打开Oracle企业管理器并选择“本地方式起动”
clip_image016
clip_image018
    (2)选择刚才被删除的服务(数据库)点需“右键”,在弹出的菜单中选择“删除”。
clip_image020
    (3)收到是否删除的提示信息后点击“是”删除服务网络连接,完成服务(数据库)的撤底删除。
clip_image022

Oracle9将备份数据库导入当前数据库中操作(日文版Oracle9i)

1-环境
  WindowsXp(Sp2)
  Oracle9i
  PLSQL
*说明:此文档用于数据库备份文件导入新数据库时使用,若服务名相同则导入会出现“重合/一制性”制约导致导入失败,需要新建一个服务(数据库),在该空服务(数据库)基本上恢复数据库数据。

2-将数据Dump文件复制并放到指定位置
clip_image002

3-打开Oracle数据库管理工具(Database Configuration Assistant)创建Oracle新服务(数据库)
   *删除服务(数据库时也需使用该工具)
  3-1 打开Oracle数据库管理工具,新建服务(数据库)
clip_image004
clip_image006
  3-2 数据库操作类型
clip_image008
  3-3 数据库情况(数据仓库)

clip_image010
  3-4 新数据库服务名(数据库名)
clip_image012
clip_image014
  3-5 数据库属性设置
      *设定新数据库相关参数信息。
      ①(1)设定缓存处理可大些100MB(图3.1.1)
      ②(2)设定语言及信息(图3.1.2)
      ③(3)设定数据库排序空间(图3.1.3)
clip_image016
(图3.1.1)
clip_image018
(图3.1.2)
clip_image020
(图3.1.3)

  3-6 数据库设置显情况显示
clip_image022
clip_image024
clip_image026
  3-7 新建数据库中
clip_image028
clip_image030
  3-8 设定新服务(数据库)管理者密码
clip_image032
完成新建Oracle服务(数据库)

4- 使用Oracle9i的企业管理工具查看新建服务(数据库)情况并建立导入数据库相关信息
   *因为Oracle导出的数据库必须使用相同用户名与空间,因此需要建立相同的导出时的表空间名与用户。(下面就是讲述)
  4-1 打开Oracle9i企业管理工具
clip_image034
选择“本地独立”方式
clip_image036
进入企业管理工具界面
clip_image038

  4-2 选择新建的服务名(数据库),“TESTIMP”
点击左边的“+”,在出现的数据库登录界面中输入System与连接方式。
clip_image040clip_image042

  4-3 打开存储空间项建立新数据库所使用的空间
clip_image044
    (1)在表空间子节按右键,在弹出的菜单中选择“新建”
clip_image046
    (2)输入新表空间名称“USR”并分配该表空间大小“2000MB”(随数据库大小而定),创建新表空间
clip_image048clip_image050
clip_image052

  4-4 打开用户管理,新建导入数据库所使用的用户名并分配新建的表空间
clip_image054
    (1)在安全,用户管理中按右键,在弹出的菜单中选择“新建”
clip_image056
    (2)在弹出的界面中输入用户名并选择刚才建立的表空间
clip_image058
    (3)设定用户规则(DBA,管理员)并设定管理权限
clip_image060
    (4)设定系统规则(管理员权限)
clip_image062
    (5)设定该用户指定表空间使用情况
clip_image064
clip_image066
  4-4 使用新建的管理员用户以管理者身份,重新登陆服务(数据库)确认
clip_image068
clip_image070
clip_image072

5-使用Oracle9i导入命令将数据导入新服务(数据库)中
  5-1 在“运行”里输入“cmd”进入命令行方式
clip_image074
  5-2 使用导出的用户名
  imp tempusr/temp@testimp FILE=C:\1-cssweb_data_070604\cssweb_data_070604.dmp LOG=c:\imp.log FULL=Y IGNORE=Y

clip_image076

  6- 使用PLSQL登陆并查看数据库导入情况

JavaScript概要

1-加载JavaScript方法
  1-1 直接加入html方式(头文件定义)

<script language="Javascript">
<!--
document.writeln("这是Javascript!采用直接插入的方法!");
-->
</script>

  在这个例子中,我们可看到一个新的标签: <script>……</script>,而<script language="Javascript”> 用来告诉浏览器这是用Javascript编写的程序,需要调动相应的解释程序进行解释。
  HTML的注释标签<!--和-->:用来去掉浏览器所不能识别的Javascript源代码的,这对不支持 Javascript 语言的浏览器来说是很有用的。
  //-Javascript结束:双斜杠表示 Javascript的注释部分,即从//开始到行尾的字符都被忽略。 至于程序中所用到的document.write()函数则表示将括号中的文字输出到窗口中去, 这在后面将会详细介绍。 另外一点需要注意的是,<script>……</script>的位置并不是固定的,可以包含在<head>......</head> 或<body>.....</body>中的任何地方。
  1-2 引用JS文件方式
  如果已经存在一个Javascript源文件(以js为扩展名),则可以采用这种引用的方式,以提高程序代码的利用率。其基本格式如下:在网页中可以这样调用程序:

<script src="Script.js" language="Javascript"></script>

2-JavaScript的注释
  2-1 单行注释方式:“// 文本”;
  2-2 多行注释方式:“/* 文本 */”

3-JavaScript的过程控制
  3-1 选择结构
  用来指明两种程序流方向,在程序中创建一个交叉点(像岔路)。在 Jscript 中有四种选择结构可用。
  (1)单一选择结构(if),
  (2)二路选择结构(if/else),
  (3)内联三元运算符 ?:
  (4)多路选择结构(switch)。
  3-2 循环结构
  使用循环结构来指明当某些条件保持为真时要重复的动作。当控制语句的条件得到满足时(通常在某些迭代的特定数字后),控制跳过循环结构传递到下条语句。在 Jscript 中有四种循环结构可用。
  (1)在循环的开头测试表达式(while)
  (2)在循环的末尾测试表达式(do/while),
  (3)对对象的每个属性都进行操作(for/in),
  (4)由计数器控制的循环(for)。

4-判断对象或变量是否存在;

if(typeof(x) == “undefined”){
  alert("存在");
} else {
alert("不存在");
}

5-判断对象是否有对应属性;

if("prop" in someObject){
  alert("存在prop属性");
} else {
alert("在prop属性"); }

6-JavaScript变量与对象

var str1 = "this is String1"; // 字符串变量
var str2 = "this is String2"; 
var objstr1 = new String(str1); // 字符串对象
var objstr2 = new String(str2); 
if(str1 == str2){
alert("Same");
}
// 按值判断
if(objstr1.valueOf() != objstr2){
alert("No Same");
}

7-数组

var myArray = new Array(3);
myArray[0] = "Hello"
myArray[1] = "JavaScript"
myArray[2] = "World!"

8-JavaScript的11个内置对象
(1)Array--------数组对象
(2)Boolean-----布尔对象
(3)Date---------日期时间对象,
(4)Function---函数定义
(5)Global------全局定义
(6)Math--------科学计算函数(PI,sin,pow等)
(7)Number----数值对象
(8)Object------对象
(9)RegExp----正则表达对象
(10)Error-----错误对象
(11)String-----字符串对象

9-JavaScript创建自定义对象方法
(1)自定义构造器创建对象(类)

// 创建对象构造器并传递变量 
function person(v_name, v_sale, v_sexy){ this.name = v_name; // 类变量name this.sale = v_sale; this.sexy = v_sexy; this.today = new date(); // 内部变量 this.toString = personTostring; // 对象方法指定 }
// 对象指定方法实现
function personTostring(){
return "Name :"+this.name+"sale"+this.sale+"sexy"+this.sexy; }
使用时:
var personal1 = new personal("stven","2300","1");
alert(personal1.toString());

(2)继承内置原型创建对象prototype
对于每个JavaScript内置对象中都存在一个叫prototype的方法该方法就是对指定内置对象中附加相应性性与方法的构造函数(反射)
如,在String对象中追加trim函数

String.prototype.trim = function(){
  return this.replace (/(^\s*)|(\s*$)/g, "");
}
使用时:
var String1 = " testdd ";
String1.trim();

10-强制类型比较
  在JavaScript中采用自动类型转换方式(像PHP),若要确保真正意义上的相同,并对比类型采用“===”进行判断处理。

"100" == 100      // true
false == 0        // true
?g100?h === 100   // false
false ===0        // false
August 13

八款JS框架介绍及比较(转)

Dojo
    Dojo 是目前最为强大的JS框架,它在自己的 Wiki 上给自己下了一个定义,Dojo 是一个用 JavaScript 编写的开源的DHTML工具箱。Dojo 很想做一个“大一统”的工具箱,不仅仅是浏览器层面的,野心还是很大的。Dojo 包括 Ajax、Browser、Event、Widget 等跨浏览器 API,包括了 JS 本身的语言扩展,以及各个方面的工具类库,和比较完善的 UI 组件库,也被广泛应用在很多项目中,他的 UI 组件的特点是通过给 HTML 标签增加 TAG 的方式进行扩展,而不是通过写 JS 来生成,Dojo 的 API 模仿 Java 类库的组织方式。用 Dojo 写 Web OS 可谓非常方便。Dojo 现在已经 4.0 了,Dojo 强大的地方在于界面和特效的封装,可以让开发者快速构建一些兼容标准的界面。
    优点:库相当完善,发展时间也比较长,功能强大,据说利用 Dojo 的 io.bind() 可以实现 comet 看见其功能强大非一般,得到 IBM 和 SUN 的支持。
    缺点:文件体积比较大,200多KB,初次下载相当慢,此外,Dojo 的类库使用显得不是那么易用,JS语法增强方面不如 Prototype

Prototype
    它是一个非常优雅的 JS 库,定义了 JS 的面向对象扩展,DOM 操作API,事件等等,以 Prototype 为核心,形成了一个外围的各种各样的 JS 扩展库,是相当有前途的 JS 底层框架,值得推荐,感觉也是现实中应用最广的库类(RoR 集成的 AJAX JS 库),之上还有 Scriptaculous 实现一些JS组件功能和效果。
    优点:基本底层,易学易用,甚至是其他一些js特效开发包的底层,体积算是最小的了。
    缺点:如果说缺点,可能就是功能是他的弱项

dScriptaculous
    Scriptaculous 是基于prototype.js 框架的 JS 效果。包含了 6 个 js 文件,不同的文件对应不同的 js 效果,所以说,如果底层用 prototype 的话,做js效果用 Scriptaculous 那是再合适不过的了,连大名鼎鼎的 digg 都在用他,可见不一般
    优点:基于prototype 是最大的优点,由于使用 prototype 的广泛性,无疑对用户书锦上添花。
    缺点:刚刚兴起,需要时间的磨练

Yui-ext
    基于 Yahoo UI 的扩展包 yui-ext 是具有 CS 风格的 Web 用户界面组件,能实现复杂的 Layout 布局,界面效果可以和 backbase 媲美,而且使用纯 javascript 代码开发。真正的可编辑的表格 Edit Grid,支持 XML 和 Json 数据类型,直接可以迁入 Grid。许多组件实现了对数据源的支持,例如动态的布局,可编辑的表格控件,动态加载的 Tree 控件、动态拖拽效果等等。从 1.0 beta 版开始同 Jquery 合作,推出基于 jQuery 的 Ext 1.0,提供了更多有趣的功能。
    优点:结构化,类似于 java 的结构,清晰明了,底层用到了 Jquery 的一些函数,使整合使用有了选择,最重要的一点是界面太让让人震撼了。
    缺点:太过复杂,整个界面的构造过于复杂。

Jquery
    JQuery 是一款同 prototype 一样优秀 js 开发库类,特别是对 css 和 XPath 的支持,使我们写 js 变得更加方便!如果你不是个 js 高手又想写出优秀的 js 效果,那么 JQuery 可以帮你达到目的!并且简介的语法和高的效率一直是jQuery追求的目标。
    优点:注重简介和高效,js 效果有 yui-ext 的选择,因为 yui-ext 重用了很多 jQuery 的函数
   缺点:据说太嫩,历史不悠久。

Mochikit
    MochiKit 自称为一个轻量级的 js 框架。MochiKit 主要受到 Python 和 Python 标准库提供的很多便利之处的启发,另外还缓解了浏览器版本之间的不一致性。其中的 MochiKit.DOM 尤其方便,能够以比原始 JavaScript 更友好的方式处理 DOM 对象。MochiKit.DOM 大部分都是针对 XHTML 文档定制的,如果与 MochiKit 和 Ajax 结合在一起,使用 XHTML 包装的微格式尤其方便。Mochikit 可以直接对字符串或者数字格式化输出,比较实用和方便。它还有自己的 js 代码解释器
    优点:MochiKit.DOM 这部分很实用,简介也是很突出的
   缺点:轻量级的缺点

Mootools
    MooTools 是一个简洁,模块化,面向对象的 JavaScript 框架。它能够帮助你更快,更简单地编写可扩展和兼容性强的 JavaScript 代码。Mootools 跟 prototypejs 相类似,语法几乎一样。但它提供的功能要比 prototypejs 多,而且更强大。比如增加了动画特效、拖放操作等等。
    优点:可以定制自己所需要的功能,可以说是 prototypejs 的增强版。
    缺点:不大不小,具体应用具体分析。

Moo.fx
    Moo.fx是 一个超级轻量级的 javascript 特效库(7k),能够与 prototype.js 或mootools 框架一起使用。它非常快、易于使用、跨浏览器、符合标准,提供控制和修改任何 HTML 元素的 CSS 属性,包括颜色。它内置检查器能够防止用户通过多次或疯狂点击来破坏效果。moo.fx整体采用模块化设计,所以可以在它的基础上开发你需要的任何特效。
    优点:小块头有大能耐
    缺点:这么小了,已经不错了

引用来自:冷眼 - 技术专栏 http://www.blogjava.net/kent/articles/202855.html

Apache 下配置脚本和可执行程序功能解决可执行权限问题实现IIS的“脚本和可执行文件”功能

环境:
  WindowsXp(Sp2)
  Apache2.0.55
  PHP4.4.1(dev)
  我们知道IIS可以对指定Web-Application配置“脚本和可执行文件”项,该项配置后,对于该Web-App中所有脚本与可执行程序用户都可以通过IE经过服务器访问,这种方式主要是用来处理,某可执行文件解释其他语言或导向时使用。(如下图)
clip_image001
IIS中可以通过设置“脚本和可执行文件”解决可执行文件的运行权限,但是Apache中应该如何设置呢?答案是肯定的也是有的,只需要将可执行文件放到Apache中对应cgi-bin中即可
clip_image003
clip_image005
这样就实现了IIS中的“脚本和可执行文件”,可执行文件权限问题。

August 12

如何在Windows中查看端口及对应的应用程序

环境:WindowsXp(sp2)
简要说明:使用“netstat”查看端口对应PID(应用程序执行线程),再使用“tasklist”查看PID对应的应用程序。
  1-查看端口开放及对应PID情况
  方法:使用系统命令“netstat”处理。
  Netstat
命令用法
  命令格式:Netstat -a -e -n -o -s-an
  -a 表示显示所有活动的TCP连接以及计算机监听的TCP和UDP端口。
  -e 表示显示以太网发送和接收的字节数、数据包数等。
  -n 表示只以数字形式显示所有活动的TCP连接的地址和端口号。
  -o 表示显示活动的TCP连接并包括每个连接的进程ID(PID)。
  -s 表示按协议显示各种连接的统计信息,包括端口号。
  -an 查看所有开放的端口
clip_image002

2-
使用tasklist查看PID对应程序
clip_image004
  查看相应的程序后将该程序的服务停止即可将相应的端口释放。

August 08

IIS5+PHP4安装说明(资料整理)

环境:
  WindowsXp(Sp2)
  PHP4.3.8
  IIS5

  因为一直在使用Apache做为WebServer所以有些忘记IIS下是如何配置的了,下面我将根据从网上找到的资料对IIS下安装PHPISAPI方式)进行说明。
  注:因为刚开始配置PHP的时候采用的是解释方法,即直接采用.php扩展名用php.exe解释的方式,但配置后会因为Oracle.dll加载不上造成项目不可使用的情况,因此采用了ISAPI方式。

1- 安装IIS5(不再详细说明了)
2- 准备PHP环境进行配置
  2-1 将PHP解释文件放到你所想安装的目录中(本文以C:\PHP4.3.8为例);
  2-2 把C:/PHP4.3.8下面的php.ini-dist文件复制到Windows目录下,并改名成php.ini;
      *配置Extension与Session时需要打开该ini文件采用绝对路径(全路径)方式书写;
  2-3 把C:/PHP4.3.8/php4ts.dll复制到C:/Windows/system32目录下;
  2-4 点开始/运行,输入mmc启动Windows综合管理台,选择菜单中“文件”->“管理追加与删除”在弹出的窗口中点击[添加]按钮,在后弹出的窗口中选择“计算机管理”,点击[添加]按钮(点完后窗口不消息),再点击[关闭]即完成添加;
      *这时会在前一窗口中显示出被添加的管理项。
  2-5 选择2-4所添加的“计算机管理”项,点击“服务与程序”项,选择“Internet服务项”;
  2-6 在计算机管理窗口上展开“服务和应用程序”->“Internet信息服务”,在“默认Web站点”上点鼠标右键,选属性,这时系统弹出“默认Web站点属性”窗口;
  2-7 在“默认Web站点属性”窗口上点取“ISAPI筛选器”标签,点击“添加”按钮,在弹出的“筛选器属性”窗口的“筛选器名称”中输入“PHP”,“可执行文件”中输入“C:/PHP4.3.8/sapi/php4isapi.dll”,点击[确定];
  2-8 在“默认Web站点属性”窗口上点取“主目录”标签,点“配置”按钮,在弹出的“应用程序配置”窗口中点取“添加”按钮,在弹出的“添加->编辑应用程序扩展名映像”对话框中的“可执行文件”文本框中输入“C:/PHP4.3.8/sapi/php4isapi.dll”,“扩展名”文本框中输入“.php”(注意一定要有那个点),点击[确定];
  2-9 回到命令行窗口,输入“net stop iisadmin”命令,终止IIS服务。系统会问你是否要将相关的服务也停止,答
  2-10 输入“net start w3svc”命令,重新启动IIS服务;
      *因为采用的是isapi方式(与Apache模块方式相似)因此每次重新配置php的时候都需要重启IIS
服务器。
3- 查看配置情况验证php解释运行(制作一个phpinfo.php文件)
[phpinfo.php]

<?php
Phpinfo();
?>

把这个文件保存在默认Web节点的默认文文件目录下(C:/Inetpub/wwwroot),然后打开浏览器,在地址栏中输入localhost/hello.php,如果顺利,经典的“Hello,World!”应该出现在你的浏览器中。如果找不到页面,而你也能确认上述几步都没问题,那么在浏览器的地址栏中输入地址127.0.0.1/hello.php试试看,如果能成功,则说明你的hosts文件有问题,请编辑C:/WINNT/system32/drivers\etc下面的hosts文件,加入“127.0.0.1 localhost”一行。

资料整理来自:php 168论坛http://bbs.php168.com/simple/index.php?t120797.html

August 07

解决Oracle XDB与Tomcat等的8080端口的冲突(转载)

从9i开始,oracle的安装缺省包含了XDB。在数据库后,Oracle XDB的http服务自动霸占了8080端口,这给使用或JBoss、Tomcat进行java web开发的人造成了不小的麻烦。 这里介绍修改XDB的http和ftp服务端口的3种方法:
  1.使用dbms_xdb包修改端口设置
  使用sys登录sqlplus
sqlplus sys/syspassword as sysdba
然后执行如下的脚本
============================
--  Change  the  HTTP/WEBDAV  port  from  8080  to  8081
call  dbms_xdb.cfg_update(updateXML(
   dbms_xdb.cfg_get()
   ,  '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()'
   ,  8081))
/
--  Change  the  FTP  port  from  2100  to  2111
call  dbms_xdb.cfg_update(updateXML(
       dbms_xdb.cfg_get()
   ,  '/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()'
   ,  2111))
/
COMMIT;
EXEC  dbms_xdb.cfg_refresh;

  2.使用OEM  console

  选择数据库,XML  Database,Configuration。更改XDB的有关设置。
  3.修改SPFILE[SID名].ORA文件,去掉数据库的初始化参数:
  这个文件是
Oracle的启动配置文件dispatchers='(PROTOCOL=TCP)  (SERVICE=XDB)',将会禁止XDB的http和ftp服务。
  重启计算机,或者在服务中重启OracleService[SID名]这个服务。重启后可能无法使用Enterprise  Manager  Console和其他客户端连接,这时请使用Oracle的Configuration  and  Migration  Tools/Net  Configuration  Assistant工具删除监听器,然后新建一个监听器,重启监听器。

转载来自:中国IT实验室,
http://oracle.chinaitlab.com/install/351299.html
*用于个人技术类收藏,仅用于个人。

 
Photo 1 of 80