拾贝壳

走过的路
随笔 - 39, 文章 - 1, 评论 - 14, 引用 - 0
数据加载中……

javascript操作word控件

<script language="javascript">
//定义全局变量,用于清理工作
var word;
var doc;
function editFile(){
//调用word控件
 word= new ActiveXObject("Word.Application");
//屏蔽“另存为”按钮
 word.CommandBars("File").Controls(5).Enabled= false;
  word.CommandBars("File").Controls(5).visible= false;
//屏蔽"另存为网页"按钮

 word.CommandBars("File").Controls(6).Enabled= false;
 word.CommandBars("File").Controls(6).visible= false;

 word.visible = true;
 // word.activate();
try{
//打开文件
  doc=word.Documents.Open("http://212312.doc");
  //痕迹保留
  word.ActiveDocument.TrackRevisions   =true; 
//切换成web视图
  word.ActiveDocument.ActiveWindow.View.Type=3
 
      }catch(e){
       alert(e.message);
      };  
}
function myfinalize(){
//文档保存
    doc.save();
//文档关闭
   doc.close();
//把屏蔽的功能打开
   word.CommandBars("File").Controls(5).Enabled= true;
  word.CommandBars("File").Controls(5).visible= true;
//word退出
 word.quit();
 
}
//参考文档
   http://bbs.hidotnet.com/712/ShowPost.aspx

posted @ 2007-07-25 10:54 binge 阅读(3155) | 评论 (0)编辑 收藏

DB2

原文:

http://blog.csdn.net/huabingl/archive/2008/02/11/2088477.aspx

posted @ 2007-07-09 16:20 binge 阅读(332) | 评论 (0)编辑 收藏

AXIS User Guide(1)

     摘要: AXIS User Guide(1)  阅读全文

posted @ 2007-01-03 20:54 binge 阅读(1164) | 评论 (0)编辑 收藏

Sliding into WebDAV

     摘要: Sliding into WebDAV  阅读全文

posted @ 2007-01-03 20:49 binge 阅读(2414) | 评论 (0)编辑 收藏

HibernateTemplate方法

     摘要: HibernateTemplate方法索引  阅读全文

posted @ 2006-12-26 15:47 binge 阅读(4386) | 评论 (0)编辑 收藏

小心对js函数命名,避免和它的内置函数重名

最近又遇到个对js取名不帅导致错误的问题,特开此贴,以示警戒:
不要把自己的js函数取成close(),open(),start()之类的名字!!

window得resizeto和resizeby方法对模式窗口无效。

posted @ 2006-12-10 13:25 binge 阅读(704) | 评论 (0)编辑 收藏

webdav使用指南

  最近研究了一下webdav,关于webdav的详细信息可以在 google上搜索或者参看官方网站http://www.webdav.org.
  "WebDAV stands for "Web-based Distributed Authoring and Versioning". It is a set of extensions to the HTTP protocol which allows users to collaboratively edit and manage files on remote web servers. "
 笔者简单的尝试了它下面的slide和mod_dav.
slide是jakarta下面的子项目,分为服务端和客户端.个人认为服务端是专门为tomcat定做的一个webdav实现.关于slide,javaeye上有些讨论,可以参考http://www.javaeye.com/t/5267.html.本人涉入的不是很深,中文问题让我碰到了,slide提供2中存储方式,文件形式和数据库形式,限于时间,笔者没有对数据库形式进行测试.slide的工作目录默认在服务器bin目录下.
用mod_dav来实现相比就简单多了,如果你熟悉apache httpserver,应该很容易搞定.http://www.webdav.org/mod_dav/ 上的有部分资料.可以根据http://www.webdav.org/mod_dav/install.html 的讲解来配置.apache server1.3以后(包括1.3)在发布的时候都自带了mod_dav包.需要做的就是加载和配置它.
LoadModule dav_module libexec/libdav.so
AddModule mod_dav.c
笔者在配置的时候由于没有认真看文档,犯了个小小的错误.所以注意下面的文字:
"In the following example, the DAV lock database will be stored in the /usr/local/apache/var directory (which must be writable by the server process). The file's name will be DAVLock when mod_dav needs to create it.
(actually, mod_dav will create one or more files using this file name plus an extension)

DAVLockDB /usr/local/apache/var/DAVLock"
然后你需要配置一个webdav的工作目录,由于访问apache服务的用户会默认是nobody用户,所以你至少得让工作目录对nobody可读写.在目录的定义中加入DAV on这样的属性就 ok了
eg:
"Alias /pages /home/www/davhome
<Location /pages>
    DAV On
</Location>
"
测试webdav
安装完webdav后,你可以做简单的测试:
   IE浏览器-〉文件-〉打开,然后输入配置的url,http://127.0.0.1/pages,选上"以Web文件夹方式打开".可以看到效果。
客户端API.
如果是 java可以 采用slide的客户端.(php用户咋办?).
这个最新的客户端使用的是最新的jdom,注意哦..
参考资料:
http://www.uplinux.com/www/net/02/131.shtml

posted @ 2006-12-10 12:40 binge 阅读(5992) | 评论 (0)编辑 收藏

mvnforum权限系统分析

   mvnforum是一个开源的论坛软件.网址如下:
http://sourceforge.net/projects/mvnforum/
   本文主要研究它的权限部分,以作为使用借鉴.
   这里有篇中文的文档,以作参考:
  http://www.cn-java.com/target/news.php?news_id=3298


权限部分的UML图如下:
  

数据流程:
1,系统从OnlineUserManager这个入口进入.这个部件有个Map用来存储当前的非过期用户。OnlineUserManager会先根据当前时间和最后一个用户的请求时间做对比,检查是否有刷新过期用户的必要,如果超过所设置的时间,那么先更新Map。然后OnlineUserManager根据提供的用户的 sessionid和username在这个Map中查找。如果找到,则刷新该用户的最后一次访问时间;否则,OnlineUserManager调用OnlineUserFactory部件创建该OnlineUser,并把这个OnlineUser存入Map之中。
判对用户是否过期的原理是:从OnlineUser的OnlineUserAction中取出最后一次的访问时间和当前时间做对比.
2,OnlineUserFactory负责创建OnlineUser并为该OnlineUser提供完整的权限信息.OnlineUser包括3大部分信息,一部分是用户的基本信息,一部分是用户的权限信息,一部分是用户的在线信息.在线信息由OnlineUserManager负责管理,其他2部分信息由OnlineUserFactory从持久层获得.
获得权限信息并把它设置到OnlineUser部件上,提供给OnlineUserManager管理.
3.CNMPermissionFactory类似我们常说的service.主要负责和持久层通信,最终返回一个CNMPermission部件供OnlineUserFactory合成OnlineUser部件.在下面的章节里,笔者会对他细化讨论.
权限结构:
用来实现用户权限的主要的是CNMPermission接口和他是2个子类AbstractPermission和CNMPermissionImpl.CNMPermission接口负责定义权限有关的常量和对外API.AbstractPermission设置了保存权限信息的变量并实现了CNMPermission接口中定义的抽象方法,因此,笔者把这个抽象类叫做鉴权类.CNMPermissionImpl 则负责对AbstractPermission使用的变量进行设值,因此,笔者称之为赋权类.
先看看AbstractPermission的结构。这里涉及到这么几个概念:全局权限,特定权限,单个权限,组合权限。
全局权限用true/false来设置。
特定权限是指某一个动作所作用的不同的对象。比如:某用户只能将写操作作用于1,2,4这3个论坛板块之上。表示为这个特定权限内部的ArrayList容器中只有1,2,4三个编号。
单个权限是指单个动作。比如读操作。
组合权限是为了方便设置提供的对单个权限的组合。比如对某用户一次设置某板块的“读”和“发布”2种权限。
前2种权限是一个纬度的划分,后2个是另一个纬度的划分。
如何鉴权?
鉴权的接口都会在CNMPermission中定义。对全局权限,直接返回对应的标志位的值,对于特定权限,则先判断是否特定权限全开,否,则然后判断其ArrayList中是否包含对应的对象编号。
如何赋权?
这里要承接到上述数据流程的第三步。由CNMPermissionFactory根据一定先后循序(其实无关顺序,因为采用的为真覆盖原则,即持久层返回的权限都是真值,后面的真值对前面的真值可覆盖)从持久层获得所有的全局权限和特定权限。mvnforum只有用户和角色2种概念(当然也可以扩展),因此它的顺序是:用户全局全县-〉用户特定权限-〉角色全局全县-〉角色特定权限。当然无论哪一部都是对同一个CNMPermission进行操作。
无论在设置全局权限还是特定权限的时候都可能会遇到所定义的组合权限。具体的组合权限拆分是由CNMPermissionImpl来做的.
相关的表结构:
   member表,存贮用户基本信息。
   membergroup ,存储用户和组(角色)的对应关系。
   groups表,存储组/角色的基本信息
   grouppermission,存储组/角色的全局权限,字段为groupid permissionid
   groupforum,存储组/角色 的论坛权限, 字段为groupid ,forum,permissionid
   memberpermission 存贮用户的全局权限,字段为 memberid permissionid
   memberforum 存贮用户的论坛权限,字段为memberid ,forum,permissionid


  修改于2006/12/16  晚8时

posted @ 2006-09-19 10:07 binge 阅读(1539) | 评论 (0)编辑 收藏

Log4j/common log和各种服务器集成的问题

  目前的很多商业和非商业的服务器中间件都默认集成了common-log甚至是log4j.因此当我门把我们的应用发布在上面的时候,都会遇到关于log方面的问题.
  1.webshpere下面集成log4j.
  "WebSphere的类装入器方式有两种方式:PARENT_FIRST和PARENT_LAST。默认值是PARENT_FIRST,这种方式在载入当前classpath的类之前先载入其上一级classloader能够装入的类。这是标准的JVM classloader的默认策略。如果采用PARENT_LAST,则过程正好相反,即先载入当前classpath的类,再载入其上一级classloader能够装入的类,这样可以用当前classpath中更新的类覆盖其上一级classloader的相同类。受类装入器方式影响的classloader包括application classloader、WAR classloader以及共享类库的classloader。"
 因为websphere在共享类库的classloader中有一套common logging,但是确没有合适配置文件.如果我们把配置正确的log4j.properties文件放在共享类库下,我们会发现log4j可以运行.但还有另外一个很通用的方式--改变webshpere的类库加载顺序.我们让他先加载我们web应用所需的类库.即我们把web应用的加栽方式改为PARENT_LAST.
  哎,尽管我小心的提防,今天还是中招了,在我的配置里,log4j的配置文件只能读取一次,不能一个应用一个配置文件.为了让它加载自己的配置,可以自己写(或者用spring的)servlet/listener去手动加载这个配置文件.
 2.jboss下面的集成log4j
  大家可能都曾在为jboss下面配置log4j郁闷过.jboss比webshpere走的还远.无论你的项目是否使用了log4j,jboss在自己启动的时候就已经运行他了.也就是说在jboss加载自己共享类库的时候,已经读取了自己log4j.xml文件配置.这个文件在conf中可以找到.如果你需要为你的应用单独配置一个catagory,你需要直接在这里配置.
   在webloader装载应用的时候,如果应用中有log4j的包,似乎总出现appender已被占用的问题.笔者把log4j的包连带应用中的log4j配置文件一并移去,世界清净了.
关于为了让应用自带的log4j配置文件生效,有人建议修改
 <attribute name="Java2ClassLoadingCompliance">false</attribute>

 <attribute name="UseJBossWebLoader">false</attribute>
这两个属性.
 3.sunone下面集成log4j
    距离上次用SunOne服务器已经好长时间了,似乎sunOne的log有些类似jboss,也是一个服务器的log集中管理.由于使用的不是很多,暂且在这里站个位子.
随手贴点关于log的信息:
http://wiki.apache.org/jakarta-commons/Logging/FrequentlyAskedQuestions
http://www-128.ibm.com/developerworks/cn/websphere/library/techarticles/0408_baigang/part3.html

 

posted @ 2006-09-05 17:23 binge 阅读(1481) | 评论 (1)编辑 收藏

OpenLDAP快速上手

OpenLDAP 快速上手

   Ben 的项目里面要用到 OpenLDAP, 我的项目里面也要用到 LDAP, 所以这 2 天集中看了一下 LDAP 相关的内容。做了个笔记,也算是为人类知识的积累做点或有或无的贡献。

   OpenLDAP 的官方站点是 http://www.openldap.org

       上面有个 QuickStart, 我将大致按照这个来讲解。

一、 安装
在官方站点上发布的是 linux/unix 下的 OpenLDAP 源文件,当然也很容易找到 windows 系统下的版本。笔者学习安装的就是 windows 版本的。

二、 配置

OpenLDAP 2 个用户最关注的配置文件。

一个是 slapd.conf 在他里面定义了最基本的 DN 以及管理员的账号和密码。

另一个是 LDIF 的文件。在它里面可以配置所有的用户和组织。

1、  我们先来了解 LDAP 的相关概念。
我们知道 LDAP 的全称为( Lightweight Directory Access Protocol ),即轻量级目录访问协议。

Ldap 是怎样的一个结构呢 ?用官方的话说:“ In LDAP, directory entries are arranged in a hierarchical tree-like structure. Traditionally, this structure reflected the geographic and/or organizational boundaries. Entries representing countries appear at the top of the tree. Below them are entries representing states and national organizations. Below them might be entries representing organizational units, people, printers, documents, or just about anything else you can think of.. ”他是一个树状的结构。每一个节点被称为一个 Entry 。这些 Entry 有着有趣的含义。

下面是他的 2 个实例。一个反映了 geographic ,一个反映了 organizational

                                                           传统命名

                                                           网络命名

我们来看看个个节点的定义方式。

每个 Entry 都有一个自己得一个标示 ,我们把他叫 DN(Distinguished Name) ,这个 dn 包含了一个 RDN Relative Distinguished Name )。在上面的第二个图例 中,Barbara Jensen的RDN是 uid=babs,他的dn是 uid=babs,ou=People,dc=example, dc=com。

每个节点都需要一个类别 这个类别信息用objectClass来表示。ObjectClass就是该节点的schema,他定义了该节点该有和不该有的属性。默认的objectClass都在schema/core.schema中有定义。如果在你的配置过程中出现了关于找不到objectClass的问题,您不妨参看一下这里面有没有你用到的objectClass . 在schema文件夹下还有其他一些schema文件,你也可以定义自己的schema.想要加载其他的schema,你可以在slapd.conf文件中用include加入.如:include  ./schema/core.schema. 为了方便识别,其实我们在DN里面用的都是objectClass的简写形式。如:ou代表organizationUnit,c代表country,st代表state,dc代表??等。

2、  来看看 slapd.conf 这个文件
这个文件的主要信息是如下几行:

database bdb

suffix "dc=<MY-DOMAIN>,dc=<COM>"

rootdn "cn=Manager,dc=<MY-DOMAIN>,dc=<COM>"

rootpw secret

directory /usr/local/var/openldap-data

定义了数据库,最基本的后缀,管理员的 dn 和密码,以及数据存放路径。

编辑好这个文件,我们就可以启动了。

如果你把 ldap 安装为 windows 服务,你可以像我一样启动:

net start OpenLDAP-slapd

 

3、  我们主要操作的就是这个 LDIF 文件
我们需要在这个文件里面加入所需要的 dn.

注意,因为我们在 slapd.conf 中定义了一个 base dn 和一个管理员 dn ,所以我们需要首先把这 2 dn 加进来。

dn: dc=<MY-DOMAIN>,dc=<COM>

objectclass: dcObject

objectclass: organization

o: <MY ORGANIZATION>

dc: <MY-DOMAIN>

 

dn: cn=Manager,dc=<MY-DOMAIN>,dc=<COM>

objectclass: organizationalRole

cn: Manager

保存为 ldif 后缀的文件。然后我们用命令把这些信息加到 ldap 中去:

ldapadd -x -D "cn=Manager,dc=<MY-DOMAIN>,dc=<COM>" -W -f example.ldif

让我们来查看以下我们的设置是否出现问题:

ldapsearch -x -b 'dc=example,dc=com' '(objectclass=*)'

上面的是 linux/unix 下的命令, windows 下我们需要做点更改:

ldapsearch -x -b dc=example,dc=com (objectclass=*)

对,就是去掉引号。

为了察看方便,笔者建议使用 GUI 工具来查看,比如笔者使用的 Softerra LDAP Browser 2.6

 

三、 java 集成
我们的 ldap Server 已经搭建起来了,我们需要在我们的 java 程序中访问这个服务。

Openldap.org 上有没有讲?有讲?下面介绍的 JLDAP 就是干这个的。

我们需要看一下“ Java LDAP Overview ”里面的内容。内容不是很多,但很实用。

要在 java 中访问 ldap ,我们需要一套 api, 你可以在下面的网站上获得:

http://developer.novell.com/wiki/index.php/LDAP_Classes_for_Java

在下在的文件里面有许多的例子,在 novell 的网站上也有很多的例子。我就不讲了。 Try yourself

posted @ 2006-08-26 08:37 binge 阅读(9148) | 评论 (7)编辑 收藏

仅列出标题
共4页: 上一页 1 2 3 4 下一页