摆渡人,外婆桥!
            ----只要路选对了,就不怕有多远!

netstat -an命令
netstat -an命令可以显示出激活的连接信息.如果你要查看1433端口是否被监听.可以利用这个命令查看没有显示 0.0.0.0:1433 .

详细的netstat命令,可参考:
http://study.chyangwa.com/IT/AIX/aixcmds4/netstat.htm
posted @ 2006-03-02 15:21 swingboat 阅读(392) | 评论 (0) | 编辑 收藏
 
javascript中event详解

event代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等。
event对象只在事件发生的过程中才有效。
event的某些属性只对特定的事件有意义。比如,fromElement 和 toElement 属性只对 onmouseover 和 onmouseout 事件有意义。
例子

下面的例子检查鼠标是否在链接上单击,并且,如果shift键被按下,就取消链接的跳转。
code<HTML>
<HEAD><TITLE>Cancels Links</TITLE>
<SCRIPT LANGUAGE="JScript">
function cancelLink() {
    if (window.event.srcElement.tagName == "A" && window.event.shiftKey)
    window.event.returnValue = false;
}
</SCRIPT>
<BODY onclick="cancelLink()">


下面的例子在状态栏上显示鼠标的当前位置。
code<BODY onmousemove="window.status = 'X=' + window.event.x + ' Y=' + window.event.y">


属性:

altKey, button, cancelBubble, clientX, clientY, ctrlKey, fromElement, keyCode, offsetX, offsetY, propertyName, returnValue, screenX,
screenY, shiftKey, srcElement, srcFilter, toElement, type, x, y

1.altKey
描述:
检查alt键的状态。

语法:
event.altKey

可能的值:
当alt键按下时,值为 TRUE ,否则为 FALSE 。只读。


2.button
描述:
检查按下的鼠标键。

语法:
event.button

可能的值:
0 没按键
1 按左键
2 按右键
3 按左右键
4 按中间键
5 按左键和中间键
6 按右键和中间键
7 按所有的键

这个属性仅用于onmousedown, onmouseup, 和 onmousemove 事件。对其他事件,不管鼠标状态如何,都返回 0(比如onclick)。

3.cancelBubble
描述:
检测是否接受上层元素的事件的控制。

语法:
event.cancelBubble[ = cancelBubble]

可能的值:
这是一个可读写的布尔值:

TRUE 不被上层原素的事件控制。
FALSE 允许被上层元素的事件控制。这是默认值。

例子:
下面的代码片断演示了当在图片上点击(onclick)时,如果同时shift键也被按下,就取消上层元素(body)上的事件onclick所引发的showSrc()函数。

code<SCRIPT LANGUAGE="JScript">
function checkCancel() {
    if (window.event.shiftKey)
    window.event.cancelBubble = true;
}
function showSrc() {
    if (window.event.srcElement.tagName == "IMG")
    alert(window.event.srcElement.src);
}
</SCRIPT>
<BODY onclick="showSrc()">
<IMG onclick="checkCancel()" SRC="sample.gif">

 

4.clientX
描述:
返回鼠标在窗口客户区域中的X坐标。

语法:
event.clientX

注释:
这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。


5.clientY
描述:
返回鼠标在窗口客户区域中的Y坐标。

语法:
event.clientY

注释:
这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。


6.ctrlKey
描述:
检查ctrl键的状态。

语法:
event.ctrlKey

可能的值:
当ctrl键按下时,值为 TRUE ,否则为 FALSE 。只读。


7.fromElement
描述:
检测 onmouseover 和 onmouseout 事件发生时,鼠标所离开的元素。 参考:18.toElement

语法:
event.fromElement

注释:
这是个只读属性。


8.keyCode
描述:
检测键盘事件相对应的内码。
这个属性用于 onkeydown, onkeyup, 和 onkeypress 事件。

语法:
event.keyCode[ = keyCode]


可能的值:
这是个可读写的值,可以是任何一个Unicode键盘内码。如果没有引发键盘事件,则该值为 0 。


9.offsetX
描述:
检查相对于触发事件的对象,鼠标位置的水平坐标

语法:
event.offsetX


10.offsetY
描述:
检查相对于触发事件的对象,鼠标位置的垂直坐标

语法:
event.offsetY


11.propertyName
描述:
设置或返回元素的变化了的属性的名称。

语法:
event.propertyName [ = sProperty ]

可能的值:
sProperty 是一个字符串,指定或返回触发事件的元素在事件中变化了的属性的名称。
这个属性是可读写的。无默认值。

注释:
你可以通过使用 onpropertychange 事件,得到 propertyName 的值。

例子:
下面的例子通过使用 onpropertychange 事件,弹出一个对话框,显示 propertyName 的值。

code<HEAD>
<SCRIPT>
function changeProp(){
    btnProp.value = "This is the new VALUE";
}

function changeCSSProp(){
    btnStyleProp.style.backgroundColor = "aqua";
}
</SCRIPT>
</HEAD>
<BODY>
<P>The event object property propertyName is
used here to return which property has been
altered.</P>

<INPUT TYPE=button ID=btnProp onclick="changeProp()"
VALUE="Click to change the VALUE property of this button"
onpropertychange='alert(event.propertyName+" property has changed value")'>
<INPUT TYPE=button ID=btnStyleProp
onclick="changeCSSProp()"
VALUE="Click to change the CSS backgroundColor property of this button"
onpropertychange='alert(event.propertyName+" property has changed value")'>
</BODY>

 

12.returnValue
描述:
设置或检查从事件中返回的值

语法:
event.returnValue[ = Boolean]

可能的值:
true 事件中的值被返回
false 源对象上事件的默认操作被取消

例子见本文的开头。


13.screenX
描述:
检测鼠标相对于用户屏幕的水平位置

语法:
event.screenX


注释:
这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。


14.screenY
描述:
检测鼠标相对于用户屏幕的垂直位置

语法:
event.screenY

注释:
这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。


15.shiftKey
描述:
检查shift键的状态。

语法:
event.shiftKey

可能的值:
当shift键按下时,值为 TRUE ,否则为 FALSE 。只读。


16.srcElement
描述:
返回触发事件的元素。只读。例子见本文开头。

语法:
event.srcElement


17.srcFilter
描述:
返回触发 onfilterchange 事件的滤镜。只读。

语法:
event.srcFilter


18.toElement
描述:
检测 onmouseover 和 onmouseout 事件发生时,鼠标所进入的元素。 参考:7.fromElement

语法:
event.toElement

注释:
这是个只读属性。

例子:下面的代码演示了当鼠标移到按钮上时,弹出一个对话框,显示“mouse arrived”

code<SCRIPT>
function testMouse(oObject) {
    if(oObject.contains(event.toElement)) {
        alert("mouse arrived");
    }
}
</SCRIPT>
:
<BUTTON ID=oButton onmouseover="testMouse(this)">Mouse Over This.</BUTTON>

 

19.type
描述:
返回事件名。

语法:
event.type

注释:
返回没有“on”作为前缀的事件名,比如,onclick事件返回的type是click
只读。


20. x
描述:
返回鼠标相对于css属性中有position属性的上级元素的x轴坐标。如果没有css属性中有position属性的上级元素,默认以BODY元素作为参考对象。

语法:
event.x

注释:
如果事件触发后,鼠标移出窗口外,则返回的值为 -1
这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。


21. y
描述:
返回鼠标相对于css属性中有position属性的上级元素的y轴坐标。如果没有css属性中有position属性的上级元素,默认以BODY元素作为参考对象。

语法:
event.y

注释:
如果事件触发后,鼠标移出窗口外,则返回的值为 -1
这是个只读属性。这意味着,你只能通过它来得到鼠标的当前位置,却不能用它来更改鼠标的位置。

posted @ 2006-02-23 09:54 swingboat 阅读(2096) | 评论 (0) | 编辑 收藏
 
javascript对XML的解析

1.对XMLHttpRequest请求返回的responseXML进行解析,responseXML是个XMLDOcument对象
假设返回的responseXML为:
<?xml version="1.0" encoding="UTF-8"
  standalone="yes"?>
<response>
  <method>checkName</method>
  <result>1</result>
</response>
则获取method和result值方法为:
var response=req.responseXML.documentElement;
method    =response.getElementsByTagName('method')[0].firstChild.data;
result    = response.getElementsByTagName('result')[0].firstChild.data;

2.创建一个XMLDocument对象
function getXMLDocument() {
    var xDoc = null;
    if (document.implementation && document.implementation.createDocument) {
        xDoc = document.implementation.createDocument("", "", null);
    } else {
        if ((typeof ActiveXObject) != "undefined") {
            var msXmlAx = null;
            try {
                msXmlAx = new ActiveXObject("Msxml2.DOMDocument");
            }
            catch (e) {
                msXmlAx = new ActiveXObject("Msxml.DOMDocument");
            }
            xDoc = msXmlAx;
        }
    }
    if (xDoc == null || typeof xDoc.load == "undefined") {
        xDoc = null;
    }
    return xDoc;
}

3.创建一个DOM树
<people>
 <person first-name="eric" middle-initial="h" last-name="jung">
  <address street="321 south st" city="denver" state="co" country="usa" />
 </person>
 <person first-name="jed" last-name="brown">
  <address street="321 north st" city="atlanta" state="ga" country="usa" />
  <address street="321 south avenue" city="denver" state="co" country="usa" />
 </person>
</people>
程序如下:
  var doc=getXMLDocument();
  var peopleElem = doc.createElement("people");
  var personElem1 = doc.createElement("person");
  personElem1.setAttribute("first-name", "eric");
  personElem1.setAttribute("middle-initial", "h");
  personElem1.setAttribute("last-name", "jung");
  
  var addressElem1 = doc.createElement("address");
  addressElem1.setAttribute("street", "321 south st");
  addressElem1.setAttribute("city", "denver");
  addressElem1.setAttribute("state", "co");
  addressElem1.setAttribute("country", "usa");
  personElem1.appendChild(addressElem1);
  
  var personElem2 = doc.createElement("person");
  personElem2.setAttribute("first-name", "jed");
  personElem2.setAttribute("last-name", "brown");
  
  var addressElem3 = doc.createElement("address");
  addressElem3.setAttribute("street", "321 north st");
  addressElem3.setAttribute("city", "atlanta");
  addressElem3.setAttribute("state", "ga");
  addressElem3.setAttribute("country", "usa");
  personElem2.appendChild(addressElem3);  
  
  var addressElem5 = doc.createElement("address");
  addressElem5.setAttribute("street", "321 south avenue");
  addressElem5.setAttribute("city", "denver");
  addressElem5.setAttribute("state", "co");
  addressElem5.setAttribute("country", "usa");
  personElem2.appendChild(addressElem5);
  
  peopleElem.appendChild(personElem1);
  peopleElem.appendChild(personElem2);
  doc.appendChild(peopleElem);
  alert(doc.xml);//xml属性只对IE管用

posted @ 2006-02-21 17:13 swingboat 阅读(1117) | 评论 (0) | 编辑 收藏
 
AXIS学习(1)

1.axis服务器包的校验。
  到http://ws.apache.org/下载axis后,解压,拷贝axis到tomcat的webapps目录下。启动tomcat,运行http://localhost:8080/axis
  点击“validation”,程序会检测少的包,并提示下载路径。我目前包含的包如下:
    axis.jar;                              
 axis-ant.jar;                          
 axis-schema.jar;                       
 commons-discovery-0.2.jar;             
 commons-httpclient-3.0-rc2.jar;        
 commons-logging-1.0.4.jar;             
 jaxrpc.jar;                            
 log4j-1.2.8.jar;                       
 saaj.jar;                              
 wsdl4j-1.5.1.jar;                      
 activation.jar;                        
 mail.jar    

2.环境变量的配置
  其实运行axis是不用配置环境变量的。但有的时候需要利用axis提供的一些工具,产生一些文件,需要应用很多包,利用ClassPath就比较方便了。
  AXIS_HOME:
  AXIS_LIB:
  AXISCLASSPATH:
 
3.把axis集成 到项目中
  a、把上面所提到的包拷贝到项目相应的lib目录中
  b、修改web.xml文件,增加所需的servlet配置
  <servlet>
  <servlet-name>AxisServlet</servlet-name>
  <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
 </servlet>

 <servlet>
  <servlet-name>AdminServlet</servlet-name>
  <servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>
  <load-on-startup>100</load-on-startup>
 </servlet>

 <servlet>
  <servlet-name>SOAPMonitorService</servlet-name>
  <servlet-class>org.apache.axis.monitor.SOAPMonitorService</servlet-class>
  <init-param>
   <param-name>SOAPMonitorPort</param-name>
   <param-value>5001</param-value>
  </init-param>
  <load-on-startup>100</load-on-startup>
 </servlet>

 <servlet-mapping>
  <servlet-name>AxisServlet</servlet-name>
  <url-pattern>/servlet/AxisServlet</url-pattern>
 </servlet-mapping>

 <servlet-mapping>
  <servlet-name>AxisServlet</servlet-name>
  <url-pattern>*.jws</url-pattern>
 </servlet-mapping>

 <servlet-mapping>
  <servlet-name>AxisServlet</servlet-name>
  <url-pattern>/services/*</url-pattern>
 </servlet-mapping>

 <servlet-mapping>
  <servlet-name>SOAPMonitorService</servlet-name>
  <url-pattern>/SOAPMonitor</url-pattern>
 </servlet-mapping>

 <session-config>
  <session-timeout>5</session-timeout>
 </session-config>

 <mime-mapping>
  <extension>wsdl</extension>
  <mime-type>text/xml</mime-type>
 </mime-mapping>

 <mime-mapping>
  <extension>xsd</extension>
  <mime-type>text/xml</mime-type>
 </mime-mapping>
  
4.服务发布(jws文件发布和定制发布)
  a、jws文件发布
  在web应用程序目录下,新建一个jws文件,例如:Hello.jws文件(其实就是个java文件,不包含包名)。 
  public class Hello {
 public String hello(String name){
  if(name==null){
   name="";
  }
  return "Hi,你好 "+name+",欢迎来到Web服务世界!";
 }
  }
  这样就可以直接查看hello服务相应的wsdl了:http://localhost:8080/testaxis/hello.jws?wsdl
 
  b.定制发布。
  定制发布,依赖一个server-confif.wsdd文件。
  在web-inf目录下新建一个deploy.wsdd文件,设置发布的服务,例如:
  <deployment xmlns="http://xml.apache.org/axis/wsdd/"
            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
    <service name="city" provider="java:RPC">
      <parameter name="className" value="yhp.test.axis.service.CityService"/>
      <parameter name="allowedMethods" value="*"/>
    </service>
  </deployment>
 
  利用axis提供的工具,就可以生成server-confif.wsdd文件了:
  java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient deploy.wsdd
  在运行过程中发现:如果没有把axis自带的应用发布到服务器上,运行时会提示404的错误,未发现axis/servlet/AxisServlet。

5.客户端调用
        String endpoint = "http://localhost:" + "8080"
    + "/testaxis/services/city";  //以定制发布方式,如果是jws文件,则endpoint为相应的jws文件

  Service service = new Service();
  Call call = (Call) service.createCall();
  call.setTargetEndpointAddress(new java.net.URL(endpoint));
  call.setOperationName("getZip");

  String res = (String) call.invoke(new Object[] {""});//object数组为远程方法的参数 

  System.out.println(res);
  
6.生成客户端stub相关类
   Axis提供了工具生成客户端stub相关的类,即通过wsdl产生stub。
   java -cp %AXISCLASSPATH% org.apache.axis.wsdl.WSDL2Java http://localhost:8080/testaxis/services/city?wsdl
 
    

posted @ 2006-02-13 17:11 swingboat 阅读(976) | 评论 (0) | 编辑 收藏
 
获取classes目录下的资源文件和类所在目录下的资源文件?
classes目录:DBUtil.class.getClassLoader().getResourceAsStream("testing.properties");
DBUtil.class所在目录:DBUtil.class.getResourceAsStream("testing.properties");

  Properties props = new Properties();
  props.load(DBUtil.class.getClassLoader().getResourceAsStream("testing.properties"));
  strDriver = props.getProperty("Driver"); 
  strURL = props.getProperty("URL");
  strUser = props.getProperty("User");
  strPassword = props.getProperty("Password");
  System.out.println("strDriver="+strDriver);
  System.out.println("strURL="+strURL);
  System.out.println("strUser="+strUser);
  System.out.println("strPassword="+strPassword); 
posted @ 2006-02-07 11:54 swingboat 阅读(989) | 评论 (0) | 编辑 收藏
 
Web2.0:AJAX的使用(XMLHttpRequest简介)
一、XMLHttpRequest对象的历史
XMLHttpRequest类首先由Internet Explorer以ActiveX对象引入,被称为XMLHTTP。 后来Mozilla、Netscape、Safari和其他浏览器也提供了
XMLHttpRequest类,不过它们创建XMLHttpRequest类的方法不同。IE的版本不同,创建XMLHttpRequest也不同。


二、XMLHttpRequest对象创建方法
IE:
xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP.3.0"); //3.0或4.0, 5.0
xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP");
xmlhttp_request = new ActiveXObject("Microsoft.XMLHTTP");
Other:
xmlhttp_request = new XMLHttpRequest();

如果服务器的响应没有XML mime-type header,某些Mozilla浏览器可能无法正常工作。 为了解决这个问题,如果服务器响应的header不是
text/xml,可以调用其它方法修改该header。

xmlhttp_request = new XMLHttpRequest();
xmlhttp_request.overrideMimeType('text/xml');

三、XMLHttpRequest对象的处理过程。
1.发送远程请求
   
xmlhttp_request.open('GET', URL, true);
xmlhttp_request.send(null);

open():
第一个参数是HTTP请求方式—GET,POST或任何服务器所支持的您想调用的方式。 按照HTTP规范,该参数要大写;否则,某些浏览器(如Firefox)可能无法处理请求。
第二个参数是请求页面的URL。
第三个参数设置请求是否为异步模式。如果是TRUE,JavaScript函数将继续执行,而不等待服务器响应。这就是"AJAX"中的"A"(异步)。

2.响应结束后,处理函数设置

xmlhttp_request.onreadystatechange =FunctionName;
FunctionName是用JavaScript创建的函数名,注意不要写成FunctionName(),当然我们也可以直接将JavaScript代码创建在onreadystatechange之后,例如:
xmlhttp_request.onreadystatechange = function(){
// JavaScript代码段
};

3.响应后状态
只有当一个完整的服务器响应已经收到了,函数才可以处理该响应。XMLHttpRequest 提供了readyState属性来对服务器响应进行判断。
readyState的取值如下:
  0 (未初始化)
  1 (正在装载)
  2 (装载完毕)
  3 (交互中)
  4 (完成)
所以只有当readyState=4时,一个完整的服务器响应已经收到了,函数才可以处理该响应。

if (http_request.readyState == 4) {
// 收到完整的服务器响应
} else {
// 没有收到完整的服务器响应
}

4.响应后返回值
有两种方式可以得到这些数据:
(1) 以文本字符串的方式返回服务器的响应
(2) 以XMLDocument对象方式返回响应
eg:
var response = xmlhttp_request.responseXML.documentElement;
var result = response.getElementsByTagName('result')[0].firstChild.data;//返回result节点数据
if(result ==-2){
document.getElementById('message').innerHTML = "用户名"+document.getElementById('163id').value+"尚未注册";
}
else if(result ==-1){
document.getElementById('message').innerHTML = "对不起,用户名"+document.getElementById('163id').value+"已经注册";
}

四、XMLHttpRequest对象属性
onreadystatechange 状态改变的事件触发器
readyState 对象状态(integer):
0 = 未初始化
1 = 读取中
2 = 已读取
3 = 交互中
4 = 完成
responseText 服务器进程返回数据的文本版本
responseXML 服务器进程返回数据的兼容DOM的XML文档对象
status 服务器返回的状态码, 如:404 = "文件末找到" 、200 ="成功"
statusText 服务器返回的状态文本信息

五、XMLHttpRequest对象方法
abort() 停止当前请求
getAllResponseHeaders() 作为字符串返问完整的headers
getResponseHeader("headerLabel") 作为字符串返问单个的header标签
open("method","URL"[,asyncFlag[,"userName"[, "password"]]]) 设置未决的请求的目标 URL, 方法, 和其他参数
send(content) 发送请求
setRequestHeader("label", "value") 设置header并和请求一起发送

六、附录
HTTP 1.1支持的状态代码
100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分
101 Switching Protocols 服务器将遵从客户的请求转换到另外一种协议
200 OK 一切正常,对GET和POST请求的应答文档跟在后面。
201 Created 服务器已经创建了文档,Location头给出了它的URL。
202 Accepted 已经接受请求,但处理尚未完成。
203 Non-Authoritative Information 文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝
204 No Content 没有新文档,浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的
205 Reset Content 没有新的内容,但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容
206 Partial Content 客户发送了一个带有Range头的GET请求,服务器完成了它
300 Multiple Choices 客户请求的文档可以在多个位置找到,这些位置已经在返回的文档内列出。如果服务器要提出优先选择,则应该在Location应答头指明。
301 Moved Permanently 客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。
302 Found 类似于301,但新的URL应该被视为临时性的替代,而不是永久性的。
303 See Other 类似于301/302,不同之处在于,如果原来的请求是POST,Location头指定的重定向目标文档应该通过GET提取
304 Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。
305 Use Proxy 客户请求的文档应该通过Location头所指明的代理服务器提取
307 Temporary Redirect 和302(Found)相同。许多浏览器会错误地响应302应答进行重定向,即使原来的请求是POST,即使它实际上只能在POST请求的应答是303时才能重定向。由于这个原因,HTTP 1.1新增了307,以便更加清除地区分几个状态代码:当出现303应答时,浏览器可以跟随重定向的GET和POST请求;如果是307应答,则浏览器只能跟随对GET请求的重定向。
400 Bad Request 请求出现语法错误。
401 Unauthorized 客户试图未经授权访问受密码保护的页面。应答中会包含一个WWW-Authenticate头,浏览器据此显示用户名字/密码对话框,然后在填写合适的Authorization头后再次发出请求。
403 Forbidden 资源不可用。
404 Not Found 无法找到指定位置的资源
405 Method Not Allowed 请求方法(GET、POST、HEAD、DELETE、PUT、TRACE等)对指定的资源不适用。
406 Not Acceptable 指定的资源已经找到,但它的MIME类型和客户在Accpet头中所指定的不兼容
407 Proxy Authentication Required 类似于401,表示客户必须先经过代理服务器的授权。
408 Request Timeout 在服务器许可的等待时间内,客户一直没有发出任何请求。客户可以在以后重复同一请求。
409 Conflict 通常和PUT请求有关。由于请求和资源的当前状态相冲突,因此请求不能成功。
410 Gone 所请求的文档已经不再可用,而且服务器不知道应该重定向到哪一个地址。它和404的不同在于,返回407表示文档永久地离开了指定的位置,而404表示由于未知的原因文档不可用。
411 Length Required 服务器不能处理请求,除非客户发送一个Content-Length头。
412 Precondition Failed 请求头中指定的一些前提条件失败
413 Request Entity Too Large 目标文档的大小超过服务器当前愿意处理的大小。如果服务器认为自己能够稍后再处理该请求,则应该提供一个Retry-After头
414 Request URI Too Long URI太长
416 Requested Range Not Satisfiable 服务器不能满足客户在请求中指定的Range头
500 Internal Server Error 服务器遇到了意料不到的情况,不能完成客户的请求
501 Not Implemented 服务器不支持实现请求所需要的功能。例如,客户发出了一个服务器不支持的PUT请求
502 Bad Gateway 服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答
503 Service Unavailable 服务器由于维护或者负载过重未能应答。例如,Servlet可能在数据库连接池已满的情况下返回503。服务器返回503时可以提供一个Retry-After头
504 Gateway Timeout 由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答
505 HTTP Version Not Supported 服务器不支持请求中所指明的HTTP版本
posted @ 2005-12-30 11:43 swingboat 阅读(1870) | 评论 (1) | 编辑 收藏
 
Web2.0:AJAX的使用(DWR Framework 二):制作简单的Apartment管理
一、DWR环境配置以及数据库设置
二、Apartment的VO设置
三、DAO层对数据的操作
四、dwr.xml配置
五、javascript函数编写
六、总结
posted @ 2005-12-28 17:08 swingboat 阅读(471) | 评论 (0) | 编辑 收藏
 
Web2.0:AJAX的使用(DWR Framework 一):制作Web进度条
一、Ajax简介
Adaptive Path公司的Jesse James Garrett这样定义Ajax:
Ajax不是一种技术。实际上,它由几种蓬勃发展的技术以新的强大方式组合而成。Ajax包含:
      1.基于CSS标准的表示;
      2.使用Document Object Model进行动态显示和交互;
      3.使用XMLHttpRequest与服务器进行异步通信;
      4.使用JavaScript绑定一切。
Ajax= Asynchronous JavaScript + XML 

二、常用的几种Ajax框架
   1.DWR         ---- http://getahead.ltd.uk/dwr/
   2.JSon-Rpc      ---- http://oss.metaparadigm.com/jsonrpc/
   3.echo2            ---- http://www.nextapp.com/platform/echo2/echo/
   4.backbase       ---- http://www.backbase.com
   右边网址有具体的说明:http://www.51cto.com/html/2005/1222/15373.htm

三、DWR使用说明。
示例:在页面中做个进度条,点击“install”按钮,进度条开始递增。进度数据是从后台获取。 

1.配置DWR环境。
在Eclipse中新建一个Web Project(MyEclipse\J2ee Projects\Web Project),引入dwr-0.9.2b.jar包,修改WEB-INF\web.xml文件,
配置dwr-invoker servlet。如下:
      <servlet>
        <servlet-name>dwr-invoker</servlet-name>
        <display-name>DWR Servlet</display-name>
        <description>Direct Web Remoter Servlet</description>
        <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>true</param-value>
        </init-param>
     </servlet>
     <servlet-mapping>
        <servlet-name>dwr-invoker</servlet-name>
        <url-pattern>/dwr/*</url-pattern>
     </servlet-mapping>

2.编写递增类Progress。此类只有一个方法getProgress,获取递增的数据。如下:
   package dwr.sample;
  
   import java.io.BufferedReader;
   import java.io.FileReader;
   public class Progress {
     public int getProgress(int nowProgress){   
        int nowValue=nowProgress+1;
        return nowValue;
     }
   }

3.配置dwr.xml文件。此文件和web.xml位于同一目录下。
   <!DOCTYPE dwr PUBLIC
    "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
    "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
   <dwr> 
     <allow>
        <create creator="new" javascript="ProgressBar" >
            <param name="class" value="dwr.sample.Progress"/> 
            <include method="getProgress"/>
        </create>
     </allow>
   </dwr>

4.编写index.htm文件。
a、引入js文件。首先引入dwr自己的两个js文件:
           <script src='dwr/engine.js'></script>
           <script src='dwr/util.js'></script>
在dwr.xml中我们配置了一个名为"ProgressBar"的create 。dwr会在dwr/interface下产生一个ProgressBar.js文件。
在ProgressBar.js文件中,有一个javascript对象:ProgressBar,ProgressBar对象完成了和后台javabean:dwr
.sample.Progress的匹配。引入ProgressBar.js文件:
   <script src='dwr/interface/ProgressBar.js'></script>

b. 编写显示进度的HTML文本:
    <TABLE style="width:700;height="50" border="1" >
      <TR>
        <td>
          <TABLE  border="0" style="width:0%;height:100%" id="ProgressBar">
            <TR>
              <td bgcolor="#000099">&nbsp;</td>
            </TR>
          </TABLE>
        </td>
      </tr>
    </TABLE>
    <br>
    <!--点击Install,进度条开始跑动  -->
    <input type="button" value="Install" onclick="doProgress()"> 

c. 编写doProgress函数
 function doProgress(){
    //获取当前进度条的值,按百分比计算   
    var width=$("ProgressBar").style.width;
  //去掉进度条值后面的"%"
    var scaleWidth=width.substring(0,width.length-1);
       //当进度条值为100的时候,停止跑动
     if(scaleWidth!=100){
      //调用ProgressBar.js中的ProgressBar.getProgress函数
       ProgressBar.getProgress(scaleWidth,updateProgress);
//说明:javabean:Progress方法getProgress,其实它只有一个输入参数,一个返回参数。而javascript的ProgressBar.getProgress方法有两个参数。dwr在mapping方法的时候,对于返回值,它采用的是回调函数的方式。所以对于ProgressBar.getProgress方法的第二个参数是一个函数指针。这里是updateProgress函数。 
     }
   }
   function updateProgress(progress){
      //设置进度条的值
      $("ProgressBar").style.width=progress+"%";
   //进度条继续跑动
     doProgress();
     }

 

posted @ 2005-12-28 16:35 swingboat 阅读(1641) | 评论 (1) | 编辑 收藏
 
Mysql 的中乱码问题
环境:winxp sp2,jboss-3.2.3,mysql 4.1
现象:启动jboss,浏览网页,能够从数据库中读出数据,但是所有中文数据都是“?”
原因:可能有两种
          1、mysql的确省字符集设置的不是gb
          2、mysql-connector(mysql官方提供的jdbc驱动程序)有问题

解决:
      第一种情况:修改my.ini文件。my.ini可能存在系统目录下(c:\windows)和mysql所安装的目录下(C:\Program Files\mysql\MySQL Server 4.1)。打开my.ini文件,找到[mysqld]块。把default-character设置为gbk,如果没有找到则添加即default-character-set=gbk。 重启mysql,问题解决。
       第二种情况:到mysql的官方网站下载最新的jdbc驱动程序。www.mysql.org
posted @ 2005-12-28 09:23 swingboat 阅读(279) | 评论 (0) | 编辑 收藏
 
利用sql语句实现的几个功能

1、SQL 语句中,union的使用:
   Table a:    field1,field2             Table b:   field1,field2
   data:       1       2                 data:      2,     2  
               1       4                            2,     3
   sql:  select filed1 from a union select field1 from b
   data: field1
         1
         2
   sql:  select filed1,field2 from a union select field1,field2 from b
   data: field1,field2
         1      2
         1      4
         2      2
         2      3 
2、table1{id:int,charge:int,fk:int}
   table2{id:int,charge:int}
   修改table2,使charge等于table1中相应值的和
   sql:update a set a.charge=b.totalcharge
        from (select id,sum(charge) totalcharge from table1 group by id)  b,table2 a
        where a.id=b.id
3、出发点   目的地     路程
      A         B
      A         C
      A         D
      A         E
      B         F
      C         G
      C         A
      用sql语句计算出所有从A出发所能到达的目的地,包括间接的。
   sql:select distinic 目的地 from 表
        where 出发点 in (
                        select distinic 目的地 from  表
                        where 出发点='A' union select 'A')
   说明:上面的方法只使用一级嵌套。可以满足此题的需求。
4、表t1
     year   quarter   num
     2001     1        3.4
     2001     2        5.12
     2001     3        6.13
     2001     4        8.14
     2002     1        5.21
     2002     2        4.22
     2002     3        6.23
     2002     4        4.24
     用sql语句获取下面的数据
     2001  3.4  5.12  6.13  8.14
     2002  5.21  4.22  6.23  4.24

   sql:select [year],avg(case[quarter] when '1' then num) as 'quarter1',
               avg(case[quarter] when '2' then num) as 'quarter2',
               avg(case[quarter] when '3' then num) as 'quarter3',
               avg(case[quarter] when '4' then num) as 'quarter4'
        from t1 group by year

posted @ 2005-12-28 09:23 swingboat 阅读(417) | 评论 (0) | 编辑 收藏
 
仅列出标题
共6页: 上一页 1 2 3 4 5 6 下一页 
 
<2025年6月>
日一二三四五六
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

 公告


 导航

  • BlogJava
  • 首页
  • 发新随笔
  • 发新文章
  • 联系
  • 聚合
  • 管理

 统计

  • 随笔: 51
  • 文章: 1
  • 评论: 50
  • 引用: 0

常用链接

  • 我的随笔
  • 我的评论
  • 我的参与
  • 最新评论

留言簿(4)

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类

  • JAVA(21) (rss)
  • javascript&DHTML&CSS(15) (rss)
  • Oracle/MySQL(6) (rss)
  • SOA(1) (rss)
  • WEB2.0(4) (rss)
  • WorkFlow&BPEL(1) (rss)
  • 名词概念(1) (rss)
  • 架构模式 (rss)
  • 汽车&甲壳虫 (rss)
  • 设计模式(3) (rss)
  • 软件工程(1) (rss)

随笔档案

  • 2007年9月 (1)
  • 2007年8月 (3)
  • 2007年7月 (1)
  • 2007年5月 (2)
  • 2007年4月 (4)
  • 2007年3月 (1)
  • 2007年2月 (1)
  • 2006年12月 (1)
  • 2006年11月 (2)
  • 2006年10月 (1)
  • 2006年8月 (1)
  • 2006年4月 (1)
  • 2006年3月 (2)
  • 2006年2月 (4)
  • 2005年12月 (26)

文章档案

  • 2006年1月 (1)

IT

  • Delver 's Study BLOG
  • 竹笋炒肉

搜索

  •  

积分与排名

  • 积分 - 133135
  • 排名 - 466

最新随笔

  • 1. IE对select的处理,又一怪现象:innerHTML竟然不起作用。
  • 2. 在IE下,页面只有一个text的时候,回车将自动submit。
  • 3. 设置input的内容居中?
  • 4. 可恶的“本页不但包含安全的内容,也包含不安全的内容。是否显示不安全的内容”对话框?
  • 5. 利用JGroups同步两台server之间的cache。
  • 6. 有关“+”和“_”的search。
  • 7. synchronized的作用
  • 8. HTML的特殊字符
  • 9. 不同时区之间,时间的转换?
  • 10. javascript在IE和Firefox中的区别1

最新评论

  • 1. re: javascript转换日期字符串为Date对象
  • 大牛
  • --sfafa
  • 2. re: synchronized的作用[未登录]
  • 把100换成1000就好了!
  • --xyz
  • 3. re: synchronized的作用
  • 晦涩难懂!
  • --无知者
  • 4. re: synchronized的作用
  • 好
  • --白河夜歌
  • 5. re: 可恶的“本页不但包含安全的内容,也包含不安全的内容。是否显示不安全的内容”对话框?
  • 评论内容较长,点击标题查看
  • --老梁

阅读排行榜

  • 1. javascript转换日期字符串为Date对象(47715)
  • 2. synchronized的作用(16408)
  • 3. 可恶的“本页不但包含安全的内容,也包含不安全的内容。是否显示不安全的内容”对话框?(11093)
  • 4. 不同时区之间,时间的转换?(7455)
  • 5. 利用JGroups同步两台server之间的cache。(6606)

评论排行榜

  • 1. synchronized的作用(18)
  • 2. 可恶的“本页不但包含安全的内容,也包含不安全的内容。是否显示不安全的内容”对话框?(7)
  • 3. javascript在IE和Firefox中的区别1(6)
  • 4. javascript转换日期字符串为Date对象(4)
  • 5. 在IE下,页面只有一个text的时候,回车将自动submit。(3)

Powered by: 博客园
模板提供:沪江博客
Copyright ©2025 swingboat