天使有翅膀的BLOG
个人信息
天使有翅膀
日历
最新文章
最新评论
最新留言
相册
友情链接
访客
好友
计数器
          
rss
 
推荐订阅:订阅到RSS阅读
内容
  •  
    2007-09-07 16:42:05
    标签:学习公社
     网上就 JSP/Servlet 中 DBCS字符编码问题有许多优秀的文章和讨论,本文对它们作一些整理,并结合IBM WebSphere Application Server3.5(WAS)的解决方法作一些说明,希望它不是多余的。 
    问题的起源
    每个国家(或区域)都规定了计算机信息交换用的字符编码集,如美国的扩展 ASCII码, 中国的 GB2312-80,日本的 JIS 等,作为该国家/区域内信息处理的基础,有着统一编码的重要作用。字符编码集按长度分为 SBCS(单字节字符集),DBCS(双字节字符集)两大类。早期的软件(尤其是操作系统),为了解决本地字符信息的计算机处理,出现了各种本地化版本(L10N),为了区分,引进了 LANG, Codepage 等概念。但是由于各个本地字符集代码范围重叠,相互间信息交换困难;软件各个本地化版本独立维护成本较高。因此有必要将本地化工作中的共性抽取出来,作一致处理,将特别的本地化处理内容降低到最少。这也就是所谓的国际化(I18N)。各种语言信息被进一步规范为 Locale 信息。处理的底层字符集变成了几乎包含了所有字形的 Unicode。

    现在大部分具有国际化特征的软件核心字符处理都是以 Unicode 为基础的,在软件运行时根据当时的 Locale/Lang/Codepage 设置确定相应的本地字符编码设置,并依此处理本地字符。在处理过程中需要实现 Unicode 和本地字符集的相互转换,甚或以 Unicode 为中间的两个不同本地字符集的相互转换。这种方式在网络环境下被进一步延伸,任何网络两端的字符信息也需要根据字符集的设置转换成可接受的内容。

    Java 语言内部是用 Unicode 表示字符的,遵守 Unicode V2.0。Java 程序无论是从/往文件系统以字符流读/写文件,还是往 URL 连接写 HTML 信息,或从 URL 连接读取参数值,都会有字符编码的转换。这样做虽然增加了编程的复杂度,容易引起混淆,但却是符合国际化的思想的。

    从理论上来说,这些根据字符集设置而进行的字符转换不应该产生太多问题。而事实是由于应用程序的实际运行环境不同,Unicode 和各个本地字符集的补充、完善,以及系统或应用程序实现的不规范,转码时出现的问题时时困扰着程序员和用户。 

    GB2312-80,GBK,GB18030-20
  •  
    2007-09-04 18:20:25
    标签:学习公社
     六、COOKIE

    HTTP COOKIE
    实质是服务端与在客户端之间传送的普通HTTP,可保存也可不保存在客户的硬盘上.如果保存,每一个文件大小不超过4K的文本文件.多个COOKIE可保存到同一个文件中. 如果从编程角度来看,JSPCOOKIE就是JAVA提供的一个类.常用的方法如下所表示,因为客户端可能不接受COOKIE,所以建议不用它,改用SESSION等其他方式。
  •  
    2007-09-04 18:17:52
    标签:学习公社
     四、JSP中正确应用类:  

    应该把类当成JAVA BEAN来用,不要在<% %> 中直接使用. 如下的代码(1)经过JSP引擎转化后会变为代码(2):
    从中可看出如果把一个类在JSP当成JAVA BEAN 使用,JSP会根据它的作用范围把它保存到相应的内部对象中.
    如作用范围为request,则把它保存到request对象中.并且只在第一次调用(对象的值为
  •  
    2007-09-04 18:14:43
    标签:学习公社
     一、JSP工作原理 JSP


    在一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个servlet。而这个引擎本身也是一个servlet,在JSWDKWEBLOGIC中,它就是JspServlet JSP引擎先把该JSP文件转换成一个Java源文件,在转换时如果发现jsp文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息;如果转换成功, JSP引擎用jav
  •  
    2007-08-28 01:43:41
    标签:知识/探索
     

    听说过灰鸽子、冰河等可以实现远程控制,但你听说过IE也可以实现吗?不错,一款基于IE的新鲜工具——rmtSvc&vIDC即可让微软的IE成为一个超级黑客帮凶。本文除了将为你展现rmtSvc&vIDC是如何基于IE远程控制肉鸡以外,更在如何“暗杀”杀毒软件、攻击思路上有较强的指导性。

    如果我问你IE能做什么?你的答案绝对不完整!IE可不仅仅能浏览网页。如果我再告诉你IE还能用来远程控制、远程传输、进程管理、代理服务,甚至远程开启Telnet、FTP服务等等呢?你一定觉得不可思议吧,有了rmtSvc&vIDC,这一切皆有可能!

    一、有IE 想黑就黑

    简单点说,rmtSvc是一款集FTP、Telnet服务、Proxy服务以及vIDC服务的远程控制工具。用户可以通过此款工具方便地对远程计算机进行控制。此工具和其它远程控制工具不同,它采用B/S结构(无需安装),用户可通过浏览器进行远程控制(我们的口号是:有IE,想黑就黑!)。

    下面,笔者就以入侵控制的实例来为大家分别介绍rmtSvc常用功能的使用方法及技巧。解压下载后的压缩包,先别急着让rmtSvc.exe在目标机运行(未加壳的程序会遭到杀毒软件的查杀),笔者先告诉大家如何给源程序加壳从而避免被查杀吧(不然就没得玩了-_-|)。运行该软件,进入“选项”菜单,勾选“保留额外数据”,然后“打开文件”,选择源程序rmtSvc.exe后就会自动压缩了。

    特别提醒:压缩后的rmtSvc.exe不会被杀毒软件查杀,而且文件体积会减少近50%(经过金山毒霸6增强版、KV2005、诺顿2005测试),如果想进一步增强隐蔽性,请参考2004年第50期G9版《披着羊皮的狼——将Radmin改造为百分百木马》一文介绍的“超级捆绑”软件的使用方法。木马程序的欺骗发送本文就不作进一步讨论了。

    二、武装RmtSvc “暗杀”杀毒软件

    1.打开浏览器输入http://IP:port(其中IP为被控机的IP地址,port为rmtSvc的服务端口,默认为7778)。连接成功后将会看到如图1的欢迎登录画面,输入访问密码(默认为123456),就可以进行rmtSvc所支持的操作(如果之前已经连同msnlib.dll和webe目录都发给了对方,那么rmtSvc将会多出用MSN进行远程控制和HTTP方式文件管理的功

  •  
    2007-08-23 20:52:01
    标签:学习公社
     1. 定义常量的语法格式
        常量名 constant 类型标识符 [not null]:=值;
        常量,包括后面的变量名都必须以字母开头,不能有空格,不能超过30个字符长度,同时不能和保留字同名,常(变)量名称不区分大小写,在字母后面可以带数字或特殊字符。括号内的not null为可选参数,若选用,表明该常(变)量不能为空值。
        2. 实例
        在【SQLPlus Worksheet】中执行下列PL/SQL程序,该程序定义了名为pi的数字型常量,长度为9。
        执行结果如图9.6所示。
        ―――――――――――――――――――――――――――――――――――――
        declare
            pi constant number(9):=3.1415926;
        begin
            commit;
        end;
    1. 基本数据类型
        PL/SQL中常用的基本数据类型如表9.2所示。
    表9.2 常见的数据基本类型
    类型标识符 说明
    Number 数字型
    Int 整数型
    Pls_integer 整数型,产生溢出时出现错误
    Binary_integer 整数型,表示带符号的整数
    Char 定长字符型,最大255个字符
    Varchar2 变长字符型,最大2000个字符
    Long 变长字符型,最长2GB
    Date 日期型
    Boolean 布尔型(TRUE、FALSE、NULL三者取一)

        在PL/SQL中使用的数据类型和Oracle数据库中使用的数据类型,有的含义是完全一致的,有的是有不同的含义的。
        2. 基本数据类型变量的定义方法
        变量名 类型标识符 [not null]:=值;
        3. 实例
        在【SQLPlus Worksheet】中执行下列

  •  
    2007-08-23 20:41:34
     存储过程的好处觉得就是对数据的操作特别地快,
    其实那些sql语句已经在数据库中编译过了。
    在数据库中的那些语句就是你要用的sql语句。而那些你要查询是放进去的变量,被一些相当于占位副之类的东西,先占位了。你只要把参数传进去,告诉他执行那条存储过程的语句就可以了。
  •  
    2007-08-16 20:29:00
    标签:知识/探索
     

    select top 10 * from yc_module where (block_id not in (select top 0 block_id from yc_module order by block_id)) order by block_id;

     

    分页方案一:(利用Not In和SELECT TOP分页)
    语句形式:
    SELECT TOP 10 *
    FROM TestTable
    WHERE (ID NOT IN
              (SELECT TOP 20 id
             FROM TestTable
             ORDER BY id))
    ORDER BY ID


    SELECT TOP 页大小 *
    FROM TestTable
    WHERE (ID NOT IN
              (SELECT TOP 页大小*页数 id
             FROM 表
             ORDER BY id))
    ORDER BY ID

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

    分页方案二:(利用ID大于多少和SELECT TOP分页)
    语句形式:
    SELECT TOP 10 *
    FROM TestTable
    WHERE (ID >
              (SELECT MAX(id)
             FROM (SELECT TOP 20 id
                     FROM TestTable
                     ORDER BY id) AS T))
    ORDER BY ID


    SELECT TOP 页大小 *
    FROM TestTable
    WHERE (ID >
              (SELECT MAX(id)
             FROM (SELECT TOP 页大小*页数 id
                     FROM 表
                     ORDER BY id) AS T))
    ORDER BY ID


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

    分页方案三:(利用SQL的游标存储过程分页)

  •  
    2007-08-16 20:12:33
    标签:知识/探索
     

    Oracle不支持類似於 MySQL 中的 limit. 但你還是可以
    rownum來限制返回的結果集的行數.

    如果你只希望返回前十行紀錄,你可以這樣寫:


    SELECT * FROM table WHERE ROWNUM<10;

    但是下面的語句是不對的:

    SELECT * FROM table WHERE ROWNUM>90 AND ROWNUM<100;


    這是因為 Oracle 認為這個條件不成立,所以沒有返回。
    你應該這樣寫:

    SELECT * FROM table WHERE ROWNUM<101 minus SELECT * FROM table WHERE ROWNUM<91;

  •  
    2007-08-09 20:15:19
    标签:知识/探索
     Oracle体系结构:内存结构和进程结构(图一)

    1:Oracle实例(Instance)
    在一个服务器中,每一个运行的Oracle数据库都与一个数据库实例相联系,实例是我们
    访问数据库的手段。
    实例在操作系统中用ORACLE_SID来标识,在Oracle中用参数INSTANCE_NAME来标识,
    它们两个的值是相同的。数据库启动时,系统首先在服务器内存中分配系统全局区(SGA),
    构成了Oracle的内存结构,然后启动若干个常驻内存的操作系统进程,即组成了Oracle的
    进程结构,内存区域和后台进程合称为一个Oracle实例。

    Oracle体系结构:内存结构和进程结构(图二)


    数据库与实例之间是1对1/n的关系,在非并行的数据库系统中每个Oracle数据库与一个
    实例相对应;在并行的数据库系统中,一个数据库会对应多个实例,同一时间用户只与一个
    实例相联系,当某一个实例出现故障时,其他实例自动服务,保证数据库正常运行。在任何
    情况下,每个实例都只可以对应一个数据库。

    2:Oracle 10g动态内存管理
    内存是影响数据库性能的重要因素,Oracle8i使用静态内存管理,Oracle 10g使用动态
    内存管理。所谓静态内存管理,就是在数据库系统中,无论是否有用户连接,也无论并发用
    量大小,只要数据库服务在运行,就会分配固定大小的内存;动态内存管理允许在数据库服
    务运行时对内存的大小进行修改,读取大数据块时使用大内存,小数据块时使用小内存,读
    取标准内存块时使用标准内存设置。
    按照