<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>qqwjz</title>
    <description></description>
    <link>http://qqwjz.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>如何在被调用函数中自动获取调用者的引用</title>
        <author>qqwjz</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://qqwjz.javaeye.com">qqwjz</a>&nbsp;
          链接：<a href="http://qqwjz.javaeye.com/blog/177165" style="color:red;">http://qqwjz.javaeye.com/blog/177165</a>&nbsp;
          发表时间: 2008年03月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          一个页面中有多个控件需要调用某函数，并且要给该函数传递值。有没有办法在被调用函数中通过某种方式，在不传递参数的情况下，得到调用者的引用，进而取得对应控件的值.<br /><br />一般的写法是<br />&lt;script><br /> <br />function test(object)<br />{<br />   alert(object.value);<br />}<br /><br />&lt;/script><br /><br />&lt;input type="button" name="one" value="one" onclick="test(this)"><br /><br />&lt;input type="button" name="tow" value="tow" onclick="test(this)"><br /><br /><br />不知道通过什么方式可以实现如下<br /><br />&lt;script><br /> <br />function test()<br />{<br />   var object =  // 得到调用者的引用 object<br />   alert(object.value);<br />}<br /><br />&lt;/script><br /><br />&lt;input type="button" name="one" value="one" onclick="test()"><br /><br />&lt;input type="button" name="tow" value="tow" onclick="test()">
          <br/>
          <span style="color:red;">
            <a href="http://qqwjz.javaeye.com/blog/177165#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 28 Mar 2008 11:09:21 +0800</pubDate>
        <link>http://qqwjz.javaeye.com/blog/177165</link>
        <guid>http://qqwjz.javaeye.com/blog/177165</guid>
      </item>
      <item>
        <title>javaScript 操作word实现在线编辑</title>
        <author>qqwjz</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://qqwjz.javaeye.com">qqwjz</a>&nbsp;
          链接：<a href="http://qqwjz.javaeye.com/blog/104796" style="color:red;">http://qqwjz.javaeye.com/blog/104796</a>&nbsp;
          发表时间: 2007年07月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          有没有朋友知道用JavaScript如果操作Word文档，实现在线编辑Word文档，并可以保存到远程服务器上。<br /><br />现有如下需求：通过某个按钮触发一个事件，读取服务器上的一个Word文档。在网页上打开，可以对打开的Word文档动态的编辑。之后还需要把文档保存到远程服务器上。<br /><br />我知道国产的RedOffice支持这种JavaScript操作Sxw文件，实现协作办公。
          <br/>
          <span style="color:red;">
            <a href="http://qqwjz.javaeye.com/blog/104796#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 24 Jul 2007 17:44:35 +0800</pubDate>
        <link>http://qqwjz.javaeye.com/blog/104796</link>
        <guid>http://qqwjz.javaeye.com/blog/104796</guid>
      </item>
      <item>
        <title>dwr使用笔记（带例子）</title>
        <author>qqwjz</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://qqwjz.javaeye.com">qqwjz</a>&nbsp;
          链接：<a href="http://qqwjz.javaeye.com/blog/103242" style="color:red;">http://qqwjz.javaeye.com/blog/103242</a>&nbsp;
          发表时间: 2007年07月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          现把我学习DWR的一些心得写出来，供大家参考，由于是个人心得，所以难免在措辞方面，概念方面把握不准确的地方，还请大家见谅，发现有什么问题，或者你有什么好的观点，意见都可以留下来。<br />1.<br />配置说明：<br /> 1).首先在web.xml中添加如下语句。<br /> &lt;servlet>  <br />  &lt;servlet-name>dwr-invoker&lt;/servlet-name><br />  &lt;servlet-class>uk.ltd.getahead.dwr.DWRServlet&lt;/servlet-class><br />  &lt;init-param><br />     &lt;param-name>debug&lt;/param-name><br />     &lt;param-value>true&lt;/param-value><br />  &lt;/init-param><br />&lt;/servlet><br /><br />&lt;servlet-mapping><br />  &lt;servlet-name>dwr-invoker&lt;/servlet-name><br />&lt;!--用于拦截 http://localhost:8080/dwr--><br />  &lt;url-pattern>/dwr/*&lt;/url-pattern><br />&lt;/servlet-mapping><br /><br />2).<br />新建一个dwr.xml文件，和web.xml同目录。<br /><br />&lt;?xml version="1.0" encoding="UTF-8"?><br />&lt;!DOCTYPE dwr PUBLIC<br />"-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"<br />    "http://www.getahead.ltd.uk/dwr/dwr10.dtd"><br /><br />&lt;dwr><br />  &lt;allow><br />    &lt;create creator="new" javascript="JDate"> //对应JavaScript文件名，即：JDate.js在这个文件中有一个名为JDate的JavaScript对象<br />      &lt;param name="class" value="java.util.Date"/> //对应Java类。<br />    &lt;/create><br />    &lt;create creator="new" javascript="Student"><br />      &lt;param name="class" value="com.dwr.test.Student"/><br />    &lt;/create><br /> &lt;convert converter="bean" match="com.dwr.test.*" >&lt;/convert>  <br />  &lt;/allow><br />&lt;/dwr><br /><br />然后启动服务访问：http://localhost:8080/应用名/dwr   （如果是ROOT方式部署的，可以省去应用名） <br /><br />2.<br /><br />被映射的JavaBean对象中方法的修饰符只有为Public才可以被暴露出来，private ,protected,package都不会暴露，支持继承体系，如果当前被映射的Bean有父类中提供了某Public方法，该方法也会暴露出来。Bean中的属性是不会暴露出来的。<br />&lt;create creator="new" javascript="Student"><br />      &lt;param name="class" value="com.dwr.test.Student"/><br />      &lt;include method="getUserName"/>  <br />&lt;/create><br />另外还可以在dwr.xml &lt;create>&lt;create>中明确描述那些公共的方法可以暴露给外界。如： &lt;include method="getUserName"/> 表示把com.dwr.test.Student中的getUserName()方法暴露出来。如果不写&lt;include>配置，表示把所以的Public方法都暴露，如果写了&lt;include>则只暴露明确指定的方法。<br /><br />3.<br />Avoid reserved JavaScript words; Methods named after reserved words are automatically excluded. Most JavaScript reserved <br /><br />words are also Java reserved words, so you won't be having a method called "try()" anyway. However the most common gotcha is <br /><br />"delete()", which has special meaning from JavaScript but not Java. <br />Overloaded methods can be involved in a bit of a lottery as to which gets called, so avoid overloaded methods. <br /><br /><br />4.<br /> &lt;script type='text/javascript' src='/dwr/interface/Student.js'>&lt;/script><br />  &lt;script type='text/javascript' src='/dwr/engine.js'>&lt;/script><br />  &lt;script type='text/javascript' src='/dwr/util.js'>&lt;/script><br />在需要使用Dwr框架直接范文JavaBean的Jsp页面中添加如上三条语句。 /dwr/engine.js，/dwr/util.js是固定的，是Dwr的脚本驱动Js和常用<br /><br />的工具类用来对返回的信息加工处理的。/dwr/interface/Student.js是用户需要直接访问的JavaBean对应的JavaScript映射。注意路径的书写，以及相对位置，这几个文件的层次结构是固定的。并且应用在部署的时候要选择Root方式，否则找不到路径。<br /><br />5.<br /> &lt;input  type='button' onclick='javascript:Student.getUserName(reply);' value='Execute' ><br /> &lt;script type='text/javascript'><br />    var reply = function(data)<br />    {<br />      alert(data);<br />    }<br />  &lt;/script><br /><br />前面说过：/dwr/interface/Student.js中有一个和Student同名的对象。即：Student。所以在调用这个Js中方法时需要加上这个对象名，<br />Student.getUserName(reply),这样处理是为了避免在引入两个Bean，他们对应的JavaScript映射文件中出现相同的函数名情况下的调用混乱。<br /><br />Student.getUserName(reply)<br />在Student.js文件中对应着：<br />Student.getUserName = function(callback) {<br />  dwr.engine._execute(Student._path, 'Student', 'getUserName', callback);<br />}<br />可见reply参数是必须的，而且这个参数是一个function类型。用来接受从后台返回来的值。 返回的值就存放在变量data中，我们自己的Javascript的最后需要的处理的值就是data.<br /><br />函数reply的作用就是被回调并带回用户所需的值。可以把这个方法设置为通用方法。统一取得值，放到全局变量中。如本例中accessRemoteData.js文件中的getRemoteData方法。<br /><br />6.<br />AJAX是异步实现的，并且AJAX确实是为了异步的实现才引入近来的。但是，AJAX仍然也支持同步的调用。在纯粹的XMLHttpRequest中可以设置调用是否是异步的。XMLHttpRequest的open函数是有一个是否同步参数，如下：<br />XMLHttpRequest.open(String method, String URL, boolean asynchronous)<br />其中的asynchronous就是是否同步的参数了。<br />在DWR的engine.js文件，有setAsync方法，就是设置调用是否是同步的，还是异步的。<br /><br />dwr.engine.setAsync(false); 设置为同步运行.<br />dwr.engine.setAsync(true); 设置为异步运行.<br /><br />  同步模式：<br />&lt;input  type='button' onclick='javascript:dwr.engine.setAsync(false); Student.getUserName(getRemoteData);alert(message)'/><br /> <br />  异步模式：<br />&lt;input  type='button' onclick='javascript:dwr.engine.setAsync(true); Student.getUserName(getRemoteData); alert(message)'/><br /> <br /><br />A;—>异步线程<br />|<br />B;<br />具体表现为：在A语句体中启动了一个异步线程，到后台获取信息。如果为异常模式，在启动A异步线程之后，B继续执行。<br />如果为同步模式：在启动A异步线程之后，B并不执行，直到后台获取信息的动作结束，并返回后才执行。<br /><br />7.<br /> &lt;convert converter="bean" match="com.dwr.test.*" >&lt;/convert>  <br />把JOPO对象反转成JavaScript的对象。match表示对这个包下面所有的JOPO都可以转换。之前说了：进行远程方法调用时，需要传递一个回调函<br /><br />数，用来取回自己所需要的值，最后这个值付给了回调函数的形参变量data<br />如果调用的方法是 Student.getUser(callback).那么返回的data是“Object”类型。如果User对象有userName,password属性，那么就可以直<br /><br />接的data.userName ,data.password来取得对象（JavaScript对象）中的值。而这个JavaScrip对象，User就是Conver过来的。<br /><br />如果返回的是一个普通POJO，此时data就代表Conver过来的POJO对象，那么可以直接由data.属性名来得到对应POJO中的值。<br />如果返回的是一个List， 此时data就代表Conver过来的List对象，用data[i]来取得List中下标为i的对象。如果取到的对象还是一个POjO，那么继续按照前一种方法处理。<br />如果返回的是一个Map， 此时data就代表Conver过来的Map对象，用data.key1来取得"Key1"对应的对象，data.key1.userName;
          <br/>
          <span style="color:red;">
            <a href="http://qqwjz.javaeye.com/blog/103242#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 20 Jul 2007 15:18:38 +0800</pubDate>
        <link>http://qqwjz.javaeye.com/blog/103242</link>
        <guid>http://qqwjz.javaeye.com/blog/103242</guid>
      </item>
      <item>
        <title>即时通信</title>
        <author>qqwjz</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://qqwjz.javaeye.com">qqwjz</a>&nbsp;
          链接：<a href="http://qqwjz.javaeye.com/blog/99753" style="color:red;">http://qqwjz.javaeye.com/blog/99753</a>&nbsp;
          发表时间: 2007年07月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          当前Web项目要设计一个即时通信的功能，经理叫我看看：整理了一下。现把个人认为的解决方式列出来。希望大家给点意见。<br /><br />需求描述：<br />即时使消息是用户间进行私人交流的空间，用户可向其他用户留言，接受留言的用户可在主页中得到系统发送的留言提示。<br />系统页面上显示的在线人员，点击相应人员发送短信。接收用户以弹出<br />窗口形式显示接收到的短消息，可对其进行回复。<br /><br />问题分析：<br /> 一种是被叫方式：需要发送信息的用户在网页上选中某个在线用户，编辑信息并发送。后台程序找到接受信息用户的Session。并把信息顺着Session传输到其界面（后来该方式被告夭折了，因为Http是无状态通信协议的，不存在服务器去找客户端的道理，只有客户端来找服务器）<br />一种是主叫方式：发送信息的用户把需要发送的信息以一定的格式比如username=value的方式放到Application中，接受信息的用户Jsp中有一段ajax的程序在不停的访问Application中的信息，如果有属于自己的信息，就取出来并在页面上以对话框的形式显示出来。<br /><br />以上是我分析的过程(之中必有很多问题，还希望大家指点)。如果大家有新的点子还请多多赐教。
          <br/>
          <span style="color:red;">
            <a href="http://qqwjz.javaeye.com/blog/99753#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 10 Jul 2007 13:19:36 +0800</pubDate>
        <link>http://qqwjz.javaeye.com/blog/99753</link>
        <guid>http://qqwjz.javaeye.com/blog/99753</guid>
      </item>
  </channel>
</rss>