关于作者

姓名:

性别:其他

出生日期:--

地区:

联系电话:

QQ:156752302婚否:保密
用户名:sky21sj
笔名:sky21sj
地区:
行业:其他

日历  

快速登录

+ 用户名:
+ 密 码:

在线留言



网络程序设计相关

大学生求职

高校网站

过级考试

个人主页

java学习技术相关

博友

源代码下载

sky

访问统计:
文章个数:117
评论个数:97
留言条数:9




Powered by BlogDriver 2.1

天空※动网技术文档

 

          张纪伟,就读于郑州轻工业学院。喜欢动网设计、FLASH动画设计、对数据库感兴趣并希望有所建树。路漫漫其修远兮,吾将上下而求之!如果一个人能够踏实做人做事 ,那么他的世界就是灿烂的。我坚信这一点并不断完善自己

文章

好久没来

大学毕业到现在,一直忙于工作很少维护。现在的博客播客也太多了。自己也有了空间,来的就少了很多。偶尔过来感觉一下,有太多的感慨,凡是要专一,不能半途而废。还是要坚持写些内容。

我的技术论坛,欢迎大家访问交流http://www.sky21sj.com/bbs

我们共同提高

- 作者: sky21sj 2007年12月19日, 星期三 19:18  回复(0) |  引用(0) 加入博采

天乐世纪sky21sj
摘要:终于有自己的空间了,http://www.sky21sj.com/ 有时间请大家关注下。 查看全文

- 作者: sky21sj 2007年03月23日, 星期五 17:45  回复(0) |  引用(0) 加入博采

网页设计秀

网页设计秀
http://www.cnwebshow.com/

- 作者: sky21sj 2006年11月16日, 星期四 22:52  回复(0) |  引用(0) 加入博采

学网页设计与网页制作,你该做些什么?
摘要: 问题一:看什么书   如果只想建立一个自己的主页,事实上并不需要掌握太深奥的知识,因为笔者认为,网上有很多现成的资源可以利用,如果自己去花钱买书专门来学,恐怕有点“杀鸡用牛刀”,花大力气办小事情的感觉。当然,如果要学会制作主页,笔者认为至少需要以下方面的知识:   HTML:最基本的知识,如果HTML知识掌握得好,可以用记事本就可以熟练编写网页(当然,不推荐这么做,因为有现成的工具可以帮助编写HTML,但拥有这种能力是很好的)会对日后使用编辑主页,编写ASP或PHP代码有极大帮助。 查看全文

- 作者: sky21sj 2006年11月16日, 星期四 17:54  回复(0) |  引用(0) 加入博采

网站建设的五个条件 有流量才能换票子
摘要:做站没流量不行,有流量了没钱不行,结合我自己的做站经历,把自己做站的几个经验无私贡献给喜欢网页陶吧的朋友。   1、做站采集的信息要与众不同。做站不要老是去一些著名的站采集信息,那些信息别人早就看了,没新意,很多做站的,一些站长特别喜欢去站长站采集信息,其实没必要,选用一点点就可以了,有的甚至是完全和他一样,他搞了什么你就搞什么,那是肯定发展不起来的,我做的网页吧一般不去那里采集数据,我去论坛,去另外一些别人都不知道的小站采集,这样做的效果,会让来你站的人觉得你的站和别人确实不同。只有这样你的站才可以发展起来。 查看全文

- 作者: sky21sj 2006年11月16日, 星期四 17:49  回复(0) |  引用(0) 加入博采

网页设计师联盟--国内网页设计综合门户
摘要:网页设计师联盟--国内网页设计综合门户 http://www.68design.net/ 查看全文

- 作者: sky21sj 2006年11月16日, 星期四 17:43  回复(0) |  引用(0) 加入博采

师声
摘要:在硅谷从教一年多来,和学生建立了深厚的情谊,在即将毕业离开学校的时候,祝愿学子一路走好, 路漫漫其修远兮,吾将上下而求之!如果一个人能够踏实做人做事 ,那么他的世界就是灿烂的。 查看全文

- 作者: sky21sj 2006年11月16日, 星期四 17:37  回复(0) |  引用(0) 加入博采

如何在网页弹出窗口中加入播放器
摘要:【文中的一些标号的说明】 "Filename with full URL"——待播放文件的文件名,前面带上绝对路径,或者本站的相对路径。 width_num——指定一个作为宽度的数字; height_num——指定一个作为高度的数字; 1.mid 2.mp3  查看全文

- 作者: sky21sj 2006年11月12日, 星期日 17:24  回复(0) |  引用(0) 加入博采

乐天网络工作室(lesky)
摘要:突然畅想成立自己的工作室,来创业,笑对天下每一件事情.没什么大不了的。故起名为“乐天网络工作室”LESKY. 乐天知命,故不忧——《易·系辞上》 查看全文

- 作者: sky21sj 2006年11月10日, 星期五 22:24  回复(0) |  引用(0) 加入博采

网页特效
摘要:网页特效 查看全文

- 作者: sky21sj 2006年11月9日, 星期四 17:40  回复(0) |  引用(0) 加入博采

弹出对话框的代码(网页设计)
摘要:弹窗代码经常上网的朋友可能会到过这样一些网站,一进入首页立刻会弹出一个窗口,或者按一个连接或按钮弹出,通常在这个窗口里会显示一些注意事项、版权信息、警告、欢迎光顾之类的话或者作者想要特别提示的信息。其实制作这样的页面效果非常的容易,只要往该页面的html里加入几段javascript代码即可实现。下面俺就带您剖析它的奥秘。 【1、最基本的弹出窗口代码】 查看全文

- 作者: sky21sj 2006年10月9日, 星期一 17:07  回复(1) |  引用(0) 加入博采

在Dreamweaver插入背景音乐的方法
摘要:1,MID 是用来插入背景音乐,但只适用于IE,其参数设定不多。如下: src="your.mid" :设定 midi 档案及路径,可以是相对或绝对。 autostart=true :是否在音乐档下载完之后就自动播放。true 是,false 否 (内定值)。 loop=infinite :是否自动反复播放。LOOP=2 表示重复两次,Infinite 表示重复多次。 这种方法就是直接把标记放于网页文件的...之间,设置好mid文件的路径就OK了 查看全文

- 作者: sky21sj 2006年10月7日, 星期六 20:22  回复(0) |  引用(0) 加入博采

初学者必读 ASP运行环境的搭建
摘要:首先选择操作系统。由于ASP属于MS(Microsoft)的东西,所以我们要选择MS的操作系统,Windows 98以上就可以(Windows Me和Windows XP Home不行)。 然后就是搭建个人WEB服务器(Personnel Web Serice),这就要根据操作系统来了。配置是这样的:Win98+PWS(personnel web serice)/Win2000 Pro+IIS(Internet Information Serice)/Win2000 Server+IIS(Win2000 Server 中IIS是默认安装)/Win2000 Advance Server+IIS(这里IIS也是默认安装)/WinXP+IIS/Win2003+IIS.下面具体讲一下如何安装和配置PWS/IIS。 查看全文

- 作者: sky21sj 2006年10月7日, 星期六 11:31  回复(0) |  引用(0) 加入博采

asp学习网站
摘要:ASP 中国asp行业服务网 asp源代码下载 asp技术网 查看全文

- 作者: sky21sj 2006年10月7日, 星期六 11:14  回复(0) |  引用(0) 加入博采

JAVA中文站
好地方一起分享,想学习JAVA的去看看http://www.java-cn.com/index.html

- 作者: sky21sj 2006年10月6日, 星期五 10:44  回复(0) |  引用(0) 加入博采

开通宽带
终于可以上网了,花了七百大元开通电信宽带,以后就没有与世隔绝之感了。
国庆没有回去,闷在屋里。有一年没有好好管理我的BLOG了,有点陌生的感觉了,还好以后就有时间整理了。准备好好管理面向动网开发,数据库方面。^_^希望大家顶下。

- 作者: sky21sj 2006年10月6日, 星期五 10:41  回复(0) |  引用(0) 加入博采

免费空间好去处

免费吧
我刚申请了个还可以,就是不支持动态页面,去看看吧

http://sky21sj.xinwen365.com/

- 作者: sky21sj 2006年10月5日, 星期四 21:09  回复(0) |  引用(0) 加入博采

已锁定
此日志的浏览权限已被作者锁定,请同作者联系,发送短消息,如果你的身份符合作者的要求,点击此处可以进行浏览

- 作者: sky21sj 2006年08月5日, 星期六 19:49  回复(0) |  引用(0) 加入博采

已锁定
此日志的浏览权限已被作者锁定,请同作者联系,发送短消息,如果你的身份符合作者的要求,点击此处可以进行浏览

- 作者: sky21sj 2006年05月6日, 星期六 09:14  回复(0) |  引用(0) 加入博采

上班

上班很累的,上学的好好学呀,还是考研好,

- 作者: sky21sj 2005年09月18日, 星期日 09:49  回复(0) |  引用(0) 加入博采

工作了
各位朋友大家好呀,毕业后进入工作岗位一个月了,感觉也理想中的岗位相差很远.原我的朋友努力学习工作.以后可能维护本站的时间不多,希望大家多多支持原谅.

- 作者: sky21sj 2005年08月14日, 星期日 09:22  回复(0) |  引用(0) 加入博采

在页面显示出错的信息jsp
有两种出错提示方法。
1. 弹出一个windows 的messageBox的对话框.
我们的软件是在servlet中用javascript来实现的。代码如下:
/**
  * 弹出对话框提示用户,并且刷新指定页面
  */
public void messageBox(
  javax.servlet.http.HttpServletResponse response,
  String msg,
  String url,
  String target) {
  PrintWriter out;
  try {
   response.setContentType("text/html; charset=gb2312");
   out = response.getWriter();
   out.println("");
   out.println("");
   out.println("");
   out.println("
");
   out.println("");
   out.println("");
   out.close();
  } catch (Exception e) {
  }
}

2. 调用一个jsp页面。
在jsp页面中引入了一个javascript做的tree形式的控件,把错误信息显示出来。

整个软件中的例外机制大概就是这个样子。

--------------------------------------------------------------------------------------------------

对一个ERP产品的认识(2)---对数据库表的单表操作

这篇文章主要介绍该ERP系统中的对SQL2000数据库中表的操作,包括数据的插入,修改,删除等(对于数据操作的事务控制以及数据源的取得,我会别写一篇文章了)。我分别对单表和多表的两种不同的操作加以说明。
总述:
我们为数据库中的每一个表都写一个对应的java类,一般取名叫” XXXAITO”或” XXXTO”. “XXXAITO”表示这个数据库中对应的表是有自维护主键的。” XXXTO”则表示数据库中对应的表没有自维护主键。
1.先从”XXXAITO”说起。它的构造函数中一般是这样写的:
     public TblOrgAITO() {               //构造函数名称
  super();                        //这句话没起什么作用
  this.var_TableName = "TblOrg";          //把数据库表名符给这个变量    
this.var_PrimaryKeys = new int[]{0};     //说明这个表的主健的位置就在下面定义的数组
                                   //中的第一个位置
this.var_Columns=new                //定义了一个数组,把数据表中的每个字段都写了
//进去。
                                
String[]{"orgSN","orgChnName","orgEngName","orgCounChnName","orgCounEngName","orgCityChnName","orgCityEngName","orgBank","orgBankNumber","orgTaxNumber"};  
  this.var_AIColumnName = "orgSN";       //说明orgSN是主键

}
于是,一个数据表的大多数信息都已经可以得到了。
接着给每个字段定议setXXX(),getXXX()方法。就象下面这个例子:
private java.lang.String col_webAddress;
public void setWebAddress(java.lang.String newwebAddress) {
  this.col_webAddress = newwebAddress;
}
public java.lang.String getWebAddress() {
  return this.col_webAddress;
}
这样这个XXXAITO类就可以做为保存信息的一个bean了。
当你要对这个数据表做add()操作时,只要把所有要增加的信息都放到一个databean里,并调用XXXAITO的add()方法就可以了。这时就会执行XXXAITO的父类AutoIndexTO中的add()方法了。
2.调用AutoIndexTO中的add方法。
在这个类的add()中,有下面这些拼接成sql的语句:
    //查询可用的主键值
    String queryAIvalue = "DECLARE @AITO_NEWID BIGINT";
    queryAIvalue += " SELECT @AITO_NEWID=MAX("
        + this.var_AIColumnName
        + ")+1 FROM "
        + this.var_TableName
        + " WHERE "
        + this.makeAIWhereClause();
    //如果没有符合条件的编号,默认从1开始
    queryAIvalue += " IF (@AITO_NEWID IS NULL) BEGIN SELECT @AITO_NEWID=1 END ";
queryAIvalue += " SELECT @AITO_NEWID AS AITOID ";
上面的sql语句执行后,就可以用下面的语句得到自维护主键的值了。
try {
            if (rs.next()) {
                aitoid = rs.getString("AITOID");
            }
        } catch (SQLException ex) {
            throw new DAOException("0043", ex);
        }
把这得到的主键值付给XXXAITO中表示主键的字段,再调用AutoIndexTO的父类BaseTO中的add()方法。实际上,AutoIndexTO这个类中的add()方法只是起了一个“生成自维护主键值”的作用啊。
3.调用BaseTO中的add()方法。
   这个类是真正把数据写入数据库表中的地方。
a. 定义与数据源的联结:
    Connection conn = null;
PreparedStatement preStmt = null;
b. 用java程序拼出对数据表操作的sql语句:
      String insertinto = "INSERT INTO " + this.var_TableName + " (";
String values = " valueS (";
……(此处略去)
insertinto += ") ";
values += ") ";
c. 准备数据。这里是所有的XXXAITO和XXXTO都最终可以共用BaseTO的add()方法的原因,很重要哦!
  try {
        String addSQL = insertinto + values;
        try {
            preStmt = conn.prepareStatement(addSQL);

        } catch (SQLException ex) {
            HashMap map = new HashMap();
            map.put("SQL", addSQL);
            throw new DAOException("0002", map, ex);
        }
大家都看到conn.prepareStatement(addSQL)了。这个prepareStatement方法在BaseTO中是一个abstract的方法,具体实现都在每个XXXAITO和XXXTO的类中。举个例子如下,这是一个XXXAITO中的prepareStatement方法。它把要放入数据表中的数据都准备好。然后在下一步(d步中)把这些数据插入数据库。
protected PreparedStatement prepareStatement(PreparedStatement preStmt,int[] sequence)
  throws SQLException {
  for (int i = 0; i < sequence.length; i++) {
   if (sequence[i]>0) {
    tch (i) {
     case 0 :
      preStmt.setInt(sequence[i],this.col_orgSN);
      break;
     case 1 :
      preStmt.setString(sequence[i],this.col_orgChnName);
      break;
     case 2 :
      preStmt.setString(sequence[i],this.col_orgEngName);
      break;
              。。。。。。(此处略去了啊)

    }
   }
  }
  return preStmt;
}
d. 准备完数据就可以插入数据表了啊。
  try {
      count = preStmt.executeUpdate();
        } catch (SQLException ex) {
            HashMap map = new HashMap();
            map.put("SQL", addSQL);
            throw new DAOException("0004", map, ex);
        }
于是数据就已经存到数据表中了。
补充:
1.对数据的update(),delete()操作都和add()类似,最后都是调用BaseTO中的相应方法了。
2.”XXXAITO”和” XXXTO”的区别在于XXXAITO要先extends(继承) AutoIndexTO,然后再调用BaseTO中的相应方法。而XXXTO则直接调用BaseTO中的相应方法. 因为XXXTO不用设置自维护的主键啊。
3.所有的”XXXAITO”和” XXXTO”都可以用工具自动生成的。

--------------------------------------------------------------------------------------------------

对一个ERP产品的认识(3)---对数据库表的多表的操作
这里讲的对多表的操作主要是指search()操作。因为对多表的add,delete,update等都可以分为对多个单表的操作。对多表的search()操作,想把数据从对几个表查找得到的结果中抽出来,并在页面上显示出来,我们是这么做的。
1.首先,做一个databean,把要查找的几个表中的数据字段都放在里面,并分别加上setXXX(),getXXX()方法。
2.写出查讯的条件如下:
String where =
               。。。。。。
                    + " and tblprovscus.prodsn=tblproduct.prodsn"
                    + " and tblprovscus.orgsn=tblorg.orgsn";
3.先把要查讯的每个数据表的to类都告诉BasePJL这个类,然后调用BasePJL这个类的retrieveMatrix()方法。
BasePJL pjl = new BasePJL();
BaseTO[] tos = { new TblProVSCusTO(), new TblProductAITO(), new TblOrgAITO()};
            //
            pjl.setTOs(tos);
            BaseTO[][] rv = pjl.retrieveMatrix(roll);
4.BasePJL中的retrieveMatrix()方法。
。。。。。。
StringBuffer SQL = new StringBuffer(300);
SQL.append("SELECT ");
for (int i = 0; i < TOs.length; i++) {
        if (i != 0)
            SQL.append(" , ");
        SQL.append(getFullPathColumns(TOs[i]));
    }
SQL.append(" FROM ");
for (int i = 0; i < TOs.length; i++) {
            tableNames += TOs[i].TableName();
            if (i != TOs.length - 1) {
                tableNames += ",";
            }
        }
。。。。。。
上面的程序拼好了sql语句,其中的getFullPathColumns()方法是在每个表的字段名前加上自己的表名,这是因为在多表查询时,往往会有字段名重复的情况,所以这里在组合SQL语句时,需要 每个字段名具有唯一标志,这时最好的办法是每个字段名都包含表名。
rs = stmt.executeQuery(SQL.toString());
上面语句得到结果集rs.
5.从得到的结果集rs中找到每个单表中的数据。
a.   BaseTO[][] set = new BaseTO[数据集的长度][ 表的数量];
set[数据集的长度] = this.fetchQueryObjects(rs);
b. this.fetchQueryObjects() 中的代码是这样写的,实例化每个表对应的to类, 然后调用单表各自的 fetchQueryObject()方法来从rs取出 各自要的数据。
//初始化所有的TO的类。
    Class[] referenceClasses = new Class[TOs.length];
    for (int i = 0; i < TOs.length; i++) {
        referenceClasses[i] = TOs[i].getClass();
    }
    BaseTO[] set = new BaseTO[TOs.length];
    //定义每一个PO的实例变量。
    for (int i = 0; i < TOs.length; i++) {
        // 通过循环实例化结果集中的每一行中的各个对象的实例。
        try {
            BaseTO to = (BaseTO) referenceClasses[i].newInstance();
            to = to.fetchQueryObject(rs);
            set[i] = to;
        } catch (InstantiationException ex) {
            throw new DAOException("0046", ex);
        } catch (IllegalAccessException ex) {
            throw new DAOException("0047", ex);
        }
        catch(SQLException ex){
        }
    }
return set;
c. 在to类中的fetchQueryObject() 的例子。
protected void fetchQueryData(java.sql.ResultSet rs) throws SQLException{
    
this.col_projectName = rs.getString("tblImportProject_projectName");
。。。。。。。  
于是每个子表都取得了自己的数据。并都存在了set[][]中。
6. 从set[][] 中取出你要查的东西。
    set[count][tos]中的count表示一共查出来的数据的条数,tos表示的就是所渉及的to的数组。
TblProVSCusTO to1 = (TblProVSCusTO) set [i][0];
TblProductAITO to2 = (TblProductAITO) set [i][1];
现在数据都在to1,to2中有了,你就可以取出来放到你自己的databean了。然后把databean传到页面,不就实现了多表的查讯吗?

----------------------------------------------------------------------------------

对一个ERP产品的认识(4)-----与数据库建立联结

1. 先用DataSourceDriverInfo这个类从你自己的配置文件中读取数据库驱动及别的建立数据源需要的信息。然后决定是建立池态的或是非池态的联结。
配置文件可以这么写
drivers=com.inet.tds.TdsDriver sun.jdbc.odbc.JdbcOdbcDriver
default=access
access.url=jdbc:inetdae7:mztec?database=mztecerp
access.pooled=true         //是否建立池态的联结
access.user=sa            
access.password=
access.initconns=2
access.maxconns=5
然后根据pooled的值是true还是false还决定建立的数据源是池态的还是不是池态的,来分别调用PooledDataSource或NormalDataSource这两个java类中的一个。
2. 建立池态的或非池态的数据源。(这里主要讲怎么建立池态的联结。)
(1)。建立非池态的联结
NormalDataSource用来建立一般非池态的联结,下面语句就可以搞定了
  conn = DriverManager.getConnection(getURL());
(2)。建立池态的联结
PooledDataSource 这个类是用来建立池态的联结,其中的代码相对多一些了。分a,b,c三步说。
a. 用getConnection()方法得到一个与数据库的联结。代码如下面这样:
     while((conn=getPooledConnection())==null){
   try{
    wait(remaining);
   }
   catch(InterruptedException ex){
   }
   remaining = timeout - (System.currentTimeMillis()-startTime);
   if(remaining<=0){
    // Timeout has expired
    HashMap map = new HashMap();
    map.put("timeout",timeout+"");
    throw new DataSourceException("0019",null);
   }
  }
return conn;
程序中先看能否用getPooledConnection()这个方法得到一个与数据库的联结,如果得到的为null,那么就让当前的线程先”休息”。如果不是null,就把这个联结返回给用户了。如果休息的时间超过了在前面的配置文件中设定的时间长度时,还没有得到可用的数据库联结则抛出例外。
     当有别的线程把一个不用的数据库联结放回池中时,就会激活这里的wait()方法,让当前正在等待的线程序去尝试得到这个联结。这在下面的第c步中有写到。
b. 上面程序中用到的getPooledConnection()方法用来从池中得到联结。是这样的写的:
/**
**其中用到的freeConnections 字段是这样定义的了:
**private Stack freeConnections = new Stack();
**这里的freeConnections  就表示了存放数据联结的那个池子了。
**/

  if(freeConnections.size()>0){  
   conn = (Connection)freeConnections.pop();
  }
  else if(maxConns==0||checkedOut   conn = newConnection();
  }
  return conn;
上面的代码表示:如果Stack类型的freeConnections中还有可以用的联结,那就pop出来一个用用。或者,如果已经取出来的联结数量小于在配置文件中设定的数量,那就新建一个联结。否则就返回一个null了.那在a步中得到的联结就是null了,于是当前线程就会wait了。直到c步的noitfy把线程又激活了。
C . 把释放后的联结放回池中
public synchronized void freeConnection(Connection conn){
  // Put the connection at the end of the Vector
freeConnections.push(conn);  //把一个联结“压”回到Stack中//了,也就是说把数据联结放回到池中.
  checkedOut--;    //表示从池中取出的联结的数量减一
  notifyAll();
}
notifyAll();这句话就激活了所有的在wait数据联结的线程了。
总的来说,这个数据联结池是用Statck来实现的,每用一个池中的联结就把戏Statck中的成员pop出一个,用完再push进去就行了。(每个具本联结的建立就和平常建联结是一样的了。)
3.用DataSourceManager这个类来控制对数据源的使用
a. 这个类的构造方法中是这样写的
if(dsInfo!=null) release();
dsInfo = new DataSourceDriverInfo();
在这里实例化了一个我们在第一步中说的类。这样就建立了一个池态或非池态的数据库联结了。
b. 如果用户想得到与数据库的联结就可以调用DataSourceManager的getConnection()方法,就可以得到联结了,而不必考虑是池态还是非池态的联结了。
c. DataSourceManager这个类的其他几个方法是用作对事务进行控制,我在专门讲事务的文章里写他的这一部分的功能。

----------------------------------------------------------------------------------

- 作者: sky21sj 2005年06月6日, 星期一 09:20  回复(1) |  引用(0) 加入博采

DreamWeaver,经典50问
摘要:Dreamweaver一直是不少网友钟情的网页设计工具,除了它强大的动态效果制作能力外,方便简洁的操作界面更是独具特色,下面我们将以最新版本Dreamweaver4为例,并以提问的方式系统的介绍下,在设计过程中经常遇到的一些问题和技巧性的东西。 注意:为了方便,以下我们将Dreamweaver全部减缩为DW表示。 查看全文

- 作者: sky21sj 2005年05月7日, 星期六 21:51  回复(0) |  引用(0) 加入博采

Dreamwaver 常见问答解答
摘要:为什么在DW里编辑时可看见的图片,在浏览器里却没有显示? 你可能使用了中文的文件名和路径,DW对此不支持。当你使用中文做路径和文件名称时,DW会自动转换为ASCII码,从而发生文件查找错误。赶快把目录名和文件名(包括图片文件)改为英文吧,一切就ok了。 查看全文

- 作者: sky21sj 2005年05月4日, 星期三 05:46  回复(0) |  引用(0) 加入博采

Dreamwaver 常见问答解答
摘要:为什么在DW里编辑时可看见的图片,在浏览器里却没有显示? 你可能使用了中文的文件名和路径,DW对此不支持。当你使用中文做路径和文件名称时,DW会自动转换为ASCII码,从而发生文件查找错误。赶快把目录名和文件名(包括图片文件)改为英文吧,一切就ok了。 查看全文

- 作者: sky21sj 2005年05月4日, 星期三 05:46  回复(0) |  引用(0) 加入博采

Dreamwaver 常见问答解答
摘要:为什么在DW里编辑时可看见的图片,在浏览器里却没有显示? 你可能使用了中文的文件名和路径,DW对此不支持。当你使用中文做路径和文件名称时,DW会自动转换为ASCII码,从而发生文件查找错误。赶快把目录名和文件名(包括图片文件)改为英文吧,一切就ok了。 查看全文

- 作者: sky21sj 2005年05月3日, 星期二 21:58  回复(0) |  引用(0) 加入博采

DreamWeaver技巧二十例

1. 如何在网页中加入注释?

代码:< !-- 这是注释 -->
2. 如何在网页中加入EMAIL链接并显示预定的主题?

代码:< a href="mailto:yourmail@xxx.xxx?Subject=你好">Send Mail< /a>

3. 如何制作电子邮件表单?

在<FORM>中输入Action="youremail@XXX.XXX" ,提交采用POST方法。

4. 如何避免别人将你的网页放入他的框架(FRAME)中?

在源代码中的<HEAD>…< /HEAD>之间加入如下代码:

<script language="javascript"><!--

if (self!=top){top.location=self.location;}

-->< /script>

5. 如何自动加入最后修改日期?

在源代码中的<BODY>…< /BODY>之间加入如下代码:

< Script Language="JavaScript"><!--

document.write("Last Updated:"+document.lastModified);

-->< /Script>

6. 如何让背景图象不滚动?

代码:<BODY Background="bg.gif" Bgproperties="fixed" >

在Dreamweaver中用「Text」-「Custom Style」-「Edit Style Sheet」-「New」-Redefine HTML Tag中选择Body,然后在Background中的Attachment里选fixed

7. 如何将网页定时关闭?

在源代码中的<BODY>后面加入如下代码:

< script LANGUAGE="JavaScript"> <!--

setTimeout('window.close();', 60000);
--> < /script>

在代码中的60000表示1分钟,它是以毫秒为单位的。

8. 将网页加入收藏夹?

请使用如下代码:(注意标点符号)

< a href='#' onclick="window.external.addFavorite('http://www.pyinfo.ha.cn','濮阳信息港 各种网页工具教程DW、FLASH、FIREWORKS及CGI教学、聊天交友

……')" target="_top">将本站加入收藏夹< /a>

9. 如何定义网页的关键字(KeyWords)?

格式如下:

< meta name="keywords" content="dreamweaver,flash,fireworks">

content中的即为关键字,用逗号隔开

在Dreamweaver中用「Insert」-「Head」-KeyWords命令

10. 如何设置命令来关闭打开的窗口?

在源代码中加入如下代码:

< a href="/" onclick="javascript :window.close(); return false;">关闭窗口< /a>

11. 如何在网页中加入书签,在页面内任意跳转?

在源代码中需要插入书签的地方输入,在调用的地方输入Top,其中的top是你设定的书签名字。

在Dreamweaver中用菜单的「Insert」-「Name Anchor」命令插入书签,调用时,在Link中输入#top,top为书签名。

12. 如何为不支持框架的浏览器指定内容?

在源代码中加入下面代码:

< BODY><noframes>本网页有框架结构,请下载新的浏览器观看< /noframes></ BODY>

13. 如何在网页中加入单个或几个空格?

在源代码中输入&nbsp,每个&nbsp之间请用空格分开。

在Dreamweaver中用<CTRL>+<SHIFT>+<SPACE>插入空格或任输几个字符,然后将其色彩设成背景的色彩!

14. 如何在网页中加入书签,在多个页面之间任意跳转?

方法与上面类似,不过做链接时要在书签名前加上网页文件名,如:other.htm#top,这样一来就会跳转到other.htm页面中的top书签处。

15. 如何使表格(TABLE)没有边框线?

将表格的边框属性:border="0"

16. 如何隐藏状态栏里出现的LINK信息?

请使用如下代码:

< a href="http://www.pyinfo.ha.cn" onMouseOver="window.status='none';return true">梦想天空< /a>

17. 如何定时载入另一个网页内容?

在源代码中的<HEAD>…< /HEAD> 加入如下代码:

< meta http-equiv="refresh" content="40;URL=http://www.pyinfo.ha.cn " >

40秒后将自动载入http://www.pyinfo.ha.cn所在的网页

18. 如何为网页设置背景音乐?

代码:< EMBED src="music.mid" autostart="true" loop="2" width="80" height="30" >

src:音乐文件的路径及文件名;

autostart:true为音乐文件上传完后自动开始播放,默认为false(否)

loop:true为无限次重播,false为不重播,某一具体值(整数)为重播多少次

volume:取值范围为"0-100",设置音量,默认为系统本身的音量

starttime:"分:秒",设置歌曲开始播放的时间,如,starttime="00:10",从第10开始播放

endtime: "分:秒",设置歌曲结束播放的时间
width:控制面板的宽

height:控制面板的高

controls:控制面板的外观

controls="console/smallconsole/playbutton/pausebutton/stopbutton/volumelever"

·console:正常大小的面板

·smallconsole:较小的面板

·playbutton:显示播放按钮

·pausebutton:显示暂停按钮

·stopbutton:显示停止按钮

·volumelever:显示音量调节按钮

hidden:为true时可以隐藏面板

19. 如何去掉链接的下划线?

在源代码中的<HEAD>…</HEAD>之间输入如下代码:

<style type="text/css"> <!--

a { text-decoration: none}

--> < /style>

在Dreamweaver中用「Text」-「Custom Style」-「Edit Style Sheet」-「New」-Redefine HTML Tag中选择a,然后在decoration中选中none

20. timeline中的layer走曲线?

要使得timeline中的layer走曲线,你得先让他走出直线来,然后在最后一frame和第一frame中间的任何一frame上点右键,可以看到有个 add keyframe ,点一下,然后把你的layer移

动到你要的位置,dw会自动生成曲线,good luck !

- 作者: sky21sj 2005年05月3日, 星期二 21:42  回复(0) |  引用(0) 加入博采

如何在Dreamweaver中加入空格

如何在Dreamweaver中加入空格

对于Dreamweaver的初学者,也许都曾经为空格的输入问题伤过脑筋。这是Dreamweaver3就有的老问题了。可以用以下方法解决:

1.输入全角空格。

可以使用中文输入时全角下的空格来输入。如果你用的是智能ABC的拼音输入的话,那请按SHIFT+空格,这时输入法的属性栏上的半月型就变成了圆型了,然后再敲空格键,空格就出来了。

2.你也可以在输入的时候直接按CTRL+SHIFT+空格,连按四次,就可以得到两个汉字大小的空格。或者直接输入&nbsp也可。如果用全角空格的话,可能在某些浏览器中看不到,这种方法虽然在制作过程中看不到空格,但对浏览器兼容性更好。

3.把输入法转换成智能ABC,打 V+1+空格,也很好用的。

4.将属性栏中的FORMAT设定为Preformatted后,就可直接输入空格。

注:对于段落的首行缩进,不用加空格,最好设置CSS让<p> 缩进来得到首行缩进效果。

- 作者: sky21sj 2005年05月3日, 星期二 21:31  回复(0) |  引用(0) 加入博采

目前主流 Blog 程序介绍及下载
 

几个月没关心blog了,blog程序局势发生了很大的变化,尤其在国内,在原有的那些程序功能越来越强大的同时,还出现了很多不错的blog,但国外没出几个好的,MT还居于霸主地位,也许在未来几年内MT的地位是不会动摇的,国内ASP的L-blog已经成为主流,php里,多用户的Plog发展最快,其他功能都差不多,用的人比较多的是wordpress,exBlogMix,bo-blog,另外几个国产blog发展也很快。具体的功能区别我也说不上来了,大家一个一个去研究吧。

  我选用blog的最基本要求就是:免费,这个最重要,呵呵;完美支持中文,包括显示和搜索;支持分类;可以发表评论,但最好有评论审核功能;支持RSS,z在我看来,不支持rss只能叫做日记本,不能称作blog;支持TrackBack,方便被人引用;有WYSIWYG编辑器;可以上传文件;模板最好和程序分离,方便修改;可以发草稿,方便以后修改。我收集的这些都具备了blog的基本功能,国外blog程序现在有上百个,但真正好用的不多。

  现在很多人在找多用户blog,我列出的大部分都说自己支持多用户,但实际上多用户有两种,一种是多人共同维护一个blog,另一种是每个人有独立的blog,更多的人需要后一种,asp里的oblog和missblog,php里的Plog,asp.net里的Dottext,这几个比较好用。

  下载地址我没有列出,都可以在官方网站下载。

ASP 版本
L-Bloghttp://www.loveyuki.com Loveyuki自主开发的基于 ASP+Access 的小型单用户BLOG,作者比较勤奋,更新很快,现在还有很多L-blog的修改版提供,模板有的非常漂亮。  (目前四四。音乐心情就是用的这个BLOG,具体我没有用,看上去功能不错,界面也很漂亮,不过图好像都是四四自己设计的,只能说明他的图设计的好:),速度他自己说不是很快,已经有很多基于L-Blog的OEM版推出,功能相当完善,有些界面也很是漂亮!)

Dlog: http://webdream.duoluo.com/国人开发比较早的一个blog了,最新版是V2.2 ,现在已经停止了开发,但已经是一个完善的程序了! (原开发者已经停止更新,并宣告DLOG死亡。请大家慎用。但DLOG确实是BLOG中的佼佼者,向原开发者致敬!)

Misslog: http://www.misslog.com/blog多用户blog,使用UTF-8编码,支持简繁转换! 

theAnswer: http://bravetime.com/dev/ 程序和界面都非常规范,现在已经是sourceforge的一个开源项目了 

cixiblog: http://blog.ic5.cn/blog asp+sqlserver存储过程+xml+asp缓存技术的多用户网络日志程序 

oblog: http://www.oioj.net 是多用户版本的Blog,实现了Blog的大部分功能,发展很快,现在已经出了SQL商业版本了。 

blogx: http://www.blanksoft.com/blogx/

天畅博客: http://www.skycx.com/blog/非常简单小巧,但不支持RSS 

另外几个国外比较看得上眼的: 
dblog: http://www.dblog.it/dblog/
BP Blog: http://www.betaparticle.com/blog/
Matthew1471's BlogX: http://blogx.co.uk/Main.asp 


ASP.NET  版本
DotText: http://scottwater.com/Dottext/default.aspx 非常强大的多用户blog,国内很多大型网站在用,但安装调试非常复杂,有很多汉化版下载。 

BlogX: http://www.simplegeek.com/CategoryView.aspx/BlogX这里有一个blogx的中文修改版 http://www.blanksoft.com/blogx.asp

dasBlog: http://www.dasblog.net新出来的程序,功能也比较齐全 


PHP  版本
b2: http://www.cafelog.com的老祖宗,操作简单,容易上手,现在好像停止了开发。 

b2evolution: http://www.b2evolution.net  B2多用户版,有很多风格和插件。 

wordpress: http://www.wordpress.org在B2的基础上开发的,添加了很多功能,国内用户很多,。 

pivot: http://www.pivotlog.net PHP+XML,没有使用数据库,有中文语言包, 

nucleus: http://www.nucleuscms.org这个也是比较老牌的程序了,有中文语言包! 

exBlogMix: http://exblog.fengling.net功能很强大的blog,更新很快,推荐使用。 (那天我试用了一下,可惜不支持html编辑,不习惯我就换了)

M-logger: http://miracle.shakeme.net文本储存数据。 

bo-blog: http://www.bo-blog.com/文本数据库,现在发展的很快。 (我现在在用的,也是刚下载,除了是文本数据,可以省去数据库空间,其它感觉也还好,就是不知道到时文件大了文本数据会不会太影响速度)

drupal: http://www.drupal.org著名的开源程序,功能非常强大,多用户,有多种插件和皮肤下载! 

O-BLOG: http://her.com.ru/需在PHP+MYSQL环境下运行,采用 SMARTY 模板,HTMLAREA编辑器 

R-Blog: http://rays.512j.com/采用PHPLIB模版引擎,程序与美工基本分离,改版比较方便 

boeiblog: http://myblog.boei.cn新出来的blog程序,简单易用,模板很多。 

SaBlog: http://www.4ngel.net/project/sablog.htm 安全天使小组开发的一个简单易用的blog,支持模板 

Pmschine: http://www.pmachine.com这个估计是blog的元老了,不过现在已经商业化了,新版本名叫Expression Engine,在国内可以免费下载! 

bBlog: http://dev.bblog.com/一个非常简洁好用的blog,汉化版: http://www.xptop.com/lei/ 

serendipity: http://www.s9y.org功能很多,每个功能以模块方式安装,界面也很容易修改。 

bMachine: http://boastology.com同时支持文本数据库和MySQL数据库,支持中文搜索。 

Plog http://www.plogworld.org/  php blog里的最好作品了,真正的多用户,博客中国,blogit都是用这个改的。 

Plainslash: http://www.51zhao.com/plainslash/文本blog程序,作者很久没更新了,但现在blog的基本功能都有了。 

Simple Blog : http://www.bigevilbrain.com/sphpblog国外的一个文本的小型blog,代码和界面都很简洁。 

Tatter Toolkit : http://www.tattertools.com韩国人开发的 Blog,界面美观,功能很全。汉化中文站:http://e345.com.ru

myphpblog: http://www.myphpblog.org/

sunlog: http://www.sunlog.org

RCBlog: http://rcsoft.co.nr/

Twoblog: http://www.twoblog.com/

我的柒楼http://www.7log.com/download/(基于PHP/MySQL的blog系统7log已经发布了完整版本,程序最大的特点是生成静态文件,更是便于搜索引擎的搜索)


CGI  版本
MT: http://www.movabletype.org 就是我现在用的,世界上用户最多的blog程序,自动生成html!后缀可以自己设置,支持文本数据库和mysql,mssql等! 

Greymatter: http://www.noahgrey.com/greysoft/是一个类似 Movable Type 的Blog程序非常简单,也是生成静态文件。 

HUS Reviv: http://supermanc.51.net/norman/blog.cgi 国人开发的,功能很强大,但由于cgi语言的问题,安装调试比较复杂,而且很占资源。 

Blosxom: http://www.blosxom.com很老的一个程序了,也可能是世界上最小的blog系统了,只有一个文件却实现了blog的大部分功能! 


JSP  版本
DLOG4J: http://dlog4j.sourceforge.net/ 国人开发的,已经申报SourceForge项目 中文官方站: http://www.javayou.com 

TM: http://www.terac.com朋友andy开发的一个功能强大的blog,支持文件上传、RSS、评论、WYSIWYG 编辑器等功能,多种语言(含简体中文) 

snipsnap: http://snipsnap.org/space/startwiki和blog结合的东东,开源项目,支持多国语言。

==============================================================
转自:老鬼的Blog
转载请注明转载地。


- 作者: sky21sj 2005年03月30日, 星期三 08:49  回复(0) |  引用(0) 加入博采