• DB2数据库
    1、Load 方法装入数据:
      export to tempfile of del select * from TABLENAME where not 清理条件;
      load from tempfile of del modified by delprioritychar replace into TABLENAME nonrecoverable;
      说明:
      在不相关的数据表expor...
  • 客户端负载均衡及透明应用切换(TAF)

    这是客户端的一种功能,要在客户端的tnsnames.ora中设置本地服务命名相应的参数(LOAD_BALANCE=ON和FAILOVER=ON、FAILOVER_MODE参数)来启用客户端负载均衡和TAF功能。客户端负载均衡并不衡量RAC节点CPU的使用率,它只是随机的连接一个节点的监听。由于是随机连接,所以大体上做到连接数的负载均衡。在RAC环境中设置tnsnames.ora时,应使用SERVICE_NAME

    ...
  • 一、数据库设计过程
    数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。
    数据库设计中需求分析阶段综合各个用户的应用需求(现实世界的需求),在概念设计阶段形成独立于机器特点、独立于各个DBMS产品的概念模式(信息世界模型),用E-R图来描述。在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。然后根据用户处理的要求,安全性的考虑,...
  • WebSphere 性能优化技巧集 发布: 2009-2-04 13:34 | 作者: webmaster | 来源: 本站原创 | 查看: 39

      优化Web应用的性能绝不象有些人想象的那样简单易行,它涉及到诸多技术,从最简单的HTML代码修改,到复杂的EJB改造,无不涉及性能问题。但有一点是非常清楚的:要想找出和解决Web应用的性能瓶颈,就必须深入全面地了解信息在Web应用中的流程。

       改善Web应用的性能不一定要局限于Web应用的Java...
  •  表空间是oracle数据库中最大的逻辑单位与存储空间单位,数据库系统通过表空间为数据库对象分配空间。表空间在物理上体现为磁盘数据文件,每一个表空间由一个或多个数据文件组成,一个数据文件只可与一个表空间相联系,这是逻辑与物理的统一。了解表空间和数据文件的的属性及使用率,是数据库管理员的一项重要职责。 下面以oracle9i为例,详细介绍查询Oracle数据库表空间信息和数据文件信息的方法。

    一、查看Oracle数据库中表空间信息的方法

    1、查看O...
  •  表空间是oracle数据库中最大的逻辑单位与存储空间单位,数据库系统通过表空间为数据库对象分配空间。表空间在物理上体现为磁盘数据文件,每一个表空间由一个或多个数据文件组成,一个数据文件只可与一个表空间相联系,这是逻辑与物理的统一。了解表空间和数据文件的的属性及使用率,是数据库管理员的一项重要职责。 下面以oracle9i为例,详细介绍查询Oracle数据库表空间信息和数据文件信息的方法。

    一、查看Oracle数据库中表空间信息的方法

    1、查看O...
  • package cn.net.withub.xfgl.common;

    /**
    * @author YuLuo
    */

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import jav...
  • /**
     * @(#) UserAuthenticateFilter.java
     *
     * Copyright 2004 Opensource Develop Team. All rights reserved.
     */

    // package
    package com.opensource.filter;

    // imports
    import sun.misc....
  • 6.8 同步启动选项 

    不管是master还是slave,都要设定 server-id 选项来确定使它们都有各自唯一的同步ID。必须选择 1 到 2^32-1 之间的正整数。例如: server-id=3。


    关于master服务器上可用于控制二进制日志记录的选项详细描述请看"5.9.4 The Binary Log"。


    下表描述了slave同步可用的选项,可以在命令行或者配置文件中...
  • 6.5 不同MySQL版本之间的同步兼容性 

    最早的二进制格式是在MySQL 3.23中开发出来的。在MySQL 4.0中改进了,MySQL 5.0又改进了。在配置同步时需要升级服务器的话,它们之间的因果关系在"6.6 Upgrading a Replication Setup"中描述了。


    如果只关心同步,任何MySQL 4.1.x版本和MySQL 4.0.x是一样的,因为它们都使用相同格式的二进制日志。所以,这些...
  • 6.4 设置同步 

    以下描述了如何快速设置MySQL同步服务器。假设你打算同步全部的数据库,并且之前没有设置过。需要关闭master服务器以完成全部的步骤。

     

    本章描述的过程可以用于一个slave的情况,也可以用于多个slave的情况。


    这只是一个最直接设置slave的办法,并不是只有一个。例如,已经有了master的数据快照(snapshot),master已经设置了服务器编号...
  • 6 MySQL 同步 

    同步功能在MySQL 3.23.15就开始引进了,它可以把一个MySQL服务器上的数据复制到另一个服务器上去。本章描述了MySQL的各种复制特性。介绍了同步的概念,如何设置同步服务器,以及可用服务器的参照。还提供了一系列的常见问题及其答案,疑难解答。

    "14.6 Replication Statements"中介绍了同步相关的SQL语句语法。

    我们建议经常访问"http:...
  • 前言 A为主机,B为备份机, 同为双网卡,而且可以通过内网相连

    A 内网IP : 192.168.195.28

    B 内网IP : 192.168.195.30

    数据库版本(5.0.22),目录,初始的库,表 两台机器是一样的

    需要备份的库      ad_data , alexa_info , log_db , oblog , union_db , zm0061_...
  • 2008-07-04

    redhat下载

    http://rhel.ieesee.net/uingei/
  • ftp://openware.byr.edu.cn/pub/os-images/Redhat/RHEL4u5/i386/RHEL4-U5-i386-AS-disc1.iso

    ftp://openware.byr.edu.cn/pub/os-images/Redhat/RHEL4u5/i386/RHEL4-U5-i386-AS-disc2.iso

    ftp://openware.byr.edu.cn/pub/os-images/Redhat/RHEL4u5/i...
  • 2008-04-05

    nagios 探索

    http://blog.chinaunix.net/u/28387/showart_371675.html
  • 2008-04-01

    mysql内存

    我们如何评估一个给定的MySQL server配置所消耗的内存。我们使用什么公式。担心内存使用率的原因是可以理解的。如果你配置了一个MySQL 服务器,它使用很少的内存而它的性能欠优化。而如果你配置的MySQL服务器消耗太多的内存有可能会崩溃,执行查询失败或导致内存和交换分区频繁操作降低速度。运行在32位平台,可能运行时产生地址溢出,因此不得不监视MySQL。正如所说的,我认为寻找一个有可能计算出内存使用公式的方法不是解决问题的正确途径。原因就是----这个公式非常复杂,进而只是提供给我们&ldqu...
  • 内容摘要:使用MySQL服务的一些经验,主要从以下几个方面考虑的MySQL服务规划设计。对于高负载站点来说PHP和MySQL运行在一起(或者说任何应用和数据库运行在一起的规划)都是性能最大的瓶颈,这样的设计有如让人一手画圆一手画方,这样2个人的工作效率肯定不如让一个人专门画圆一个人专门画方效率高,让应用和数据库都跑在一台高性能服务器上说不定还不如跑在2台普通服务器上快。

    以下就是针对MySQL作为专门的数据库服务器的优化建议:

    MySQL服务的安装/配置的...
  • 日期:2006/10/01

    本文讨论 MySQL 的备份和恢复机制,以及如何维护数据表,包括最主要的两种表类型:MyISAM 和 Innodb,文中设计的 MySQL 版本为 5.0.22。

    目前 MySQL 支持的免费备份工具有:mysqldump、mysqlhotcopy,还可以用 SQL 语法进行备份:BACKUP TABLE 或者 SELECT INTO OUTFILE,又或者备份二进制日志(binlog),还可以是直接拷贝数据文件和相关的配置文件...
  • 一、环境和要求:

      线路:ADSL:2M/512K

      eth0:10.0.0.136,外网口

      eth1:192.168.1.1,内网口

      业务需求:保证正常的网页浏览,FTP,SMTP,POP3,对其它的所有应用加以限制,以免影响正常业务的使用。

      1、让交互数据包保持较低的延迟时间,也就是说上载或下载文件不会打扰SSH/telnet等。

      2、上载或下载...
  • OpenSSH

    OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。它用安全、加密的网络连接工具代替了 telnet、ftp、 rlogin、rsh 和 rcp 工具。OpenSSH 支持 SSH 协议的版本 1.3、1.5、和 2。自从 OpenSSH 的版本 2.9 以来,默认的协议是版本 2,该协议默认使用 RSA 钥匙。

    1. 为什么使用 SSH?

    使用 OpenSSH 工具将会增进你的系统安全性。 所有使用 OpenSSH 工具的通讯,包括口令,都会被加密。 telnet 和 ftp 使用纯文本口令,并被明文发送。这些信息可能会被截取,口令可能会被检索,然后未经授权的人员可能会使用截取的口令登录进你的系统而对你的系统造成危害。你应该尽可能地使用 OpenSSH 的工具集合来避免...
  • 电影
    <embed src="http://***.wmv";;
    autostart="true" loop="true" width="200" height="150" >

    有图像的rm格式:
    <OBJECT classid='clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA' height=288 id=video1 width=305 VIEWASTEXT>
    <param name='...
  • 出处: http://okone96.itpub.net/post/9033/71169

    在JDK 1.1后,java.util.Date 类型的大多数方法已经不推荐使用了。代替它的是Calendar。

    而在java.sql.Date 和 java.util.Date之间,有些微妙的关系。

    如何将Date类型插入数据库中,成为好多人的一个不小的障碍。

    我们将讨论下面的类:

    1、具体类(和抽象类相对)java.util.Date
    2、抽象类java.text.DateFormat 和它的一个具体子类,java.text.SimpleDateFormat
    3、抽象类java.util.Calendar 和它的一个具体子类,java.util.GregorianC...
  • 些网站采用了字母和数字的验证码,数字和字母加起来一共30多个,如果有心,还是能够通过方法识别出来。
      
      我在网上看到一篇文章"jsp彩色验证码",我进行了加强,生成的验证码内容为汉字,可以方便应用在面向汉语网民的网站认证上。
      
      当然,我还看到别人考虑的几种方法:
      
      1.生成计算题,比如20+34*(23-12)=?,用户必须输入正确的答案才能通过验证,这个想法挺好,但是用户必须打开计算器进行计算,增加了用户的难度
      
      2.问一些常见的问题,比如“人”这个字由几笔组成。这也是不错的想法,关键是必须有上万条的题库,而且题库的答案必须是明确的,简单易比较的,这个难度也较大。
      
      下面是彩色汉字验证码的代码。
     ...
  • 原来这世界,就是一个圆.

    自始至终我都在圆圈里运动,从起点到起点,从终点到终点.在网上搜了无数的资料,为了寻找text表单和file文件一起提交的方法,累的脑袋直响.最后回到了开始的地方.找到了那条,曾经被我忽略的代码.原来,它可以这样简单.

    好吧,我直切正题,下面的例子中有从网上哪位前辈写的内容,我只是稍加改动,写本文没有商业目的,前辈原谅我没引入你的大名啊.

    程序有一个提交页面,其实用html就好了,不过原代码用的是JSP我也拿来用吧.

    selectfile.jsp---->
  • 原来这世界,就是一个圆.

    自始至终我都在圆圈里运动,从起点到起点,从终点到终点.在网上搜了无数的资料,为了寻找text表单和file文件一起提交的方法,累的脑袋直响.最后回到了开始的地方.找到了那条,曾经被我忽略的代码.原来,它可以这样简单.

    好吧,我直切正题,下面的例子中有从网上哪位前辈写的内容,我只是稍加改动,写本文没有商业目的,前辈原谅我没引入你的大名啊.

    程序有一个提交页面,其实用html就好了,不过原代码用的是JSP我也拿来用吧.

    selectfile.jsp---->
  •  

    第一步:建立菜单

    首先建立菜单架构非常重要,最好的方法是使用ul来建立各菜单内容的从主关系.很复杂么?其实只要一路写下去就OK了:

     <ul> 
    
        <li><a href="#">Home</a></li> 
    
        <li><a href="#">About</a> 
    
          <ul> 
    
            <li><a href="#">History</a></li> 
    
            <li><a href="#">Team</a></li> 
    
            <li><a href="#">Offices</a></li> 
    
          </ul> 
    
        </li> 
    
        <li><a href="#">Services</a> 
    
          <ul> 
    
            <li><a href="#">Web Design</a></li> 
    
            <li><a href="#">Internet 
    
                Marketing</a></li> 
    
            <li><a href="#">Hosting</a></li> 
    
            <li><a href="#">Domain Names</a></li> 
    
            <li><a href="#">Broadband</a></li> 
    
          </ul> 
    
        </li>
    
        <li><a href="#">Contact Us</a> 
    
          <ul> 
    
            <li><a href="#">United Kingdom</a></li> 
    
            <li><a href="#">France</a></li> 
    
            <li><a href="#">USA</a></li> 
    
            <li><a href="#">Australia</a></li> 
    
          </ul> 
    
        </li> 
    
      </ul>
    
    

    第二步:视觉上的修饰

    上面所写的代码直接在浏览器下可以说非常的难看...所以我们先给他们加上点样式,不至于因为外表的问题弄的你没有兴趣继续做下去,呵呵

    首先我们把烦人的点点去掉,并定义这个菜单的宽度:

    ul {
    
     margin: 0;
    
     padding: 0;
    
     list-style: none;
    
     width: 150px;
    
               border-bottom: 1px solid #ccc;
    
     }
    
    

    接下来,我们要定义里面内容部分,非常幸运,列表默认的排列就是垂直的,这与我们的要求相一致,定位方式我们应该设置为相对定位(relative)因为副菜单要在相对的位置上进行绝对定位:

    ul li {
    
     position: relative;
    
     }
    
    

    现在我们定义的就是副菜单的内容部分,使用left和top属性我们就可以让它们显示在主菜单内容的右边.display属性值为none所以在默认情况下是隐藏的:

    li ul {
    
     position: absolute;
    
     left: 149px;
    
     top: 0;
    
     display: none;
    
     }
    
    

    最后得修饰下里面的a元素:

    ul li a {
    
     display: block;
    
     text-decoration: none;
    
     color: #777;
    
     background: #fff;
    
     padding: 5px;
    
     border: 1px solid #ccc;
    
     border-bottom: 0;
    
     }
    
    

    但因为IE的显示BUG,所以得加上下面这段话进行修复:

    /* Fix IE. Hide from IE Mac \*/
    
    * html ul li { float: left; }
    
    * html ul li a { height: 1%; }
    
    /* End */
    
    

    第三部:让它运作起来

    我们需要在我们移动到主菜单上时显示副菜单内容:

    li:hover ul { display: block; }
    
    

    好了,你可以测试下代码了,1%人可能会兴奋地叫起来,呵呵遗憾的是就目前这些代码还不能够在IE上运做作出我们想要的结果.要让IE运作出一样的效果,我们得使用一段JS代码,不会非常的烦琐:

    startList = function() {
    
    if (document.all&&document.getElementById) {
    
    navRoot = document.getElementById("nav");
    
    for (i=0; i<navRoot.childNodes.length; i++) {
    
    node = navRoot.childNodes[i];
    
    if (node.nodeName=="LI") {
    
    node.onmouseover=function() {
    
    this.className+=" over";
    
      }
    
      node.onmouseout=function() {
    
      this.className=this.className.replace»
    
     (" over", "");
    
       }
    
       }
    
      }
    
     }
    
    }
    
    window.onload=startList;
    
    

    好了,其他代码再做下补充,这个功能就能实现了:

    li:hover ul, li.over ul { 
    
     display: block; }
    
  • 2007-02-10

    颜色代码表

    颜色代码表

    #000000#2F0000#600030#460046#28004D
    #272727#4D0000#820041#5E005E#3A006F
    #3C3C3C#600000#9F0050#750075#4B0091
    #4F4F4F#750000#BF0060#930093#5B00AE
    #5B5B5B#930000#D9006C#AE00AE#6F00D2
    #6C6C6C#AE0000#F00078#D200D2#8600FF
    #7B7B7B#CE0000#FF0080#E800E8#921AFF
    #8E8E8E#EA0000#FF359A#FF00FF#9F35FF
    #9D9D9D#FF0000#FF60AF#FF44FF#B15BFF
    #ADADAD#FF2D2D#FF79BC#FF77FF#BE77FF
    #BEBEBE#FF5151#FF95CA#FF8EFF#CA8EFF
    #d0d0d0#ff7575#ffaad5#ffa6ff#d3a4ff
    #E0E0E0#FF9797#FFC1E0#FFBFFF#DCB5FF
    #F0F0F0#FFB5B5#FFD9EC#FFD0FF#E6CAFF
    #FCFCFC#FFD2D2#FFECF5#FFE6FF#F1E1FF
    #FFFFFF#FFECEC#FFF7FB#FFF7FF#FAF4FF
    #000079#000079#003E3E#006030#006000
    #000093#003D79#005757#01814A#007500
    #0000C6#004B97#007979#019858#009100
    #0000C6#005AB5#009393#01B468#00A600
    #0000E3#0066CC#00AEAE#02C874#00BB00
    #2828FF#0072E3#00CACA#02DF82#00DB00
    #4A4AFF#0080FF#00E3E3#02F78E#00EC00
    #6A6AFF#2894FF#00FFFF#1AFD9C#28FF28
    #7D7DFF#46A3FF#4DFFFF#4EFEB3#53FF53
    #9393FF#66B3FF#80FFFF#7AFEC6#79FF79
    #AAAAFF#84C1FF#A6FFFF#96FED1#93FF93
    #B9B9FF#97CBFF#BBFFFF#ADFEDC#A6FFA6
    #CECEFF#ACD6FF#CAFFFF#C1FFE4#BBFFBB
    #DDDDFF#C4E1FF#D9FFFF#D7FFEE#CEFFCE
    #ECECFF#D2E9FF#ECFFFF#E8FFF5#DFFFDF
    #FBFBFF#ECF5FF#FDFFFF#FBFFFD#F0FFF0
    #467500#424200#5B4B00#844200#642100
    #548C00#5B5B00#796400#9F5000#842B00
    #64A600#737300#977C00#BB5E00#A23400
    #73BF00#8C8C00#AE8F00#D26900#BB3D00
    #82D900#A6A600#C6A300#EA7500#D94600
    #8CEA00#C4C400#D9B300#FF8000#F75000
    #9AFF02#E1E100#EAC100#FF9224#FF5809
    #A8FF24#F9F900#FFD306#FFA042#FF8040
    #B7FF4A#FFFF37#FFDC35#FFAF60#FF8F59
    #C2FF68#FFFF6F#FFE153#FFBB77#FF9D6F
    #CCFF80#FFFF93#FFE66F#FFC78E#FFAD86
    #D3FF93#FFFFAA#FFED97#FFD1A4#FFBD9D
    #DEFFAC#FFFFB9#FFF0AC#FFDCB9#FFCBB3
    #E8FFC4#FFFFCE#FFF4C1#FFE4CA#FFDAC8
    #EFFFD7#FFFFDF#FFF8D7#FFEEDD#FFE6D9
    #F5FFE8#FFFFF4#FFFCEC#FFFAF4#FFF3EE
    #613030#616130#336666#484891#6C3365
    #743A3A#707038#3D7878#5151A2#7E3D76
    #804040#808040#408080#5A5AAD#8F4586
    #984B4B#949449#4F9D9D#7373B9#9F4D95
    #AD5A5A#A5A552#5CADAD#8080C0#AE57A4
    #B87070#AFAF61#6FB7B7#9999CC#B766AD
    #C48888#B9B973#81C0C0#A6A6D2#C07AB8
    #CF9E9E#C2C287#95CACA#B8B8DC#CA8EC2
    #D9B3B3#CDCD9A#A3D1D1#C7C7E2#D2A2CC
    #E1C4C4#D6D6AD#B3D9D9#D8D8EB#DAB1D5
    #EBD6D6#DEDEBE#C4E1E1#E6E6F2#E2C2DE
    #F2E6E6#E8E8D0#D1E9E9#F3F3FA#EBD3E8


  • 第一章

    何谓HTML

    HTML 是 Hyper Text Markup Language 的 缩 写,它 的 意 思 是 超 文 本 标 记
    语 言, 它 透 过 一 些 特 别 的 标 签 来 展 现 各 种 不 同 的 风 格, 具 备
    有 下 列 几 项 特 色 :

    1. 使 用 改 写 标 签
    2. 随 视 窗 大 小 改 变 的 文 件
    3. 忽 略 多 余 的 空 白 与 行
    4. 超 链 结 的 功 能
    5. 可 呼 叫 程 式

    HTML 3.0 的 发 展 是 一 种 开 放 式 的 结 果 , 任 何 有 兴 趣 的 人 都 可
    加 入 这 一 发 展 的 组 织 , 各 家 浏 览 器 出 版 公 司 都 各 自 发 表 非
    协 定 内 的 语 法 , 使 得 制 作 出 的 文 件 显 得 更 加 丰 富 与 华 丽 .

    回目 


    第二章

    一份简单基本的 Home Page

    <HTML>
    <HEAD>
    <TITLE>这是一个标题</TITLE>
    </HEAD>
    <BODY>
    这是一个简单的范例
    </BODY>
    </HTML>
    

    这一个范例的样子

    <HTML>与</HTML> 这 是 用 来 定 义 一 份 文 件 内 的 HTML 段 落 , 此 标 签 可 以 省 略 .
    <HEAD>与</HEAD> 这 是 用 来 描 述 HTML 页 的 内 容 , 此 标 签 也 可 以 省 略 .
    <TITLE>与</TITLE> 这 是 显 示 文 件 的 标 题 , 会 被 放 在 浏 览 器 的 最 上 方 .
    <BODY>与</BODY> 这 是 定 义 HTML 的 界 限 , 此 标 签 可 以 省 略 .

    回目 


    第三章

    背景的变化

    语法:
    <BODY TEXT=#008000 LINK=#008000 VLINK=#008000 ALINK=#008000 BGCOLOR=#008000>

    <BODY BACKGROUND="HTMLBAK.JPG">

    TEXT 本文的颜色
    LINK 可以链结的文字颜色
    VLINK 已链结过的文字颜色
    ALINK 被按下的文字颜色
    BGCOLOR 背景颜色
    BACKGROUND 背景图形

    以 上 各 # 後 为 0-9 的 八 个 数 字,代 表 各 种 颜 色 , 若 无 指 定 则 以 浏览 器 之 内 定 值 为 准 .

    回目 


    第四章

    字体的变化

    语法:<H1>等级一的字</H1>
    结果:

    等级一的字

    语法:<H2>等级二的字</H2>
    结果:

    等级二的字

    语法:<H3>等级三的字</H3>
    结果:

    等级三的字

    语法:<H4>等级四的字</H4>
    结果:

    等级四的字

    语法:<H5>等级五的字</H5>
    结果:

    等级五的字

    语法:<H6>等级六的字</H6>
    结果:

    等级六的字

    语法:<I>斜体字</I>
    结果:
    斜体字

    语法:<B>粗体字</B>
    结果:
    粗体字

    语法:<TT>TELETYPE打字机字体</TT>
    结果:
    TELETYPE打字机字体

    语法:<BLINK>闪烁字体</BLINK>
    结果:
    闪烁字体

    回目 


    第五章

    一些分隔的标签

    <BR>强迫跳到下一行

    <P>产生一行空白

    范例:
    BR可强迫换行<BR>却不多跳一行,P则会换行<P>而且多跳一行

    结果:
    BR可强迫换行
    却不多跳一行,P则会换行

    而且多跳一行


    <HR>水平分隔线(就是像上面的那一条线)

    <HR WIDTH=40%>水平线占萤幕的40Tf!%
    结果如下:


    <HR SIZE=10>水平线变粗
    结果如下:


    <HR NOSHADE>不透明水平线
    结果如下:


    回目 


    第六章

    如何依照自定义排列方式显示

    范例:

    <PRE>
    因HTML会忽略多余的空白与行,所以如果想依照PE2所输入的格式显示.
                  就必须加入PRE的标签.
                                      HTML就会依照输入的格式排列.
    不再忽略多余的空白与行.
    </PRE>
    


    回目 


    第七章

    各种条列的排列

    数字化排列

    语法:<OL>
         <LI>第一章
         <LI>第二章
         <LI>第三章
         </OL>
    

    结果:

    1. 第一章
    2. 第二章
    3. 第三章
    语法:<OL TYPE=I>
         <LI>第一章
         <LI>第二章
         <LI>第三章
         </OL>
    

    结果:

    1. 第一章
    2. 第二章
    3. 第三章
    语法:<OL TYPE=A>
         <LI>第一章
         <LI>第二章
         <LI>第三章
         </OL>
    

    结果:

    1. 第一章
    2. 第二章
    3. 第三章

    以上TYPE的变化也可用i或a


    非数字化排列

    语法:<UL>
         <LI>第一章
         <LI>第二章
         <LI>第三章
         </UL>
    

    结果:

    • 第一章
    • 第二章
    • 第三章

    限定的排列

    语法:<DL>
         <DT>第一章
         <DD>第一小节
         <DT>第二章
         <DD>第一小节
         </DL>
    

    结果:

    第一章
    第一小节
    第二章
    第一小节

    回目 


    第八章

    文件中的注解

    如 一 个 HTML 的 文 件 非 常 大 , 最 好 加 上 注 解 , <!- 与 -> , 在 此 标 签 中 的 文 字 , 将 不 会 被 浏 览 器 显 示 出 来 .

    回目 


    第九章

    如何使用超链结

    在 HTML 文 件 中 的 一 大 特 色 就 是 随 时 可 以 按 一 个 键 就 可 以 连 往 世 界 任 何 一 个 角 落 这 样 的 功 能 其 实 只 要 一 行 指 令 就 可 以 做 到 了 .

    语法:<A HREF="http://www.longlan.com.tw/lshow/chieh/chieh.htm">回到目 </A>

    结果:回到目 

    http:後面是接著一个网路的位址

    其他还有下列各种链结:
    gopher:连接gopher资料库系统
    ftp:连接ftp撷取档案系统
    news:连接news新闻讨论群
    mailto:连接E-mail寄信
    telnet:连接远程载入系统

    以 上 链 结 位 址 如 果 在 同 一 机 器 上 即 可 省 略 成 :
    <A HREF="/lshow/chieh/chieh.htm">回到许恩杰的烘培鸡</A>

    以 上 链 结 位 址 如 果 在 同 一 机 器 上 而 且 在 同 一 目 录 更 可 省 略 成 :
    <A HREF="chieh.htm">回到许恩杰的烘培鸡</A>

    这就是所谓的相对路径


    链结到文件中的某一部份

    语法:<A HREF="#TOP">回到本篇文章的最前面</A>
         <A NAME="TOP"></A>
    

    结果:回到本篇文章的最前面

    以上语法HREF与NAME需相互对应,按下链结点即可前往NAME所在的地方

    回目 


    第十章

    如何加上图形

    加上图形也是一件很简单的事情.

    语法:<IMG SRC="k_k.jpg" ALT=KEMOON></IMG>

    结果:KEMOON

    ALT:如使用无法显示图形的浏览器即会出现ALT後所写的文字


    图片放置的位置与大小控制

    语法:<IMG SRC="k_k.jpg" ALIGN=LEFT></IMG>图片靠左

    结果:
    图片靠左
     
     
     
     
     
    语法:<IMG SRC="k_k.jpg" ALIGN=RIGHT></IMG>图片靠右

    结果:
    图片靠右
     
     
     
     
     
    语法:<IMG SRC="k_k.jpg" ALIGN=TOP></IMG>图片向上对齐

    结果:图片向上对齐

    语法:<IMG SRC="k_k.jpg" ALIGN=BOTTOM></IMG>图片向下对齐

    结果:图片向下对齐

    语法:<IMG SRC="k_k.jpg" ALIGN=MIDDLE></IMG>图片向中对齐

    结果:图片向中对齐

    语法:<IMG SRC="k_k.jpg" HEIGHT=50 WIDTH=40></IMG>指定图片高度为50宽度40

    结果:指定图片高度为50宽度40


    文字绕图的写法

    语法:<IMG SRC="k_k.jpg" ALIGN=LEFT></IMG>
    在HOMEPAGE的制作上<BR>
    本人也有一些不清楚的地方<BR>
    如INPUT FORM 和CGI的配合使用<BR>
    在下一次我们将注重讨论<BR>
    同时希望个位高手指点<BR>
    请大家支持吧<BR>

    结果:
    在HOMEPAGE的制作上
    本人也有一些不清楚的地方
    如INPUT FORM 和CGI的配合使用
    在下一次我们将注重讨论
    同时希望个位高手指点
    请大家支持吧

    回目 


    第十一章

    表格的制作

    语法:
    <TABLE COLSPEC="L20" BORDER>
    <CAPTION ALIGN=top></CAPTION>
    <TR><TH>这是一个最简单的表格</TH></TR>
    </TABLE>

    结果:

    这是一个最简单的表格

    语法:
    <TABLE COLSPEC="L20 L20 L20" BORDER>
    <CAPTION ALIGN=top></CAPTION>
    <TR><TH>第一格</TH><TH>第二格</TH><TH>第三格</TH></TR>
    <TR><TH>下一格</TH><TD>下二格</TD><TD>下三格</TD></TR>
    </TABLE>

    结果:

    第一格第二格第三格
    下一格下二格下三格

    语法:
    <TABLE COLSPEC="C20 L20 L20" BORDER>
    <CAPTION ALIGN=top></CAPTION>
    <TR><TH COLSPAN=3>跨栏的表格</TH></TR>
    <TR><TH>第一项</TH><TD>第二项</TD><TD>第三项</TD></TR>
    </TABLE>

    结果:

    跨栏的表格
    第一项第二项第三项

    语法:
    <TABLE COLSPEC="L20 L20" BORDER>
    <CAPTION ALIGN=top></CAPTION>
    <TR><TH ROWSPAN=2>跨列的表格</TH><TH>右边第一列</TH></TR> <TR><TD>右边第二列</TD></TR>
    </TABLE>

    结果:

    跨列的表格右边第一列
    右边第二列

    语法:
    <TABLE COLSPEC="L20" BORDER=10>
    <CAPTION ALIGN=top></CAPTION>
    <TR><TH>这是指定表格线条的粗细</TH></TR>
    </TABLE>

    结果:

    这是指定表格线条的粗细

    语法:
    <TABLE COLSPEC="L20" BORDER CELLPADDING=20"
    <CAPTION ALIGN=top></CAPTION>
    <TR><TH>指定字与表格的距离</TH></TR>
    </TABLE>

    结果:

    指定字与表格的距离

    语法:
    <TABLE COLSPEC="C20" BORDER>
    <CAPTION ALIGN=top></CAPTION>
    <TR><TH ALIGN=CENTER>以下文字靠左靠右对中</TH></TR>
    <TR><TH ALIGN=LEFT>靠左</TH></TR>
    <TR><TH ALIGN=RIGHT>靠右</TH></TR>
    <TR><TH>对中</TH></TR>
    </TABLE>

    结果:

    以下文字靠左靠右对中
    靠左
    靠右
    对中

    回目 


    第十二章

    分割画面的制作

    语法:

    <frameset rows="80%,20%">
        <frameset cols="20%,80%">
             <frame src=html-13b.htm>
             <frame src=html-13c.htm name="lwwwbody">
         </frameset>
         <frame src=html-13d.htm scrolling=no>
    </frameset>
    <noframes>
    没有NetScape的人就只能看到这里了
    </noframes>
    

    说明:
    frameset-->设定分割画面的大小比例,此标签须有相对的结束标签
    rows-->设定分割为上下画面
    cols-->设定分割为左右画面
    分割画面大小可用下列数值表示:
    80%,20%或300,*或40%,20%,*以此类推可分割成各种不同大小的视窗
    frame-->设定各个分割视窗分别使用的html
    name-->指定此视窗的名称
    scrolling=no或yes或auto-->指定此视窗是否要有卷轴bar
    noresize-->强迫此视窗不可拖曳改变大小
    noframes-->给浏览器不支援分割画面的使用者看的部份,须有结束标签

    以下是一些特殊技巧:
    在个别视窗中的html如要使用特殊 的功能就必须加一些参数
    否则所有的动作将在自己本身的视窗中进行
    语法:
    <A HREF="LWWW.HTM" target="_top">
    <A HREF="lwwwbody.htm#01" target="lwwwbody">

    target-->如设定=_top,代表按下此链结整个画面都会变为所指定的链结
             如设定=自定的名称,需与name的参数互相配合,
             代表按下此链结与指定name相同名称的视窗才会改变画面.
    

    回目 


    第十三章

    透明图片,及交错图片的制作


    未做成透明图片前 已做成透明图片後

    透明图片的制作

    想要制作以上透明图片效果,首先须有一套合适的图形编辑软体,例如:
    LView或Paint Shop Pro都有此功能,在此以Paint Shop Pro为例:

    1.开启所需要的图档,将背景色,也就是想变成透明的地方,改成前景所没有
     的颜色.
    2.将图片存成GIF格式,关闭再重新开启一次,如图片原就是GIF格式即可省
     略此步骤.
    3.选择工具bar上的滴管,将滴管移到要变成透明的地方,此时最下方的状态
     列会出现I:5,5为此颜色的值,依颜色不同此值会不同,记下此值.
    4.选择Save As,在存档视窗中的左下角有File Sub-format的选项,选择
     Version 89a-Noninterlaced.
    5.按下右方Options会列出四个选项,选择最後一项Set the Transparency Value
     to在後面的空格填上刚才记下的I值,再按下OK,再存档即可完成透明图片
     的制作.

    注意事项:
    1.尽量不要用会失真的图形格式如JPG来转成GIF,才不会造成转为透明图片
     後有杂点产生.
    2.变成透明的颜色必须为前景所没有的,以免造成不想透明的地方也变成透
     明.
    3.虽然变成透明图片,原来图片的边缘还是存在的,如要限定图片的位置,就必
     须将透明的边缘考虑进去.
    4.如图片边缘有阴影效果,则最好将要透明的颜色设为与HomePage的底色相
     同以免造成阴影部份不自然的现象.


    交错图片的制作

    所谓交错显示的图片就是在显示时,先出现整张图片大概的样子,再以类
    似马赛克的方式渐渐显示出完整的图片.

    1.制作步骤与透明图片相似,只是存档时在File Sub-format的选项,要选择
     Version 89a-Interlaced.
    2.以此格式存档的图片就会以交错的方式显示.
    3.以此方式显示图片速度并不会比以普通方式显示还快,但可让使用者先
     了解图形大概的样子.
    4.其实Version 89a-Noninterlaced的格式也会以交错的方式现示图形,但如
     果不想变成透明图片,还是要存成Version 89a-Interlaced的格式.

  • 引言

      电子商务系统对安全问题有较高的要求,传统的访问控制方法DAC(Discretionary Access Control,自主访问控制模型)、MAC(Mandatory Access Control,强制访问控制模型)难以满足复杂的企业环境需求。因此,NIST(National Institute of Standards and Technology,美国国家标准化和技术委员会)于90年代初提出了基于角色的访问控制方法,实现了用户与访问权限的逻辑分离,更符合企业的用户、组织、数据和应用特征。ASP.NET是微软为了抗衡JSP而推出的新一代ASP(Active Server Pages)脚本语言,它借鉴了JSP的优点,同时它又具有自身的一些新特点。

      本文将首先介绍ASP.NET的基本情况和RBAC(Role Based Access Control)的基本思想,在此基础上,给出电子商务系统中实现用户权限控制的一种具体方法。

      ASP.NET概述

      1、ASP.NET

      ASP.NET是微软流行的动态WEB编程技术活动服务器网页(ASP)的最新版本,但它远不是传统ASP简单升级。ASP.NET和ASP的最大区别在于编程思维的转换,ASP.NET是真正的面向对象(Object-oriented),而不仅仅在于功能的增强。

      在ASP.NET中,Web 窗体页由两部分组成:视觉元素(HTML、服务器控件和静态文本)和该页的编程逻辑。其中每一部分都存储在一个单独的文件中。可视元素在一个扩展名为 .aspx 文件中创建,而代码位于一个单独的类文件中,该文件称作代码隐藏类文件扩展名为.aspx.vb 或 .aspx.cs。这样,.aspx文件中存放所有要显示的元素,aspx.vb或.aspx.cs文件中存放逻辑。

      2、用户控件(UserControl)

      为了使用户能够根据需要方便地定义控件,ASP.NET引入了 Web 窗体用户控件的概念。实际上,只要将.aspx稍作修改即可转换为 Web 用户控件,扩展名为 .ascx,.ascx和.aspx文件一样也有一个存放逻辑的代码隐藏类文件,扩展名为.ascx.vb或.ascx.cs,只是它不能作为独立 Web 窗体页来运行,只有当被包含在 .aspx文件中时,用户控件才能工作。

      通过以下两个步骤在WEB窗体页中设置用户控件:

      (1)使用@ Register指令在.aspx文件中注册用户控件。如要注册在放在相对路径“../UserControl/”下的头文件headinner.ascx的方法为:

    <%@ Register TagPrefix="Acme" TagName="Head" Src="../UserControl/headinner.ascx" %>

      (2)在服务器控件的开始标记和结束标记之间(<form runat=server> </form>) 声明该用户控件元素。例如要声明上面所导入的控件的语法为:

    <Acme: Head runat="server"/>

      这样,该控件就成为页的一部分,并将在处理该页时呈现出来。并且,该控件的公共属性、事件和方法将向 Web 窗体页公开并且可以通过编程来使用。根据这个原理,就可以将每个页面初始化时所要执行的操作(如登录验证,角色验证)封装在用户控件当中。

    RBAC的基本思想

      RBAC(角色访问控制)的基本思想可简单地用图1来表示,即把整个访问控制过程分成两步:访问权限与角色相关联,角色再与用户关联,从而实现了用户与访问权限的逻辑分离。

      由于RBAC实现了用户与访问权限的逻辑分离,因此它极大的方便了权限管理。例如,如果一个用户的职位发生变化,只要将用户当前的角色去掉,加入代表新职务或新任务的角色即可,角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,并且委派用户到角色不需要很多技术,可以由行政管理人员来执行,而配置权限到角色的工作比较复杂,需要一定的技术,可以由专门的技术人员来承担,但是不给他们委派用户的权限,这与现实中情况正好一致。

      用户权限在.NET中的设计与实现

      利用.NET中的用户控件实现权限控制的基本思想是:根据角色访问控制(RBAC)的基本原理,给用户分配一个角色,每个角色对应一些权限,然后利用ASP.NET中的用户控件(UserControl)来判断该用户对应的角色是否对访问页面有访问的权力。

      下面将从数据库设计、添加角色和用户控件的使用等三方面来阐述具体实现过程。

      1、数据库中表的设计

      首先,在数据库中设计功能模块表、功能表和角色表等三个表。

      (1) 功能模块表

      为了管理好用户的权限,首先要组织好系统的模块,为此设计了一个功能模块表。见表1。


      (2) 功能表


      每个功能模块所具有的子功能称为功能,如商品管理模块goods(属于功能模块的范畴)包含商品信息查询、商品信息更新、商品信息删除、商品定价信息查询以及商品定价信息更新五种功能,功能表的设计见表2。

      上面提到的例子可以作为这样几条记录分别插入功能模块表和功能表。


    insert into TModule values(0,'商品管理模块','goods',5);
    insert into Tfunction values(0,'商品信息查询','selectgoods',0);
    insert into Tfunction values(1,'商品信息更新','updategoods',0);
    insert into Tfunction values(2,'商品信息删除','deletegoods',0);
    insert into Tfunction values(3,'商品定价信息查询','selectgoodsprice',0);
    insert into Tfunction values(4,'商品定价信息更新','updategoodsprice',0);

      (3) 角色表


      角色表的设计关键在于角色值的定义,它是一个由0和1组成的类似二进制数的字符串。而功能表中的funcNo (功能编号)字段表示该功能在角色表的roleValue (角色值)字段中的位置,如果该位置对应的数值是0,表示该角色无此权限,如果值为1,则表示该角色拥有此权限。如角色普通会员的角色值为100100…00(共100位),如上所示,商品信息查询的功能编号为0,角色值100100…00的第0位为1,所以该普通会员角色拥有商品信息查询的功能;相反,该角色值的第1位为0,而功能编号为1 的功能为商品信息更新,所以该普通会员角色没有商品信息更新的权限。它们的关系可由图2来表示。

      2、角色的添加

      有了上面几个表,角色页面的功能模块以及其对应的功能都可以从功能模块表和功能表中读出,如图3所示。


      在将新角色普通会员插入数据库时,先将角色值的所有位都置为0,然后利用.NET Framework 类库中的Replace函数将角色值中的打上勾的功能相应的功能编号位的值改为1。

      例如,新添加一个角色名为普通会员的角色,它拥有的功能为商品信息查询(功能编号0)和商品定价信息查询(功能编号3)两项,则角色值应为1001000……00(100位),即角色值中第0位和第3位的值为1,其余为0。

      3、利用用户控件实现访问权限

      在定义好用户控件.ascx文件(head.ascx)及.ascx.cs(head.ascx,cs)文件时,接下去只要在.aspx文件中注册和声明它就可以了。

      (1) 注册



      (2) 声明

      经过实践,在.aspx文件中声明.ascx文件可分为几种情况:

      第一种情况:

      第二种情况:

      第三种情况:

      字段flag是用来控制怎样进行权限检查的标志,funcname指功能表中的功能英文名。如果flag为空,则不执行权限检查(第一种情况);否则如果flag=="0",则表示同时具有selectgoods(商品信息查询)和 updategoods(商品信息更新)这两种权限的角色所对应的用户才有权利查看该页(第二种情况);否则,如果flag=="1",则认为,具有selectgoods(商品信息查询)或 updategoods(商品信息更新)这两种权限中任意一种权限的用户就有权利查看该页(第三种情况)。

      上面进行权限检查的过程全部由用户控件来实现,其全部方法都封装在.ascx.cs文件中,其中最主要的一个方法是检查某一角色是否拥有某一确定权限的checkAuth(string roleId,string funcEName)方法。这个方法的思想如图4所示。


      图4中roleValue(角色值)的第0位(selectgoods的功能编号)值为1,表示该角色拥有selectgoods(商品信息查询)的权限。这样,我们把对权限检查的所有逻辑都封装在了用户控件中,因此,对WEB窗体页.aspx文件而言,只需在导入.ascx文件时确定用户在访问该页面时所应拥有的权限,而不需对aspx.cs进行任何改动。

      由上所述,可以很清楚地看出,只要在用户控件中对用户权限进行控制,再把它包括在.aspx文件中(这件事作者本来就是要做的),那么在编程的时候就不必考虑复杂的权限问题了。

      结束语

      本文在开发一个电子商务系统的实践中发现,公司对系统用户的权限控制非常重视。因此,设计一个简单方便又行之有效的权限控制机制对于电子商务系统是必不可少的。本文所提出的基于ASP.NET的电子商务系统用户权限设计和实现方法已经在实际的工作中得到了验证,修改指定权限组的操作变得非常方便。