??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲天堂2016,亚洲精品视频在线看,亚洲va在线va天堂va888wwwhttp://www.tkk7.com/coacoa2008/archive/2007/10/09/151448.htmlWelcomeWelcomeTue, 09 Oct 2007 08:41:00 GMThttp://www.tkk7.com/coacoa2008/archive/2007/10/09/151448.htmlhttp://www.tkk7.com/coacoa2008/comments/151448.htmlhttp://www.tkk7.com/coacoa2008/archive/2007/10/09/151448.html#Feedback0http://www.tkk7.com/coacoa2008/comments/commentRss/151448.htmlhttp://www.tkk7.com/coacoa2008/services/trackbacks/151448.html<%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" pageEncoding="UTF-8"%><%!
Color getRandColor(int fc,int bc){//l定范围获得随机颜色
Random random = new Random();
if(fc>255) fc=255;
if(bc>255) bc=255;
int r=fc+random.nextInt(bc-fc);
int g=fc+random.nextInt(bc-fc);
int b=fc+random.nextInt(bc-fc);
return new Color(r,g,b);
}
%><%
//讄面不缓?br />response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);

// 在内存中创徏图象
int width=60, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

// 获取囑Ş上下?br />Graphics g = image.getGraphics();

//生成随机c?br />Random random = new Random();

// 讑֮背景?br />g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height);

//讑֮字体
g.setFont(new Font("Times New Roman",Font.PLAIN,18));

//画边?br />g.setColor(new Color(255,255,255));
g.drawRect(0,0,width-1,height-1);

// 随机产生155条干扰线,使图象中的认证码不易被其它程序探到
g.setColor(getRandColor(160,200));
for (int i=0;i<155;i++)
{
int x = random.nextInt(width);
int y = random.nextInt(height);
int xl = random.nextInt(12);
int yl = random.nextInt(12);
g.drawLine(x,y,x+xl,y+yl);
}

// 取随Z生的认证?4位数?
String sRand="";
for (int i=0;i<4;i++){
String rand=String.valueOf(random.nextInt(10));
sRand+=rand;
// 认证码昄到图象中
g.setColor(new Color(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));
//调用函数出来的颜色相?可能是因为种子太接近,所以只能直接生?br />g.drawString(rand,13*i+6,16);
}

// 认证码存入SESSION
session.setAttribute("randomChar",sRand);

// 图象生效
g.dispose();

// 输出图象到页?br />ImageIO.write(image, "JPEG", response.getOutputStream());

%>



Welcome 2007-10-09 16:41 发表评论
]]>
java.util.regexhttp://www.tkk7.com/coacoa2008/archive/2007/09/29/149661.htmlWelcomeWelcomeSat, 29 Sep 2007 10:42:00 GMThttp://www.tkk7.com/coacoa2008/archive/2007/09/29/149661.htmlhttp://www.tkk7.com/coacoa2008/comments/149661.htmlhttp://www.tkk7.com/coacoa2008/archive/2007/09/29/149661.html#Feedback0http://www.tkk7.com/coacoa2008/comments/commentRss/149661.htmlhttp://www.tkk7.com/coacoa2008/services/trackbacks/149661.html1.介:  
java.util.regex是一个用正则表达式所订制的模式来对字W串q行匚w工作的类库包。?br />
它包括两个类Q?font color="#ff1493">Pattern和Matcher Pattern 一个Pattern是一个正则表辑ּl?font color="#0000ff">~译后的表现模式。 ?br />Matcher 一个Matcher对象是一?font color="#000080">状态机?/font>Q它依据Pattern对象做ؓ匚w模式对字W串展开匚w查。 首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经~译后的模式Q然后一个Matcher实例在这个给定的Pattern实例的模式控制下q行字符串的匚w工作。?br />
以下我们分别来看看q两个类Q?br />
2.Patternc?  
Pattern的方法如下: static Pattern compile(String regex) 
给定的正则表达式编译ƈ赋予lPatternc ?br />static Pattern compile(String regex, int flags) 
同上Q但增加flag参数的指定,可选的flag参数包括QCASE INSENSITIVE,MULTILINE,DOTALL,UNICODE CASEQ CANON EQ  
int flags() 
q回当前Pattern的匹配flag参数.  
Matcher matcher(CharSequence input) 
生成一个给定命名的Matcher对象  
static boolean matches(String regex, CharSequence input) 
~译l定的正则表辑ּq且对输入的字串以该正则表达式ؓ模开展匹?该方法适合于该正则表达式只会用一ơ的情况Q也是只进行一ơ匹配工作,因ؓq种情况下ƈ不需要生成一个Matcher实例。  ?br />String pattern() 
q回该Patter对象所~译的正则表辑ּ。 ?br />String[] split(CharSequence input) 
目标字W串按照Pattern里所包含的正则表辑ּ为模q行分割。 ?br />String[] split(CharSequence input, int limit) 
作用同上Q增加参数limit目的在于要指定分割的D|Q如limi设ؓ2Q那么目标字W串根据正则表辑ּ分ؓ割ؓ两段。 ?br />

一个正则表辑ּQ也是一串有特定意义的字W,必须首先要编译成Z个Patterncȝ实例Q这个Pattern对象会使用matcher()Ҏ来生成一个Matcher实例Q接着便可以用该 Matcher实例以编译的正则表达式ؓ基础对目标字W串q行匚w工作Q多个Matcher是可以共用一个Pattern对象的。?br />
现在我们先来看一个简单的例子Q再通过分析它来了解怎样生成一个Pattern对象q且~译一个正则表辑ּQ最后根据这个正则表辑ּ目标字W串q行分割Q ?br />import java.util.regex.*; 
public class Replacement{ 
      public static void main(String[] args) throws Exception { 
        // 生成一个Pattern,同时~译一个正则表辑ּ 
        Pattern p = Pattern.compile("[/]+"); 
        //用Pattern的split()Ҏ把字W串?/"分割 
        String[] result = p.split( 
"Kevin has seen《LEON》seveal times,because it is a good film." 
+"/ 凯文已经看过《这个杀手不太冷》几ơ了Q因为它是一? 
+"好电影?名词:凯文?); 
        for (int i=0; i<result.length; i++) 
System.out.println(result[i]); 






输出l果为: 

Kevin has seen《LEON》seveal times,because it is a good film. 
凯文已经看过《这个杀手不太冷》几ơ了Q因为它是一部好电媄。?br />名词:凯文。?br />
很明显,该程序将字符串按"/"q行了分D,我们以下再?font color="#800080"> split(CharSequence input, int limit)Ҏ来指定分D늚D|Q程序改动ؓQ?br />tring[] result = p.split("Kevin has seen《LEON》seveal times,because it is a good film./ 凯文已经看过《这个杀手不太冷》几ơ了Q因为它是一部好电媄?名词:凯文?Q?); 

q里面的参数"2"表明目标语句分ZDc?br />
输出l果则ؓQ?br />
Kevin has seen《LEON》seveal times,because it is a good film. 
凯文已经看过《这个杀手不太冷》几ơ了Q因为它是一部好电媄?名词:凯文。?br />
׃面的例子Q我们可以比较出java.util.regex包在构造Pattern对象以及~译指定的正则表辑ּ的实现手法与我们在上一中所介绍的Jakarta-ORO 包在完成同样工作时的差别QJakarta-ORO 包要先构造一个PatternCompilercd象接着生成一个Pattern对象Q再正则表辑ּ用该PatternCompilercȝcompile()Ҏ来将所需的正则表辑ּ~译赋予Patternc: 

PatternCompiler orocom=new Perl5Compiler(); 

Pattern pattern=orocom.compile("REGULAR EXPRESSIONS"); 

PatternMatcher matcher=new Perl5Matcher(); 

但是在java.util.regex包里Q我们仅需生成一个Patternc,直接使用它的compile()Ҏ可以达到同L效果: 
Pattern p = Pattern.compile("[/]+"); 

因此gjava.util.regex的构造法比Jakarta-ORO更ؓzƈҎ理解。?br />
3.Matcherc? 
MatcherҎ如下Q Matcher appendReplacement(StringBuffer sb, String replacement) 
当前匹配子串替换ؓ指定字符Ԍq且替换后的子串以及其之前Cơ匹配子串之后的字符串段dC个StringBuffer对象里。?br />StringBuffer appendTail(StringBuffer sb) 
最后一ơ匹配工作后剩余的字W串dC个StringBuffer对象里。?br />int end() 
q回当前匚w的子串的最后一个字W在原目标字W串中的索引位置 。?br />int end(int group) 
q回与匹配模式里指定的组相匹配的子串最后一个字W的位置。?br />boolean find() 
试在目标字W串里查找下一个匹配子丌Ӏ?br />boolean find(int start) 
重设Matcher对象Qƈ且尝试在目标字符串里从指定的位置开始查找下一个匹配的子串。?br />String group() 
q回当前查找而获得的与组匚w的所有子串内容?br />String group(int group) 
q回当前查找而获得的与指定的l匹配的子串内容 
int groupCount() 
q回当前查找所获得的匹配组的数量。?br />boolean lookingAt() 
目标字W串是否以匹配的子串起始。?br />boolean matches() 
试Ҏ个目标字W展开匚w,也就是只有整个目标字W串完全匚w时才q回真倹{?br />Pattern pattern() 
q回该Matcher对象的现有匹配模式,也就是对应的Pattern 对象。?br />String replaceAll(String replacement) 
目标字W串里与既有模式相匹配的子串全部替换为指定的字符丌Ӏ?br />String replaceFirst(String replacement) 
目标字W串里第一个与既有模式相匹配的子串替换为指定的字符丌Ӏ?br />Matcher reset() 
重设该Matcher对象。?br />Matcher reset(CharSequence input) 
重设该Matcher对象q且指定一个新的目标字W串。?br />int start() 
q回当前查找所获子串的开始字W在原目标字W串中的位置。?br />int start(int group) 
q回当前查找所获得的和指定l匹配的子串的第一个字W在原目标字W串中的位置。?br />

Q光看方法的解释是不是很不好理解Q不要急,待会l合例子比较容易明白了Q?br />
一个Matcher实例是被用来对目标字W串q行Z既有模式Q也是一个给定的Pattern所~译的正则表辑ּQ进行匹配查扄Q所有往Matcher的输入都是通过CharSequence接口提供的,q样做的目的在于可以支持对从多元化的数据源所提供的数据进行匹配工作。?br />
我们分别来看看各Ҏ的用: 

★matches()/lookingAt ()/find()Q?br />一个Matcher对象是由一个Pattern对象调用其matcher()Ҏ而生成的Q一旦该Matcher对象生成,它就可以q行三种不同的匹配查找操作: 

matches()Ҏ试Ҏ个目标字W展开匚w,也就是只有整个目标字W串完全匚w时才q回真倹{?br />lookingAt ()Ҏ检目标字W串是否以匹配的子串起始。?br />find()Ҏ试在目标字W串里查找下一个匹配子丌Ӏ?br />
以上三个Ҏ都将q回一个布值来表明成功与否。?br />
★replaceAll ()/appendReplacement()/appendTail()Q?br />Matchercd时提供了四个匹配子串替换成指定字符串的ҎQ?br />
replaceAll() 
replaceFirst() 
appendReplacement() 
appendTail() 

replaceAll()与replaceFirst()的用法都比较单,L上面Ҏ的解释。我们主要重点了解一下appendReplacement()和appendTail()Ҏ。?br />
appendReplacement(StringBuffer sb, String replacement) 当前匹配子串替换ؓ指定字符Ԍq且替换后的子串以及其之前Cơ匹配子串之后的字符串段dC个StringBuffer对象里,而appendTail(StringBuffer sb) Ҏ则将最后一ơ匹配工作后剩余的字W串dC个StringBuffer对象里。?br />
例如Q有字符串fatcatfatcatfat,假设既有正则表达式模式ؓ"cat"Q第一ơ匹配后调用appendReplacement(sb,"dog"),那么q时StringBuffer sb的内容ؓfatdogQ也是fatcat中的cat被替换ؓdogq且与匹配子串前的内容加到sb里,而第二次匚w后调用appendReplacement(sb,"dog")Q那么sb的内容就变ؓfatdogfatdogQ如果最后再调用一ơappendTailQsbQ?那么sb最l的内容是fatdogfatdogfat。?br />
q是有点模糊Q那么我们来看个单的E序Q?br />//该例把句子里的"Kelvin"改ؓ"Kevin" 
import java.util.regex.*; 
public class MatcherTest{ 
public static void main(String[] args) 
throws Exception { 
//生成Pattern对象q且~译一个简单的正则表达?Kelvin" 
Pattern p = Pattern.compile("Kevin"); 
//用Patterncȝmatcher()Ҏ生成一个Matcher对象 
Matcher m = p.matcher("Kelvin Li and Kelvin Chan are both working in Kelvin Chen's KelvinSoftShop company"); 
StringBuffer sb = new StringBuffer(); 
int i=0; 
//使用find()Ҏ查找W一个匹配的对象 
boolean result = m.find(); 
//使用循环句子里所有的kelvin扑ևq替换再内容加到sb里?br />while(result) { 
i++; 
m.appendReplacement(sb, "Kevin"); 
System.out.println("W?+i+"ơ匹配后sb的内ҎQ?+sb); 
//l箋查找下一个匹配对象?br />result = m.find(); 

//最后调用appendTail()Ҏ最后一ơ匹配后的剩余字W串加到sb里; 
m.appendTail(sb); 
System.out.println("调用m.appendTail(sb)后sb的最l内Ҏ:"+ sb.toString()); 





最l输出结果ؓQ?br />W?ơ匹配后sb的内ҎQKevin 
W?ơ匹配后sb的内ҎQKevin Li and Kevin 
W?ơ匹配后sb的内ҎQKevin Li and Kevin Chan are both working in Kevin 
W?ơ匹配后sb的内ҎQKevin Li and Kevin Chan are both working in Kevin Chen's Kevin 
调用m.appendTail(sb)后sb的最l内ҎQKevin Li and Kevin Chan are both working in Kevin Chen's KevinSoftShop company. 

看了上面q个例程是否对appendReplacement()QappendTail()两个Ҏ的用更清楚呢,如果q是不太肯定最好自己动手写几行代码试一下。?br />
★group()/group(int group)/groupCount()Q?br />该系列方法与我们在上介l的Jakarta-ORO中的MatchResult .group()ҎcM(有关Jakarta-ORO请参考上的内容)Q都是要q回与组匚w的子串内容,下面代码很好解释其用法Q?br />import java.util.regex.*; 

public class GroupTest{ 
public static void main(String[] args) 
throws Exception { 
Pattern p = Pattern.compile("(ca)(t)"); 
Matcher m = p.matcher("one cat,two cats in the yard"); 
StringBuffer sb = new StringBuffer(); 
boolean result = m.find(); 
System.out.println("该次查找获得匚wl的数量为:"+m.groupCount()); 
for(int i=1;i<=m.groupCount();i++){ 
System.out.println("W?+i+"l的子串内容为: "+m.group(i)); 






输出为: 
该次查找获得匚wl的数量为:2 
W?l的子串内容为:ca 
W?l的子串内容为:t 

Matcher对象的其他方法因比较好理解且׃幅有限Q请读者自qE验证。?br />
4Q一个检验Email地址的小E序Q?/font> 
最后我们来看一个检验Email地址的例E,该程序是用来验一个输入的EMAIL地址里所包含的字W是否合法,虽然q不是一个完整的EMAIL地址验程序,它不能检验所有可能出现的情况Q但在必要时您可以在其基上增加所需功能。?br />import java.util.regex.*; 
public class Email { 
public static void main(String[] args) throws Exception { 
String input = args[0]; 
//输入的EMAIL地址是否以 非法符?."?@"作ؓ起始字符 
Pattern p = Pattern.compile("^\\.|^\\@"); 
Matcher m = p.matcher(input); 
if (m.find()){ 
System.err.println("EMAIL地址不能?.'?@'作ؓ起始字符"); 

//是否以"www."v始?br />p = Pattern.compile("^www\\."); 
m = p.matcher(input); 
if (m.find()) { 
System.out.println("EMAIL地址不能?www.'起始"); 

//是否包含非法字W?br />p = Pattern.compile("[^A-Za-z0-9\\.\\@_\\-~#]+"); 
m = p.matcher(input); 
StringBuffer sb = new StringBuffer(); 
boolean result = m.find(); 
boolean deletedIllegalChars = false; 
while(result) { 
//如果扑ֈ了非法字W那么就设下标记 
deletedIllegalChars = true; 
//如果里面包含非法字符如冒号双引号{,那么把他们消去Q加到SB里面 
m.appendReplacement(sb, ""); 
result = m.find(); 

m.appendTail(sb); 
input = sb.toString(); 
if (deletedIllegalChars) { 
System.out.println("输入的EMAIL地址里包含有冒号、逗号{非法字W,请修?); 
System.out.println("您现在的输入? "+args[0]); 
System.out.println("修改后合法的地址应类? "+input); 






例如Q我们在命o行输入:java Email www.kevin@163.net 

那么输出l果会是:EMAIL地址不能?www.'起始 

如果输入的EMAIL为@kevin@163.net 

则输ZؓQEMAIL地址不能?.'?@'作ؓ起始字符 

当输入ؓQcgjmail#$%@163.net 

那么输出是Q?br />
输入的EMAIL地址里包含有冒号、逗号{非法字W,请修改?br />您现在的输入? cgjmail#$%@163.net 
修改后合法的地址应类? cgjmail@163.net 

5QȝQ?br />本文介绍了jdk1.4.0-beta3里正则表辑ּ?-java.util.regex中的cM及其ҎQ如果结合与上一中所介绍的Jakarta-ORO API作比较,读者会更容易掌握该API的用,当然该库的性能在未来的日子里不断扩展Q希望获得最C息的读者最好到及时到SUN的网站去了解。?br />
6Q结束语Q?br />本来计划再多写一介l一下需付费的正则表辑ּ库中较具代表性的作品Q但觉得既然有了免费且优U的正则表辑ּ库可以用,何必q要L需付费的呢Q相信很多读者也是这么想?Q所以有兴趣了解更多其他的第三方正则表达式库的朋友可以自己到|上查找或者到我在参考资料里提供的网址ȝ看。?br />
参考资料?br />
java.util.regex的帮助文档?br />Dana Nourie 和Mike McCloskey所写的Regular Expressions and the Java™ Programming Language 
需要更多的W三Ҏ则表辑ּ资源以及Z它们所开发的应用E序Lhttp://www.meurrens.org/ip-Links/java/regex/index.html 

Java's java.util.regex 包包括:PatterncRMatchercRMatchResult接口和PatternSyntaxException异常Q?/p>

  • Pattern 对象代表了编译了的正则表辑ּQA compiled representation of a regular expression.Q?
  • Matcher QAn engine that performs match operations on a character sequence by interpreting a Pattern.
  • MatchResult接口QThe result of a match operation.
  • PatternSyntaxException对象Q描q非法的regex patternsQUnchecked exception thrown to indicate a syntax error in a regular-expression pattern.

 同时q需要了解是CharSequenceQJDK 1.4定义的新的接口,它提供了String和StringBufferq两个类的字W序列的抽象

interface CharSequence {
charAt(int i);
length();
subSequence(int start, int end);
toString();
}

Z实现q个新的CharSequence接口QStringQStringBuffer以及CharBuffer都作了修改,很多的正则表辑ּ的操作都要拿CharSequence作参数?

Matchercȝ几个重要的方法:

  • boolean matches()QPattern匚w整个字符?
  • boolean lookingAt()QPattern匚w字符串的开?
  • boolean find()Q发现CharSequence里的Q与pattern相匹配的多个字符序列
    boolean find(int start)Q告诉方法从参数start位置开始查?/li>

group的概?/h2>

Group是指里用括号括v来的Q能被后面的表达式调用的正则表达式?/p>

Group 0 表示整个表达式,group 1表示W一个被括v来的groupQ以此类推。所以;

A(B(C))D

里面有三个groupQgroup 0是ABCDQ?group 1是BCQgroup 2是C?

你可以用下述MatcherҎ来用groupQ?

  • public int groupCount( )q回matcher对象中的group的数目。不包括group0?
  • public String group( ) q回上次匚w操作(比方说find( ))的group 0(整个匚w)
  • public String group(int i)q回上次匚w操作的某个group。如果匹配成功,但是没能扑ֈgroupQ则q回null?
  • public int start(int group)q回上次匚w所扑ֈ的group的开始位|?
  • public int end(int group)q回上次匚w所扑ֈ的group的结束位|,最后一个字W的下标加一?
  • split( ) 是指以正则表达式ؓ界,字W串分割成String数组,如果带有limit参数Qsplit( )会限定分割的ơ数?
  • replaceFirst(String replacement)字W串里,W一个与模式相匹配的子串替换成replacement?
  • replaceAll(String replacement)Q将输入字符串里所有与模式相匹配的子串全部替换成replacement?
  • appendReplacement(StringBuffer sbuf, String replacement)对sbufq行逐次替换Q而不是像replaceFirst( )或replaceAll( )那样Q只替换W一个或全部子串。这是个非常重要的方法,因ؓreplacement(replaceFirst( )和replaceAll( )只允许用固定的字W串来充当replacement)。有了这个方法,你就可以~程区分groupQ从而实现更强大的替换功能?
  • 调用完appendReplacement( )之后Qؓ了把剩余的字W串拯回去Q必调用appendTail(StringBuffer sbuf, String replacement)?

 

使用group可以做到逐步~小匚w的范_直至_匚w的目的?

start( )和end( )Q如果匹配成功,start( )会返回此ơ匹配的开始位|,end( )会返回此ơ匹配的l束位置Q即最后一个字W的下标加一。如果之前的匚w不成?或者没匚w)Q那么无论是调用start( )q是end( )Q都会引发一个IllegalStateException?/p>

二?大用方法:

查询

String str="abc efg ABC";

String regEx="a|f"; //表示a或f

Pattern p=Pattern.compile(regEx);

Matcher m=p.matcher(str);

boolean rs=m.find();

如果str中有regExQ那么rs为trueQ否则ؓflase。如果想在查找时忽略大小写,则可以写成Pattern p=Pattern.compile(regEx,Pattern.CASE_INSENSITIVE);

提取

String regEx=".+\(.+)$";

String str="c:\dir1\dir2\name.txt";

Pattern p=Pattern.compile(regEx);

Matcher m=p.matcher(str);

boolean rs=m.find();

for(int i=1;i<=m.groupCount();i++){

System.out.println(m.group(i));

}

以上的执行结果ؓname.txtQ提取的字符串储存在m.group(i)中,其中i最大gؓm.groupCount();

 

分割

String regEx="::";

Pattern p=Pattern.compile(regEx);

String[] r=p.split("xd::abc::cde");

执行后,r是{"xd","abc","cde"}Q其实分割时q有跟简单的ҎQ?

String str="xd::abc::cde";

String[] r=str.split("::");

 

替换或者删?/strong>

String regEx="a+"; //表示一个或多个a

Pattern p=Pattern.compile(regEx);

Matcher m=p.matcher("aaabbced a ccdeaa");

String s=m.replaceAll("A");

  l果?Abbced A ccdeA"

  如果写成IZQ既可达到删除的功能Q比如:

String s=m.replaceAll("");

  l果?bbced ccde"

 

三、一个实际的例子

下面的函数是一个实际应用的例子Q需求是需要将抓取的网中?lt;img src=''http://aa.bb.cc.com/images/**.jpg"> 中的地址Q保存到一个地址列表中(以供抓取囄使用Q,q将l对地址替换成本地的相对地址Q即<img src="images/**.jpg">?/p>

public static Map<String, String> getImagesURL(String description) {

      Map<String, String> map = new HashMap<String, String>();
        // img 的正则表辑ּ:匚w<img>标签       
        String imgPattern = "<\\s*img\\s+([^>]+)\\s*>";
        Pattern pattern1 = Pattern.compile(imgPattern, Pattern.CASE_INSENSITIVE);
        Matcher matcher = pattern1.matcher(description);

        // img src元素的正则表辑ּQ匹配img标签内的src属?br />        String srcPattern = "\\s*src\\s*=\\s*\"([^\"]+)\\s*\"";
        Pattern pattern2 = Pattern.compile(srcPattern, Pattern.CASE_INSENSITIVE);

        while (matcher.find()) {

           //group()q回W合表达式的内容
            Matcher matcher2 = pattern2 .matcher(matcher.group());
            // 一定要find(),q是实际的匹配动?br />            if (matcher2.find()) {
                String src = matcher2.group();
                log.info(src);
                int i2 = src.lastIndexOf('/');
                int i1 = src.indexOf("http");
                if (i1 != -1) {
                    map.put(src.substring(i2 + 1, src.length() - 1), src
                            .substring(i1, src.length() - 1));
                }
            }
        }
        log.debug("囄Q? + map);
        return map;
    }

 

整体思\是先匚w到img标签Q然后匹配src属性,q修改src的属?/p>

"<\\s*img\\s+([^>]+)\\s*>" 的解释:

\\s* :0 或多个空格 ?\\s+: 臛_一个空?/p>

([^>]+)Q指的是?gt;为止的所有的元素Q至一?/p>

 

常用的正则表辑ּQ参考jdk的regex文档Q?/h1>

字符集类

.                            表示L一个字W?

[abc]                     表示字符aQbQc中的L一?与a|b|c相同)

[^abc]                   除aQbQc之外的Q意一个字W?否定)

[a-zA-Z]                从a到z或A到Z当中的Q意一个字W?范围)

[abc[hij]]              a,b,c,h,i,j中的L一个字W?与a|b|c|h|i|j相同)(q)

[a-z&&[hij]]          h,i,j中的一?交集)

\s                          I格字符(I格? tab, 换行, 换页, 回R)

\S                         非空格字W?[^\s])

\d                         一个数字,也就是[0-9]

\D                         一个非数字的字W,也就是[^0-9]

\w                        一个单词字W?word character)Q即[a-zA-Z_0-9]

\W                       一个非单词的字W,[^\w]

字符c:

B                         字符B

\xhh                    16q制?xhh所表示的字W?

\uhhhh                16q制?xhhhh所表示的Unicode字符

\t                         Tab

\n                        换行W?

\r                         回RW?

\f                        换页W?

\e                       Escape

逻辑q算W?/strong>

XY                      X 后面跟着 Y

X|Y                    X或Y

(X)                     一?要匹配的l?capturing group)". 以后可以用\i来表C第i个被匚w的组?

边界匚wW?/strong>

^                      一行的开?

$                      一行的l尾

\b                    一个单词的边界

\B                    一个非单词的边?

\G                   前一个匹配的l束

数量表示W?/strong>

"数量表示W?quantifier)"的作用是定义模式应该匚w多少个字W?

  • Greedy(贪婪?Q?除非另有表示Q否则数量表C符都是greedy的。Greedy的表辑ּ会一直匹配下去,直到匚w不下Mؓ止?u>(如果你发现表辑ּ匚w的结果与预期的不W?Q很有可能是因ؓQ你以ؓ表达式会只匹配前面几个字W,而实际上它是greedy的,因此会一直匹配下厅R?
  • Reluctant(勉强?Q?用问可C,它会匚w最的字符。也UCؓlazy, minimal matching, non-greedy, 或ungreedy?
  • Possessive(占有?Q?目前只有Java支持(其它语言都不支持)。它更加先进Q所以你可能q不太会用。用正则表达式匹配字W串的时候会产生很多中间状态,(一般的匚w引擎会保存这U中间状态,)q样匚wp|的时候就能原路返回了。占有型的表辑ּ不保存这U中间状态,因此也就不会回头重来了。它能防止正则表辑ּ的失控,同时也能提高q行的效率?

Greedy                    Reluctant                           Possessive                      匚w

X?                            X??                                      X?+                                  匚w一个或零个X

X*                            X*?                                      X*+                                  匚w零或多个X

X+                           X+?                                      X++                                 匚w一个或多个X

X{n}                        X{n}?                                   X{n}+                               匚w正好n个X

X{n,}                       X{n,}?                                 X{n,}+                              匚w臛_n个X

X{n,m}                   X{n,m}?                                X{n,m}+                           匚w臛_n个,臛_m个X

参考资?/h2>

要想q一步学习正则表辑ּQ徏议看Mastering Regular Expression, 2nd EditionQ作者Jeffrey E. F. Friedl (O’Reilly, 2002)?

"Regular Expressions and the Java Programming Language," Dana Nourie and Mike McCloskey (Sun Microsystems, August 2002) presents a brief overview of java.util.regex, including five illustrative regex-based applications:
http://developer.java.sun.com/developer/technicalArticles/releases/1.4regex/

http://www.tkk7.com/beike/archive/2006/04/28/43832.html 

http://wcjok.bokee.com/4293762.html



Welcome 2007-09-29 18:42 发表评论
]]>Now.javahttp://www.tkk7.com/coacoa2008/archive/2007/09/29/149596.htmlWelcomeWelcomeSat, 29 Sep 2007 08:13:00 GMThttp://www.tkk7.com/coacoa2008/archive/2007/09/29/149596.htmlhttp://www.tkk7.com/coacoa2008/comments/149596.htmlhttp://www.tkk7.com/coacoa2008/archive/2007/09/29/149596.html#Feedback0http://www.tkk7.com/coacoa2008/comments/commentRss/149596.htmlhttp://www.tkk7.com/coacoa2008/services/trackbacks/149596.html(1)
import java.util.*;
public class Now {
   public static void main(String[] args) {
      Date now = new Date();
      System.out.println("Value is " + now);
   }
}


(2)
import java.util.*;
public class Now {
   public static void main(String[] args) {
      Date now = new Date();
      long nowLong = now.getTime();
      System.out.println("Value is " + nowLong);
   }
}

(3)

DateFormatcdjava.text包中可以扑ֈ?br />转换成字W串
你可以用format()Ҏ转换Date对象Z个字W串?br />
import java.util.*;
import java.text.*;
public class NowString {
   public static void main(String[] args) {
      Date now = new Date();
      DateFormat df = DateFormat.getDateInstance();
      String s = df.format(now);
      System.out.println("Today is " + s);
   }
}  

在上面的代码中,展示了没有参敎ͼ使用~省格式的getDateInstance()Ҏ。Javaq提供了几个选择日期格式Q你可以通过使用重蝲的getDateInstance(int style)获得。出于方便的原因QDateFormat提供了几U预|的帔RQ你可以使用q些帔R参数。下面是几个SHORT, MEDIUM, LONG, 和FULLcd的示例:


import java.util.*;
import java.text.*;

public class StyleDemo {
   public static void main(String[] args) {
      Date now = new Date();

      DateFormat df =  DateFormat.getDateInstance();
      DateFormat df1 = DateFormat.getDateInstance(DateFormat.SHORT);
      DateFormat df2 = DateFormat.getDateInstance(DateFormat.MEDIUM);
      DateFormat df3 = DateFormat.getDateInstance(DateFormat.LONG);
      DateFormat df4 = DateFormat.getDateInstance(DateFormat.FULL); 
      String s =  df.format(now);
      String s1 = df1.format(now);
      String s2 = df2.format(now);
      String s3 = df3.format(now);
      String s4 = df4.format(now);

      System.out.println("(Default) Today is " + s);
      System.out.println("(SHORT)   Today is " + s1);
      System.out.println("(MEDIUM)  Today is " + s2);
      System.out.println("(LONG)    Today is " + s3);
      System.out.println("(FULL)    Today is " + s4);
   }
}

E序输出如下Q?/p>

(Default) Today is Nov 8, 2000
(SHORT)   Today is 11/8/00
(MEDIUM)  Today is Nov 8, 2000
(LONG)    Today is November 8, 2000
(FULL)    Today is Wednesday, November 8, 2000

同样的程序,在我的电脑上使用~省讄q行后,改变区域讄为瑞典,输出如下Q?/p>

(Default) Today is 2000-nov-08
(SHORT)   Today is 2000-11-08
(MEDIUM)  Today is 2000-nov-08
(LONG)    Today is den 8 november 2000
(FULL)    Today is den 8 november 2000    
 
从这里,你能看到Q瑞典的月䆾不是大写的(虽然Novemberq是novemberQ?q有QLONG和FULL版本在瑞典语中是一LQ但是美国英语却不同。另外,有趣的是Q瑞典语单词的星期三,onsdagQ没有包含在FULL日期里,p却包括?
注意你能够用getDateInstance()Ҏ改变DateFormat实例的语U;但是Q在上面的例子中Q是通过改变Windows98的控刉板的区域讄做到的。不同的地方的区域设|不同,l果׃同,q样有好处,也有不QJavaE序员应该了解这些。一个好处是JavaE序员可以只写一行代码就可以昄日期Q而且世界不同地区的电脑运行同LE序会有不用的日期格式?但是q也是一个缺点,当程序员希望昄同一U格式的?-q也有可取之处,举例来说Q在E序中؜合输出文本和日期Q如果文本是英文Q我们就不希望日期格式是其他的格式,象d文或是西班牙文。如果程序员依靠日期格式~程Q日期格式将Ҏq行E序所在电脑的区域讄不用而不同?


(4)
解析字符?/font>

 通过parse()ҎQDateFormat能够以一个字W串创立一个Date对象。这个方法能抛出ParseException异常Q所以你必须使用适当的异常处理技术。下面的例子E序通过字符串创建Date对象Q?/p>


import java.util.*;
import java.text.*;

public class ParseExample {
   public static void main(String[] args) {
      String ds = "November 1, 2000";
      DateFormat df = DateFormat.getDateInstance();
      try {
         Date d = df.parse(ds);
      }
      catch(ParseException e) {
         System.out.println("Unable to parse " + ds);
      }
   }
}

在创Z个Q意的日期时parse()Ҏ很有用。我通过另一U方法创Z个Q意得日期。同Ӟ你将看到怎样q行基本日期计算Q例如计?0天后的另一天。你可以使用GregorianCalendarc?/font>来完成这个Q务?
GregorianCalendarc?br /> 创徏一个代表Q意日期的一个途径使用GregorianCalendarcȝ构造函敎ͼ它包含在java.util包中Q?/p>


GregorianCalendar(int year, int month, int date) 

注意月䆾的表C,一月是0Q二月是1Q以此类推,?2月是11。因为大多数Z惯于使用单词而不是用数字来表示月䆾Q这L序也许更易读Q父cCalendar使用帔R来表C月份:JANUARY, FEBRUARY,{等。所以,创徏Wilbur ?Orville刉第一架动力飞机的日期QDecember 17, 1903Q,你可以用:


GregorianCalendar firstFlight = new GregorianCalendar(1903, Calendar.DECEMBER, 17); 
 
Z清楚的考虑Q你应该使用前面的Ş式。但是,你也应该学习怎样阅读下面的短格式。下面的例子同样表示December 17,1903Q记住,在短格式中,11表示DecemberQ?/p>


GregorianCalendar firstFlight = new GregorianCalendar(1903, 11, 17);   

在上一节中Q你学习了{换Date对象到字W串。这里,你可以做同样的事情;但是首先Q你需要将GregorianCalendar对象转换到Date。要做到q一点,你可以用getTime()ҎQ从它得父类Calendarl承而来。GetTime()Ҏq回GregorianCalendar相应的Date对象。你能够创徏GregorianCalendar对象Q{换到Date对象Q得到和输出相应的字W串q样一个过E。下面是例子Q?


import java.util.*;
import java.text.*;

public class Flight {

   public static void main(String[] args) {
      GregorianCalendar firstFlight = new GregorianCalendar(1903, Calendar.DECEMBER, 17);    
      Date d = firstFlight.getTime();
      DateFormat df = DateFormat.getDateInstance();
      String s = df.format(d);
      System.out.println("First flight was " + s);
   }
}

有时候创Z个代表当前时ȝGregorianCalendarcȝ实例是很有用的。你可以单的使用没有参数的GregorianCalendar构造函敎ͼ象这P


GregorianCalendar thisday = new GregorianCalendar();

一个输Z天日期的例子E序Q用GregorianCalendar对象Q?/p>


import java.util.*;
import java.text.*;

class Today {
   public static void main(String[] args) {
      GregorianCalendar thisday = new GregorianCalendar(); 
      Date d = thisday.getTime();
      DateFormat df = DateFormat.getDateInstance();
      String s = df.format(d);
      System.out.println("Today is " + s);
   }
}

注意刎ͼDate()构造函数和GregorianCalendar()构造函数很cMQ都创徏一个对象,条g单,代表今天?/p>


(6)
日期处理

GregorianCalendarcL供处理日期的Ҏ?/font>一个有用的Ҏ是add().使用add()ҎQ你能够增加象年Q月敎ͼ天数到日期对象中。要使用add()ҎQ你必须提供要增加的字段Q要增加的数量。一些有用的字段是DATE, MONTH, YEAR, ?WEEK_OF_YEAR。下面的E序使用add()Ҏ计算未来80天的一个日期。在Jules?lt;环球80?gt;是一个重要的数字Q用这个程序可以计Phileas Fogg从出发的那一?872q?0?日后80天的日期Q?/p>


import java.util.*;
import java.text.*;

public class World {
   public static void main(String[] args) {
      GregorianCalendar worldTour = new GregorianCalendar(1872, Calendar.OCTOBER, 2);
//Calendar.May, January,February,March,April,May,June,July,August,September,October,November,December 必须全部大写;
   
      worldTour.add(GregorianCalendar.DATE, 80);
      Date d = worldTour.getTime();
      DateFormat df = DateFormat.getDateInstance();
      String s = df.format(d);
      System.out.println("80 day trip will end " + s);
   }
}

q个例子是想象的Q但在一个日期上增加天数是一个普遍的操作Q媄可以租3天,图书馆可以借书21天,商店l常需要将购买的物品在30天内卖出。下面的E序演示了用年计算Q?/p>


import java.util.*;
import java.text.*;

public class Mortgage {
   public static void main(String[] args) {
      GregorianCalendar mortgage = new GregorianCalendar(1997, Calendar.MAY, 18);
      mortgage.add(Calendar.YEAR, 15);
      Date d = mortgage.getTime();
      DateFormat df = DateFormat.getDateInstance();
      String s = df.format(d);
      System.out.println("15 year mortgage amortized on " + s);    }
}

    add()一个重要的副作用是它改变的原来的日期。有时候,拥有原始日期和修改后的日期很重要。不q的是,你不能简单的创徏一个GregorianCalendar对象Q设|它和原来的相等QequalQ。原因是两个变量指向同一个Date()对象地址。如果Date对象改变Q两个变量就指向改变后的日期对象。代替这U做法,应该创徏一个新对象。下面的E序C了这U做法:


import java.util.*;
import java.text.*;

public class ThreeDates {
   public static void main(String[] args) {
      GregorianCalendar gc1 = new GregorianCalendar(2000, Calendar.JANUARY, 1);
      GregorianCalendar gc2 = gc1;
      GregorianCalendar gc3 = new GregorianCalendar(2000, Calendar.JANUARY, 1);
      //Three dates all equal to January 1, 2000

      gc1.add(Calendar.YEAR, 1);
      file://gc1 and gc2 are changed

      DateFormat df = DateFormat.getDateInstance();

      Date d1 = gc1.getTime();
      Date d2 = gc2.getTime();
      Date d3 = gc3.getTime();

      String s1 = df.format(d1);
      String s2 = df.format(d2);
      String s3 = df.format(d3);

      System.out.println("gc1 is " + s1);
      System.out.println("gc2 is " + s2);
      System.out.println("gc3 is " + s3);
   }
}

    E序q行后,gc1和gc2被变?001q_因ؓ两个对象指向同一个DateQ而Date已经被改变了Q。对象gc3指向一个单独的DateQ它没有被改变?br />计算复习日期
在这节,你将看到一个依据现实世界的例子。这个详l的E序计算q去一个具体的日期。例如,你阅读这文章,你想要记住一个印象深ȝ知识炏V如果你没有照片一L记忆力,你就要定期的复习q些新资料,q将帮助你记住它。关于复习系l,Kurt Hanks ?Gerreld L. Pulsipher在他们的< Five Secrets to Personal Productivity个h能力?个秘?gt;中有讨论Q徏议看q第一眼后马上回顾一下,然后?天后Q?个星期后Q?个月后,3个月后,1q后。我的这文章,你要马上回顾一下,从现在算P再就是明天,然后?个星期,1个月Q?个月Q?q后。我们的E序计这些日期?br />q个E序非常有用的,它将是PIM(Personal Information Manager个h信息理?的一个组成部分,q将定复习旉。在下面的程序中QgetDates()Ҏ对一个返回日期数l(复习日期Q的电子软g很有用。另外,你可以返回单独的一个日期,使用getFirstDay(),getOneDay(),getOneWeek(),getOnMonth()和getOneYear().当时间范围超个PIM的ReviewDates的计范围时ReviewDatescLCZ怎样计算旉Dc现在,你可以容易的修改它用来处理你需要的旉D,象图书馆借书Q录影带U赁和抵D。首先,ReviewDatescLC在下面Q?/p>


import java.util.*;
import java.text.*;

public class ReviewDates {
   private GregorianCalendar firstDay, oneDay, oneWeek, oneMonth, oneQuarter, oneYear;
   final int dateArraySize = 6;

   ReviewDates(GregorianCalendar gcDate) {
      int year = gcDate.get(GregorianCalendar.YEAR);
      int month = gcDate.get(GregorianCalendar.MONTH);
      int date = gcDate.get(GregorianCalendar.DATE);

      firstDay = new GregorianCalendar(year, month, date);
      oneDay = new GregorianCalendar(year, month, date);
      oneWeek = new GregorianCalendar(year, month, date);
      oneMonth = new GregorianCalendar(year, month, date);
      oneQuarter = new GregorianCalendar(year, month, date);
      oneYear = new GregorianCalendar(year, month, date);

      oneDay.add(GregorianCalendar.DATE, 1);
      oneWeek.add(GregorianCalendar.DATE, 7);
      oneMonth.add(GregorianCalendar.MONTH, 1);
      oneQuarter.add(GregorianCalendar.MONTH, 3);
      oneYear.add(GregorianCalendar.YEAR, 1);
   }

   ReviewDates() {
      this(new GregorianCalendar());
   }

   public void listDates() {
      DateFormat df = DateFormat.getDateInstance(DateFormat.LONG); 
      Date startDate = firstDay.getTime();
      Date date1 = oneDay.getTime();
      Date date2 = oneWeek.getTime();
      Date date3 = oneMonth.getTime();
      Date date4 = oneQuarter.getTime();
      Date date5 = oneYear.getTime();

      String ss =  df.format(startDate);
      String ss1 = df.format(date1);
      String ss2 = df.format(date2);
      String ss3 = df.format(date3);
      String ss4 = df.format(date4);
      String ss5 = df.format(date5);

      System.out.println("Start date is " + ss);
      System.out.println("Following review dates are:");
      System.out.println(ss1);
      System.out.println(ss2);
      System.out.println(ss3);
      System.out.println(ss4);
      System.out.println(ss5);
      System.out.println();
   }

   public GregorianCalendar[] getDates() {
      GregorianCalendar[] memoryDates = new GregorianCalendar[dateArraySize];
      memoryDates[0] = firstDay;
      memoryDates[1] = oneDay;
      memoryDates[2] = oneWeek;
      memoryDates[3] = oneMonth;
      memoryDates[4] = oneQuarter;
      memoryDates[5] = oneYear;
      return memoryDates;
   }

   public GregorianCalendar getFirstDay() {
      return this.firstDay;
   }

   public GregorianCalendar getOneDay() {
      return this.oneDay;
   }

   public GregorianCalendar getOneWeek() {
      return this.oneWeek;
   }

   public GregorianCalendar getOneMonth() {
      return this.oneMonth;
   }

   public GregorianCalendar getOneQuarter() {
      return this.oneQuarter;
   }

   public GregorianCalendar getOneYear() {
      return this.oneYear;
   }

下面是用ReviewDatescd出复习日期的例子E序Q?/p>


import java.util.*;

public class ShowDates {
   public static void main(String[] args) {
      ReviewDates rd = new ReviewDates();
      rd.listDates();

      GregorianCalendar gc = new GregorianCalendar(2001, Calendar.JANUARY, 15);
      ReviewDates jan15 = new ReviewDates(gc);
      jan15.listDates();
   }
}


ȝ

 q篇文章介绍了关于日期处理的3个重要的c:Date,DateFormat,GregorianCalendar.q些c让你创建日期,转换成字W串Q和计算日期基本元素。处理Java中的日期问题Q这文章只是冰׃角。可是,我在q里介绍的类和方法不仅仅是你学习高技术的xQ这些类和方法本w就可以处理很多通常的日期相关的d

关于作?br />Robert Nielsen是SCJP。他拥有士学位Q专攻计机教育Qƈ且在计算机领域执教多q。他也在各样的杂志上发表q很多计机相关的文章?br />
关于译?br />Cocia Lin(cocia@163.com)是程序员?br />



Welcome 2007-09-29 16:13 发表评论
]]>
java.util Properties 学习http://www.tkk7.com/coacoa2008/archive/2007/09/29/149511.htmlWelcomeWelcomeSat, 29 Sep 2007 03:32:00 GMThttp://www.tkk7.com/coacoa2008/archive/2007/09/29/149511.htmlhttp://www.tkk7.com/coacoa2008/comments/149511.htmlhttp://www.tkk7.com/coacoa2008/archive/2007/09/29/149511.html#Feedback2http://www.tkk7.com/coacoa2008/comments/commentRss/149511.htmlhttp://www.tkk7.com/coacoa2008/services/trackbacks/149511.html java.util
c?Properties

				
				Object,java.util.Properties
所有已实现的接口:
Serializable, Cloneable, Map<Object>
直接已知子类Q?/b>
           System.getProperties().list(System.out);    //list() 属性列表输出到指定的输出流。此Ҏ对调试很有用?/font> 
             //public String getProperty(String key,String defaultValue)用指定的键在属性列表中搜烦属性。如果在属性列表中未找到该键,则接着递归查默认属性列表及光认倹{如果未扑ֈ属性,则此Ҏq回默认值变量?
    }
}
 

/*http://zhangjunhd.blog.51cto.com/113473/23681
1Q获取JVM的系l属?br />import java.util.Properties;
 
class PropTest {
    public static void main(String[] args) {
    Properties pps = System.getProperties();
    pps.list(System.out);
    }
}
 
l果Q?br />-- listing properties --
java.runtime.name=Java(TM) 2 Runtime Environment, Stand...
sun.boot.library.path=C:\Program Files\Java\jdk1.5.0_04\jre...
java.vm.version=1.5.0_04-b05
java.vm.vendor=Sun Microsystems Inc.
java.vendor.url=http://java.sun.com/
path.separator=;
java.vm.name=Java HotSpot(TM) Client VM
file.encoding.pkg=sun.io
user.country=CN
sun.os.patch.level=Service Pack 2
java.vm.specification.name=Java Virtual Machine Specification
...以下?br /> 
2Q读取配|文?br /><!-- 也可以读?lt;??gt;cȝ文g config.txt-- >
config.ini

author=ZJ
user=all
copyright=2006-2007
PropTest.java
import java.io.FileInputStream;
import java.util.Enumeration;
import java.util.Properties;
 
class PropTest {
    public static void main(String[] args) {
Properties pps=new Properties();
    try {
        pps.load(new FileInputStream("config.ini"));
        Enumeration enum1 = pps.propertyNames();
        while (enum1.hasMoreElements()) {
       String strKey = (String) enum1.nextElement();
       String strValue = pps.getProperty(strKey);
       System.out.println(strKey + "=" + strValue);
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    }
}

(3)
http://java.ccidnet.com/art/3747/20060630/592671_1.html

使用J2SEAPIdProperties文g的六U方?/font>
  1。用java.util.Propertiescȝload()ҎCZQInputStreamin=lnewBufferedInputStream(newFileInputStream(name));Propertiesp=newProperties();p.load(in);
  2。用java.util.ResourceBundlecȝgetBundle()ҎCZQResourceBundlerb=ResourceBundle.getBundle(name,Locale.getDefault());
  3。用java.util.PropertyResourceBundlecȝ构造函数示例:InputStreamin=newBufferedInputStream(newFileInputStream(name));ResourceBundlerb=newPropertyResourceBundle(in);
  4。用class变量的getResourceAsStream()ҎCZQInputStreamin=JProperties.class.getResourceAsStream(name);Propertiesp=newProperties();p.load(in);
  5。用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()ҎCZQInputStreamin=JProperties.class.getClassLoader().getResourceAsStream(name);Propertiesp=newProperties();p.load(in);
  6。用java.lang.ClassLoadercȝgetSystemResourceAsStream()静态方法示例:InputStreamin=ClassLoader.getSystemResourceAsStream(name);Propertiesp=newProperties();p.load(in);
  补充
  Servlet中可以用javax.servlet.ServletContext的getResourceAsStream()ҎCZQInputStreamin=context.getResourceAsStream(path);Propertiesp=newProperties();p.load(in);
 

(4)自己的java properties
E:\>java PropTest
-- listing properties --
java.runtime.name=Java(TM) SE Runtime Environment
sun.boot.library.path=C:\Program Files\Java\jre1.6.0_02\bin
java.vm.version=1.6.0_02-b06
java.vm.vendor=Sun Microsystems Inc.
java.vendor.url=http://java.sun.com/
path.separator=;
java.vm.name=Java HotSpot(TM) Client VM
file.encoding.pkg=sun.io
user.country=CN
sun.java.launcher=SUN_STANDARD
sun.os.patch.level=Service Pack 2
java.vm.specification.name=Java Virtual Machine Specification
user.dir=E:\
java.runtime.version=1.6.0_02-b06
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs=C:\Program Files\Java\jre1.6.0_02\lib...
os.arch=x86
java.io.tmpdir=C:\DOCUME~1\new\LOCALS~1\Temp\
line.separator=
java.vm.specification.vendor=Sun Microsystems Inc.
user.variant=
os.name=Windows XP
sun.jnu.encoding=GBK
java.library.path=C:\WINDOWS\system32;.;C:\WINDOWS\Sun\...
java.specification.name=Java Platform API Specification
java.class.version=50.0
sun.management.compiler=HotSpot Client Compiler
os.version=5.1
user.home=C:\Documents and Settings\new
user.timezone=
java.awt.printerjob=sun.awt.windows.WPrinterJob
file.encoding=GBK
java.specification.version=1.6
user.name=new
java.class.path=.
java.vm.specification.version=1.0
sun.arch.data.model=32
java.home=C:\Program Files\Java\jre1.6.0_02
java.specification.vendor=Sun Microsystems Inc.
user.language=zh
awt.toolkit=sun.awt.windows.WToolkit
java.vm.info=mixed mode, sharing
java.version=1.6.0_02
java.ext.dirs=C:\Program Files\Java\jre1.6.0_02\lib...
sun.boot.class.path=C:\Program Files\Java\jre1.6.0_02\lib...
java.vendor=Sun Microsystems Inc.
file.separator=\
java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport...
sun.cpu.endian=little
sun.io.unicode.encoding=UnicodeLittle
sun.desktop=windows
sun.cpu.isalist=
*/


Welcome 2007-09-29 11:32 发表评论
]]>
javascript 基础知识之ȝ实例http://www.tkk7.com/coacoa2008/archive/2007/09/27/148530.htmlWelcomeWelcomeThu, 27 Sep 2007 02:13:00 GMThttp://www.tkk7.com/coacoa2008/archive/2007/09/27/148530.htmlhttp://www.tkk7.com/coacoa2008/comments/148530.htmlhttp://www.tkk7.com/coacoa2008/archive/2007/09/27/148530.html#Feedback0http://www.tkk7.com/coacoa2008/comments/commentRss/148530.htmlhttp://www.tkk7.com/coacoa2008/services/trackbacks/148530.html阅读全文

Welcome 2007-09-27 10:13 发表评论
]]>
CSS基本布局16?/title><link>http://www.tkk7.com/coacoa2008/articles/145051.html</link><dc:creator>Welcome</dc:creator><author>Welcome</author><pubDate>Fri, 14 Sep 2007 01:50:00 GMT</pubDate><guid>http://www.tkk7.com/coacoa2008/articles/145051.html</guid><wfw:comment>http://www.tkk7.com/coacoa2008/comments/145051.html</wfw:comment><comments>http://www.tkk7.com/coacoa2008/articles/145051.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/coacoa2008/comments/commentRss/145051.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/coacoa2008/services/trackbacks/145051.html</trackback:ping><description><![CDATA[ <div class="umo468o" id="ctitle">CSS基本布局16?/div> <div class="8s84k4y" id="author">作者:Owen Briggs 2004-6-25 13:44:32</div> <p>以下布局资料原作者:<a target="new">Owen Briggs</a></p> <h4>单行单列</h4> <ul> <li> <a title="链接到单行单? target="new" rel="next"> <img height="50" alt="单行单列" src="http://www.w3cn.org/article/layout/2004/csslayout/images/1box.gif" width="50" /> 单行单列1</a>Q采用float在左上角,固定宽度? </li> <li> <a title="链接到单行单? target="new" rel="next"> <img height="50" alt="单行单列" src="http://www.w3cn.org/article/layout/2004/csslayout/images/1box.gif" width="50" /> 单行单列2</a>Q固定在左上角,固定宽度Q采用的是绝?absolute)定位? </li> <li> <a title="链接到单行单? target="new" rel="next"> <img height="50" alt="单行单列" src="http://www.w3cn.org/article/layout/2004/csslayout/images/1box.gif" width="50" /> 单行单列3</a>Q固定在左上角,不固定宽度,采用癑ֈ?%)定义宽度来自适应面? </li> <li> <a title="链接到单行单? target="new" rel="next"> <img height="50" alt="单行单列" src="http://www.w3cn.org/article/layout/2004/csslayout/images/1box_centered.gif" width="50" /> 单行单列4</a>(推荐)Q固定宽度,采用在body样式中定义居中属?text-align: center;)实现适应面自动居中?</li> </ul> <h4>单行两列</h4> <ul> <li> <a title="链接到单行两? target="new" rel="next"> <img height="50" alt="单行两列" src="http://www.w3cn.org/article/layout/2004/csslayout/images/2box.gif" width="50" /> 单行两列1</a>Q两列都固定宽度。第一列Q在左上角Q第二列在W一列右辏V? </li> <li> <a title="链接到单行两? target="new" rel="next"> <img height="50" alt="单行两列" src="http://www.w3cn.org/article/layout/2004/csslayout/images/2box.gif" width="50" /> 单行两列2</a>Q两列都癑ֈ比宽度,但不满屏。第一列固定在左上角,W二列Q在第一列右辏V? </li> <li> <a title="链接到单行两? target="new" rel="next"> <img height="50" alt="单行两列" src="http://www.w3cn.org/article/layout/2004/csslayout/images/2box_split.gif" width="50" /> 单行两列3</a>Q两列都癑ֈ比宽度,满屏。两列都采用l对定位? </li> <li> <a title="链接到单行两? target="new" rel="next"> <img height="50" alt="单行两列" src="http://www.w3cn.org/article/layout/2004/csslayout/images/2box_split.gif" width="50" /> 单行两列4</a>Q两列都癑ֈ比宽度,满屏。第一列Q在左上角Q第二列在右上角? </li> <li> <a title="链接到单行两? target="new" rel="next"> <img height="50" alt="单行两列" src="http://www.w3cn.org/article/layout/2004/csslayout/images/2box_split.gif" width="50" /> 单行两列5</a>Q两列都癑ֈ比宽度,满屏。第一列Q在左上角Q第二列在W一列右辏V?</li> </ul> <h4>单行三列</h4> <ul> <li> <a title="链接到单行三? target="new" rel="next"> <img height="50" alt="单行三列" src="http://www.w3cn.org/article/layout/2004/csslayout/images/3column.gif" width="50" /> 单行三列1</a>Q左叛_都绝对定?叛_定位在右?。左列和叛_固定宽度Q中间列自适应面? </li> <li> <a title="链接到单行三? target="new" rel="next"> <img height="50" alt="单行三列" src="http://www.w3cn.org/article/layout/2004/csslayout/images/3column.gif" width="50" /> 单行三列2</a>Q左列定位在左上Q右列定位在右上Q中间列在左列右面。左列和叛_固定宽度Q中间列自适应面? </li> <li> <a title="链接到单行三? target="new" rel="next"> <img height="50" alt="单行三列" src="http://www.w3cn.org/article/layout/2004/csslayout/images/3column.gif" width="50" /> 单行三列3</a>Q三列都l对定位。左列和叛_固定宽度Q中间列Ҏ内容自适应? </li> <li> <a title="链接到单行三? target="new" rel="next"> <img height="50" alt="单行三列" src="http://www.w3cn.org/article/layout/2004/csslayout/images/3column.gif" width="50" /> 单行三列4</a>(推荐)Q类似样?Q只是将margin: 20px属性增加在body样式中,解决了中间列在Netscape6.0中置的问题? </li> <li> <a title="链接到单行三? target="new" rel="next"> <img height="50" alt="单行三列" src="http://www.w3cn.org/article/layout/2004/csslayout/images/3column_touche.gif" width="50" /> 单行三列5</a>Q左叛_l对定位Q中间列自适应。宽度满屏?</li> </ul> <h4>行三列</h4> <ul> <li> <a title="链接到顶行三? target="new" rel="next"> <img height="50" alt="行三列" src="http://www.w3cn.org/article/layout/2004/csslayout/images/3columnplusbox.gif" width="50" /> 行三列1</a>(推荐)Q顶行自适应面宽度。左叛_l对定位Q中间列自适应面? </li> <li> <a title="链接到顶行三? target="new" rel="next"> <img height="50" alt="行三列" src="http://www.w3cn.org/article/layout/2004/csslayout/images/3columnplusbox_toucha.gif" width="50" /> 行三列2</a>Q宽度满?</li> </ul> <p> </p> <center> <b> <font face="Arial, Helvetica, sans-serif" color="navy" size="+2">216 Web Safe Color Chart </font> </b> </center> <center> <table cellspacing="1" cellpadding="3" width="100%" align="center" border="0"> <tbody> <tr> <td bgcolor="#ffffff">#FFFFFF<br /><br />R=255 <br />G=255 <br />B=255</td> <td bgcolor="#ffffcc">#FFFFCC<br /><br />R=255<br />G=255<br />B=204</td> <td bgcolor="#ffff99">#FFFF99<br /><br />R=255<br />G=255<br />B=153</td> <td bgcolor="#ffff66">#FFFF66<br /><br />R=255<br />G=255<br />B=102</td> <td bgcolor="#ffff33">#FFFF33<br /><br />R=255<br />G=255<br />B=51</td> <td bgcolor="#ffff00">#FFFF00<br /><br />R=255<br />G=255<br />B=0</td> </tr> <tr> <td bgcolor="#ffccff">#FFCCFF<br /><br />R=255 <br />G=204 <br />B=255</td> <td bgcolor="#ffcccc">#FFCCCC<br /><br />R=255<br />G=204<br />B=204</td> <td bgcolor="#ffcc99">#FFCC99<br /><br />R=255<br />G=204<br />B=153</td> <td bgcolor="#ffcc66">#FFCC66<br /><br />R=255<br />G=204<br />B=102</td> <td bgcolor="#ffcc33">#FFCC33<br /><br />R=255<br />G=204<br />B=51</td> <td bgcolor="#ffcc00">#FFCC00<br /><br />R=255<br />G=204<br />B=0</td> </tr> <tr> <td bgcolor="#ff99ff">#FF99FF<br /><br />R=255 <br />G=153 <br />B=255</td> <td bgcolor="#ff99cc">#FF99CC<br /><br />R=255<br />G=153<br />B=204</td> <td bgcolor="#ff9999">#FF9999<br /><br />R=255<br />G=153<br />B=153</td> <td bgcolor="#ff9966">#FF9966<br /><br />R=255<br />G=153<br />B=102</td> <td bgcolor="#ff9933">#FF9933<br /><br />R=255<br />G=153<br />B=51</td> <td bgcolor="#ff9900">#FF9900<br /><br />R=255<br />G=153<br />B=0</td> </tr> <tr> <td bgcolor="#ff66ff"> <font color="white">#FF66FF<br /><br />R=255 <br />G=102 <br />B=255</font> </td> <td bgcolor="#ff66cc"> <font color="white">#FF66CC<br /><br />R=255<br />G=102<br />B=204</font> </td> <td bgcolor="#ff6699"> <font color="white">#FF6699<br /><br />R=255<br />G=102<br />B=153</font> </td> <td bgcolor="#ff6666"> <font color="white">#FF6666<br /><br />R=255<br />G=102<br />B=102</font> </td> <td bgcolor="#ff6633"> <font color="white">#FF6633<br /><br />R=255<br />G=102<br />B=51</font> </td> <td bgcolor="#ff6600"> <font color="white">#FF6600<br /><br />R=255<br />G=102<br />B=0</font> </td> </tr> <tr> <td bgcolor="#ff33ff"> <font color="white">#FF33FF<br /><br />R=255 <br />G=51 <br />B=255</font> </td> <td bgcolor="#ff33cc"> <font color="white">#FF33CC<br /><br />R=255 <br />G=51 <br />B=204</font> </td> <td bgcolor="#ff3399"> <font color="white">#FF3399<br /><br />R=255<br />G=51<br />B=153</font> </td> <td bgcolor="#ff3366"> <font color="white">#FF3366<br /><br />R=255<br />G=51<br />B=102</font> </td> <td bgcolor="#ff3333"> <font color="white">#FF3333<br /><br />R=255<br />G=51<br />B=51</font> </td> <td bgcolor="#ff3300"> <font color="white">#FF3300<br /><br />R=255<br />G=51<br />B=0</font> </td> </tr> <tr> <td bgcolor="#ff00ff"> <font color="white">#FF00FF<br /><br />R=255 <br />G=0 <br />B=255</font> </td> <td bgcolor="#ff00cc"> <font color="white">#FF00CC<br /><br />R=255 <br />G=0 <br />B=204</font> </td> <td bgcolor="#ff0099"> <font color="white">#FF0099<br /><br />R=255<br />G=0<br />B=153</font> </td> <td bgcolor="#ff0066"> <font color="white">#FF0066<br /><br />R=255<br />G=0<br />B=102</font> </td> <td bgcolor="#ff0033"> <font color="white">#FF0033<br /><br />R=255<br />G=0<br />B=51</font> </td> <td bgcolor="#ff0000"> <font color="white">#FF0000<br /><br />R=255<br />G=0<br />B=0</font> </td> </tr> <tr> <td colspan="6"> </td> </tr> <tr> <td bgcolor="#ccffff">#CCFFFF<br /><br />R=204 <br />G=255 <br />B=255</td> <td bgcolor="#ccffcc">#CCFFCC<br /><br />R=204 <br />G=255 <br />B=204</td> <td bgcolor="#ccff99">#CCFF99<br /><br />R=204 <br />G=255 <br />B=153</td> <td bgcolor="#ccff66">#CCFF66<br /><br />R=204 <br />G=255 <br />B=102</td> <td bgcolor="#ccff33">#CCFF33<br /><br />R=204 <br />G=255 <br />B=51</td> <td bgcolor="#ccff00">#CCFF00<br /><br />R=204 <br />G=255 <br />B=0</td> </tr> <tr> <td bgcolor="#ccccff">#CCCCFF<br /><br />R=204 <br />G=204 <br />B=255</td> <td bgcolor="#cccccc">#CCCCCC<br /><br />R=204 <br />G=204 <br />B=204</td> <td bgcolor="#cccc99">#CCCC99<br /><br />R=204 <br />G=204 <br />B=153</td> <td bgcolor="#cccc66">#CCCC66<br /><br />R=204 <br />G=204 <br />B=102</td> <td bgcolor="#cccc33">#CCCC33<br /><br />R=204 <br />G=204 <br />B=51</td> <td bgcolor="#cccc00">#CCCC00<br /><br />R=204<br />G=204<br />B=0</td> </tr> <tr> <td bgcolor="#cc99ff">#CC99FF<br /><br />R=204 <br />G=153 <br />B=255</td> <td bgcolor="#cc99cc">#CC99CC<br /><br />R=204 <br />G=153 <br />B=204</td> <td bgcolor="#cc9999">#CC9999<br /><br />R=204<br />G=153<br />B=153</td> <td bgcolor="#cc9966">#CC9966<br /><br />R=204<br />G=153<br />B=102</td> <td bgcolor="#cc9933">#CC9933<br /><br />R=204<br />G=153<br />B=51</td> <td bgcolor="#cc9900">#CC9900<br /><br />R=204<br />G=153<br />B=0</td> </tr> <tr> <td bgcolor="#cc66ff"> <font color="white">#CC66FF<br /><br />R=204<br />G=102<br />B=255</font> </td> <td bgcolor="#cc66cc"> <font color="white">#CC66CC<br /><br />R=204 <br />G=102 <br />B=204</font> </td> <td bgcolor="#cc6699"> <font color="white">#CC6699<br /><br />R=204 <br />G=102 <br />B=153</font> </td> <td bgcolor="#cc6666"> <font color="white">#CC6666<br /><br />R=204<br />G=102<br />B=102</font> </td> <td bgcolor="#cc6633"> <font color="white">#CC6633<br /><br />R=204<br />G=102<br />B=51</font> </td> <td bgcolor="#cc6600"> <font color="white">#CC6600<br /><br />R=204<br />G=102<br />B=0</font> </td> </tr> <tr> <td bgcolor="#cc33ff"> <font color="white">#CC33FF<br /><br />R=204<br />G=51<br />B=255</font> </td> <td bgcolor="#cc33cc"> <font color="white">#CC33CC<br /><br />R=204 <br />G=51 <br />B=204</font> </td> <td bgcolor="#cc3399"> <font color="white">#CC3399<br /><br />R=204 <br />G=51 <br />B=153</font> </td> <td bgcolor="#cc3366"> <font color="white">#CC3366<br /><br />R=204<br />G=51<br />B=102</font> </td> <td bgcolor="#cc3333"> <font color="white">#CC3333<br /><br />R=204<br />G=51<br />B=51</font> </td> <td bgcolor="#cc3300"> <font color="white">#CC3300<br /><br />R=204<br />G=51<br />B=0</font> </td> </tr> <tr> <td bgcolor="#cc00ff"> <font color="white">#CC00FF<br /><br />R=204<br />G=0<br />B=255</font> </td> <td bgcolor="#cc00cc"> <font color="white">#CC00CC<br /><br />R=204 <br />G=0 <br />B=204</font> </td> <td bgcolor="#cc0099"> <font color="white">#CC0099<br /><br />R=204 <br />G=0 <br />B=153</font> </td> <td bgcolor="#cc0066"> <font color="white">#CC0066<br /><br />R=204<br />G=0<br />B=102</font> </td> <td bgcolor="#cc0033"> <font color="white">#CC0033<br /><br />R=204<br />G=0<br />B=51</font> </td> <td bgcolor="#cc0000"> <font color="white">#CC0000<br /><br />R=204<br />G=0<br />B=0</font> </td> </tr> <tr> <td colspan="6"> </td> </tr> <tr> <td bgcolor="#99ffff">#99FFFF<br /><br />R=153 <br />G=255 <br />B=255</td> <td bgcolor="#99ffcc">#99FFCC<br /><br />R=153 <br />G=255 <br />B=204</td> <td bgcolor="#99ff99">#99FF99<br /><br />R=153 <br />G=255 <br />B=153</td> <td bgcolor="#99ff66">#99FF66<br /><br />R=153 <br />G=255 <br />B=102</td> <td bgcolor="#99ff33">#99FF33<br /><br />R=153 <br />G=255 <br />B=51</td> <td bgcolor="#99ff00">#99FF00<br /><br />R=153 <br />G=255 <br />B=0</td> </tr> <tr> <td bgcolor="#99ccff">#99CCFF<br /><br />R=153 <br />G=204 <br />B=255</td> <td bgcolor="#99cccc">#99CCCC<br /><br />R=153 <br />G=204 <br />B=204</td> <td bgcolor="#99cc99">#99CC99<br /><br />R=153 <br />G=204 <br />B=153</td> <td bgcolor="#99cc66">#99CC66<br /><br />R=153 <br />G=204 <br />B=102</td> <td bgcolor="#99cc33">#99CC33<br /><br />R=153 <br />G=204 <br />B=51</td> <td bgcolor="#99cc00">#99CC00<br /><br />R=153 <br />G=204 <br />B=0</td> </tr> <tr> <td bgcolor="#9999ff">#9999FF<br /><br />R=153 <br />G=153 <br />B=255</td> <td bgcolor="#9999cc">#9999CC<br /><br />R=153 <br />G=153 <br />B=204</td> <td bgcolor="#999999">#999999<br /><br />R=153 <br />G=153 <br />B=153</td> <td bgcolor="#999966">#999966<br /><br />R=153 <br />G=153 <br />B=102</td> <td bgcolor="#999933">#999933<br /><br />R=153 <br />G=153 <br />B=51</td> <td bgcolor="#999900">#999900<br /><br />R=153 <br />G=153 <br />B=0</td> </tr> <tr> <td bgcolor="#9966ff"> <font color="white">#9966FF<br /><br />R=153 <br />G=102 <br />B=255</font> </td> <td bgcolor="#9966cc"> <font color="white">#9966CC<br /><br />R=153 <br />G=102 <br />B=204</font> </td> <td bgcolor="#996699"> <font color="white">#996699<br /><br />R=153<br />G=102<br />B=153</font> </td> <td bgcolor="#996666"> <font color="white">#996666<br /><br />R=153<br />G=102<br />B=102</font> </td> <td bgcolor="#996633"> <font color="white">#996633<br /><br />R=153<br />G=102<br />B=51</font> </td> <td bgcolor="#996600"> <font color="white">#996600<br /><br />R=153<br />G=102<br />B=0</font> </td> </tr> <tr> <td bgcolor="#9933ff"> <font color="white">#9933FF<br /><br />R=153 <br />G=51 <br />B=255</font> </td> <td bgcolor="#9933cc"> <font color="white">#9933CC<br /><br />R=153 <br />G=51 <br />B=204</font> </td> <td bgcolor="#993399"> <font color="white">#993399<br /><br />R=153 <br />G=51 <br />B=153</font> </td> <td bgcolor="#993366"> <font color="white">#993366<br /><br />R=153<br />G=51<br />B=102</font> </td> <td bgcolor="#993333"> <font color="white">#993333<br /><br />R=153<br />G=51<br />B=51</font> </td> <td bgcolor="#993300"> <font color="white">#993300<br /><br />R=153<br />G=51<br />B=0</font> </td> </tr> <tr> <td bgcolor="#9900ff"> <font color="white">#9900FF<br /><br />R=153 <br />G=0 <br />B=255</font> </td> <td bgcolor="#9900cc"> <font color="white">#9900CC<br /><br />R=153<br />G=0<br />B=204</font> </td> <td bgcolor="#990099"> <font color="white">#990099<br /><br />R=153 <br />G=0 <br />B=153</font> </td> <td bgcolor="#990066"> <font color="white">#990066<br /><br />R=153 <br />G=0 <br />B=102</font> </td> <td bgcolor="#990033"> <font color="white">#990033<br /><br />R=153<br />G=0<br />B=51</font> </td> <td bgcolor="#990000"> <font color="white">#990000<br /><br />R=153<br />G=0<br />B=0</font> </td> </tr> <tr> <td colspan="6"> </td> </tr> <tr> <td bgcolor="#66ffff">#66FFFF<br /><br />R=102 <br />G=255 <br />B=255</td> <td bgcolor="#66ffcc">#66FFCC<br /><br />R=102 <br />G=255 <br />B=204</td> <td bgcolor="#66ff99">#66FF99<br /><br />R=102 <br />G=255 <br />B=153</td> <td bgcolor="#66ff66">#66FF66<br /><br />R=102 <br />G=255 <br />B=102</td> <td bgcolor="#66ff33">#66FF33<br /><br />R=102 <br />G=255 <br />B=51</td> <td bgcolor="#66ff00">#66FF00<br /><br />R=102 <br />G=255 <br />B=0</td> </tr> <tr> <td bgcolor="#66ccff">#66CCFF<br /><br />R=102 <br />G=204 <br />B=255</td> <td bgcolor="#66cccc">#66CCCC<br /><br />R=102 <br />G=204 <br />B=204</td> <td bgcolor="#66cc99">#66CC99<br /><br />R=102 <br />G=204 <br />B=153</td> <td bgcolor="#66cc66">#66CC66<br /><br />R=102 <br />G=204 <br />B=102</td> <td bgcolor="#66cc33">#66CC33<br /><br />R=102 <br />G=204 <br />B=51</td> <td bgcolor="#66cc00">#66CC00<br /><br />R=102 <br />G=204 <br />B=0</td> </tr> <tr> <td bgcolor="#6699ff">#6699FF<br /><br />R=102 <br />G=153 <br />B=255</td> <td bgcolor="#6699cc">#6699CC<br /><br />R=102 <br />G=153 <br />B=204</td> <td bgcolor="#669999">#669999<br /><br />R=102 <br />G=153 <br />B=153</td> <td bgcolor="#669966">#669966<br /><br />R=102 <br />G=153 <br />B=102</td> <td bgcolor="#669933">#669933<br /><br />R=102 <br />G=153 <br />B=51</td> <td bgcolor="#669900">#669900<br /><br />R=102 <br />G=153 <br />B=0</td> </tr> <tr> <td bgcolor="#6666ff"> <font color="white">#6666FF</font> <font color="white"> <br /> <br />R=102 <br />G=102 <br />B=255</font> </td> <td bgcolor="#6666cc"> <font color="white">#6666CC</font> <font color="white"> <br /> <br />R=102 <br />G=102 <br />B=204</font> </td> <td bgcolor="#666699"> <font color="white">#666699</font> <font color="white"> <br /> <br />R=102 <br />G=102 <br />B=153</font> </td> <td bgcolor="#666666"> <font color="white">#666666</font> <font color="white"> <br /> <br />R=102 <br />G=102 <br />B=102</font> </td> <td bgcolor="#666633"> <font color="white">#666633</font> <font color="white"> <br /> <br />R=102 <br />G=102 <br />B=51</font> </td> <td bgcolor="#666600"> <font color="white">#666600</font> <font color="white"> <br /> <br />R=102 <br />G=102 <br />B=0</font> </td> </tr> <tr> <td bgcolor="#6633ff"> <font color="white">#6633FF</font> <font color="white"> <br /> <br />R=102 <br />G=51 <br />B=255</font> </td> <td bgcolor="#6633cc"> <font color="white">#6633CC</font> <font color="white"> <br /> <br />R=102 <br />G=51 <br />B=204</font> </td> <td bgcolor="#663399"> <font color="white">#663399</font> <font color="white"> <br /> <br />R=102 <br />G=51 <br />B=153</font> </td> <td bgcolor="#663366"> <font color="white">#663366</font> <font color="white"> <br /> <br />R=102 <br />G=51 <br />B=102</font> </td> <td bgcolor="#663333"> <font color="white">#663333</font> <font color="white"> <br /> <br />R=102<br />G=51<br />B=51</font> </td> <td bgcolor="#663300"> <font color="white">#663300</font> <font color="white"> <br /> <br />R=102<br />G=51<br />B=0</font> </td> </tr> <tr> <td bgcolor="#6600ff"> <font color="white">#6600FF</font> <font color="white"> <br /> <br />R=102 <br />G=0 <br />B=255</font> </td> <td bgcolor="#6600cc"> <font color="white">#6600CC</font> <font color="white"> <br /> <br />R=102 <br />G=0 <br />B=204</font> </td> <td bgcolor="#660099"> <font color="white">#660099</font> <font color="white"> <br /> <br />R=102 <br />G=0 <br />B=153</font> </td> <td bgcolor="#660066"> <font color="white">#660066</font> <font color="white"> <br /> <br />R=102<br />G=0<br />B=102</font> </td> <td bgcolor="#660033"> <font color="white">#660033</font> <font color="white"> <br /> <br />R=102<br />G=0<br />B=51</font> </td> <td bgcolor="#660000"> <font color="white">#660000</font> <font color="white"> <br /> <br />R=102<br />G=0<br />B=0</font> </td> </tr> <tr> <td colspan="6"> </td> </tr> <tr> <td bgcolor="#33ffff">#33FFFF<br /><br />R=51 <br />G=255 <br />B=255</td> <td bgcolor="#33ffcc">#33FFCC<br /><br />R=51 <br />G=255 <br />B=204</td> <td bgcolor="#33ff99">#33FF99<br /><br />R=51 <br />G=255 <br />B=153</td> <td bgcolor="#33ff66">#33FF66<br /><br />R=51 <br />G=255<br />B=102</td> <td bgcolor="#33ff33">#33FF33<br /><br />R=51 <br />G=255 <br />B=51</td> <td bgcolor="#33ff00">#33FF00<br /><br />R=51 <br />G=255 <br />B=0</td> </tr> <tr> <td bgcolor="#33ccff">#33CCFF<br /><br />R=51 <br />G=204 <br />B=255</td> <td bgcolor="#33cccc">#33CCCC<br /><br />R=51 <br />G=204 <br />B=204</td> <td bgcolor="#33cc99">#33CC99<br /><br />R=51 <br />G=204 <br />B=153</td> <td bgcolor="#33cc66">#33CC66<br /><br />R=51 <br />G=204 <br />B=102</td> <td bgcolor="#33cc33">#33CC33<br /><br />R=51 <br />G=204 <br />B=51</td> <td bgcolor="#33cc00">#33CC00<br /><br />R=51 <br />G=204 <br />B=0</td> </tr> <tr> <td bgcolor="#3399ff">#3399FF<br /><br />R=51 <br />G=153 <br />B=255</td> <td bgcolor="#3399cc">#3399CC<br /><br />R=51 <br />G=153 <br />B=204</td> <td bgcolor="#339999">#339999<br /><br />R=51 <br />G=153 <br />B=153</td> <td bgcolor="#339966">#339966<br /><br />R=51 <br />G=153 <br />B=102</td> <td bgcolor="#339933">#339933<br /><br />R=51 <br />G=153 <br />B=51</td> <td bgcolor="#339900">#339900<br /><br />R=51 <br />G=153 <br />B=0</td> </tr> <tr> <td bgcolor="#3366ff"> <font color="white">#3366FF</font> <font color="white"> <br /> <br />R=51 <br />G=102 <br />B=255</font> </td> <td bgcolor="#3366cc"> <font color="white">#3366CC</font> <font color="white"> <br /> <br />R=51 <br />G=102 <br />B=204</font> </td> <td bgcolor="#336699"> <font color="white">#336699</font> <font color="white"> <br /> <br />R=51 <br />G=102 <br />B=153</font> </td> <td bgcolor="#336666"> <font color="white">#336666</font> <font color="white"> <br /> <br />R=51 <br />G=102 <br />B=102</font> </td> <td bgcolor="#336633"> <font color="white">#336633</font> <font color="white"> <br /> <br />R=51 <br />G=102 <br />B=51</font> </td> <td bgcolor="#336600"> <font color="white">#336600</font> <font color="white"> <br /> <br />R=51 <br />G=102 <br />B=0</font> </td> </tr> <tr> <td bgcolor="#3333ff"> <font color="white">#3333FF</font> <font color="white"> <br /> <br />R=51 <br />G=51 <br />B=255</font> </td> <td bgcolor="#3333cc"> <font color="white">#3333CC</font> <font color="white"> <br /> <br />R=51 <br />G=51 <br />B=204</font> </td> <td bgcolor="#333399"> <font color="white">#333399</font> <font color="white"> <br /> <br />R=51 <br />G=51 <br />B=153</font> </td> <td bgcolor="#333366"> <font color="white">#333366</font> <font color="white"> <br /> <br />R=51 <br />G=51 <br />B=102</font> </td> <td bgcolor="#333333"> <font color="white">#333333</font> <font color="white"> <br /> <br />R=51 <br />G=51 <br />B=51</font> </td> <td bgcolor="#333300"> <font color="white">#333300</font> <font color="white"> <br /> <br />R=51 <br />G=51 <br />B=0</font> </td> </tr> <tr> <td bgcolor="#3300ff"> <font color="white">#3300FF</font> <font color="white"> <br /> <br />R=51 <br />G=0 <br />B=255</font> </td> <td bgcolor="#3300cc"> <font color="white">#3300CC</font> <font color="white"> <br /> <br />R=51 <br />G=0 <br />B=204</font> </td> <td bgcolor="#330099"> <font color="white">#330099</font> <font color="white"> <br /> <br />R=51 <br />G=0 <br />B=153</font> </td> <td bgcolor="#330066"> <font color="white">#330066</font> <font color="white"> <br /> <br />R=51 <br />G=0 <br />B=102</font> </td> <td bgcolor="#330033"> <font color="white">#330033</font> <font color="white"> <br /> <br />R=51 <br />G=0 <br />B=51</font> </td> <td bgcolor="#330000"> <font color="white">#330000</font> <font color="white"> <br /> <br />R=51<br />G=0<br />B=0</font> </td> </tr> <tr> <td colspan="6"> </td> </tr> <tr> <td bgcolor="#00ffff">#00FFFF<br /><br />R=0 <br />G=255 <br />B=255</td> <td bgcolor="#00ffcc">#00FFCC<br /><br />R=0 <br />G=255 <br />B=204</td> <td bgcolor="#00ff99">#00FF99<br /><br />R=0 <br />G=255 <br />B=153</td> <td bgcolor="#00ff66">#00FF66<br /><br />R=0 <br />G=255 <br />B=102</td> <td bgcolor="#00ff33">#00FF33<br /><br />R=0 <br />G=255 <br />B=51</td> <td bgcolor="#00ff00">#00FF00<br /><br />R=0<br />G=255 <br />B=0</td> </tr> <tr> <td bgcolor="#00ccff">#00CCFF<br /><br />R=0 <br />G=204 <br />B=255</td> <td bgcolor="#00cccc">#00CCCC<br /><br />R=0 <br />G=204 <br />B=204</td> <td bgcolor="#00cc99">#00CC99<br /><br />R=0 <br />G=204 <br />B=153</td> <td bgcolor="#00cc66">#00CC66<br /><br />R=0 <br />G=204 <br />B=102</td> <td bgcolor="#00cc33">#00CC33<br /><br />R=0 <br />G=204 <br />B=51</td> <td bgcolor="#00cc00">#00CC00<br /><br />R=0 <br />G=204 <br />B=0</td> </tr> <tr> <td bgcolor="#0099ff">#0099FF<br /><br />R=0 <br />G=153 <br />B=255</td> <td bgcolor="#0099cc">#0099CC<br /><br />R=0 <br />G=153 <br />B=204</td> <td bgcolor="#009999">#009999<br /><br />R=0 <br />G=153 <br />B=153</td> <td bgcolor="#009966">#009966<br /><br />R=0 <br />G=153 <br />B=102</td> <td bgcolor="#009933">#009933<br /><br />R=0 <br />G=153 <br />B=51</td> <td bgcolor="#009900">#009900<br /><br />R=0 <br />G=153 <br />B=0</td> </tr> <tr> <td bgcolor="#0066ff"> <font color="white">#0066FF</font> <font color="white"> <br /> <br />R=0 <br />G=102 <br />B=255</font> </td> <td bgcolor="#0066cc"> <font color="white">#0066CC</font> <font color="white"> <br /> <br />R=0 <br />G=102 <br />B=204</font> </td> <td bgcolor="#006699"> <font color="white">#006699</font> <font color="white"> <br /> <br />R=0 <br />G=102 <br />B=153</font> </td> <td bgcolor="#006666"> <font color="white">#006666</font> <font color="white"> <br /> <br />R=0 <br />G=102 <br />B=102</font> </td> <td bgcolor="#006633"> <font color="white">#006633</font> <font color="white"> <br /> <br />R=0 <br />G=102 <br />B=51</font> </td> <td bgcolor="#006600"> <font color="white">#006600</font> <font color="white"> <br /> <br />R=0 <br />G=102 <br />B=0</font> </td> </tr> <tr> <td bgcolor="#0033ff"> <font color="white">#0033FF</font> <font color="white"> <br /> <br />R=0 <br />G=51 <br />B=255</font> </td> <td bgcolor="#0033cc"> <font color="white">#0033CC</font> <font color="white"> <br /> <br />R=0 <br />G=51 <br />B=204</font> </td> <td bgcolor="#003399"> <font color="white">#003399</font> <font color="white"> <br /> <br />R=0 <br />G=51 <br />B=153</font> </td> <td bgcolor="#003366"> <font color="white">#003366</font> <font color="white"> <br /> <br />R=0 <br />G=51 <br />B=102</font> </td> <td bgcolor="#003333"> <font color="white">#003333</font> <font color="white"> <br /> <br />R=0 <br />G=51 <br />B=51</font> </td> <td bgcolor="#003300"> <font color="white">#003300</font> <font color="white"> <br /> <br />R=0 <br />G=51 <br />B=0</font> </td> </tr> <tr> <td bgcolor="#0000ff"> <font color="white">#0000FF</font> <font color="white"> <br /> <br />R=0 <br />G=0 <br />B=255</font> </td> <td bgcolor="#0000cc"> <font color="white">#0000CC</font> <font color="white"> <br /> <br />R=0 <br />G=0 <br />B=204</font> </td> <td bgcolor="#000099"> <font color="white">#000099</font> <font color="white"> <br /> <br />R=0 <br />G=0 <br />B=153</font> </td> <td bgcolor="#000066"> <font color="white">#000066</font> <font color="white"> <br /> <br />R=0 <br />G=0 <br />B=102</font> </td> <td bgcolor="#000033"> <font color="white">#000033</font> <font color="white"> <br /> <br />R=0 <br />G=0 <br />B=51</font> </td> <td bgcolor="#000000"> <font color="white">#000000</font> <font color="white"> <br /> <br />R=0 <br />G=0 <br />B=0</font> </td> </tr> </tbody> </table> </center> <p align="left"> <br /> </p> <img src ="http://www.tkk7.com/coacoa2008/aggbug/145051.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/coacoa2008/" target="_blank">Welcome</a> 2007-09-14 09:50 <a href="http://www.tkk7.com/coacoa2008/articles/145051.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>表单Form实例和讲?/title><link>http://www.tkk7.com/coacoa2008/articles/144883.html</link><dc:creator>Welcome</dc:creator><author>Welcome</author><pubDate>Thu, 13 Sep 2007 07:40:00 GMT</pubDate><guid>http://www.tkk7.com/coacoa2008/articles/144883.html</guid><wfw:comment>http://www.tkk7.com/coacoa2008/comments/144883.html</wfw:comment><comments>http://www.tkk7.com/coacoa2008/articles/144883.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/coacoa2008/comments/commentRss/144883.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/coacoa2008/services/trackbacks/144883.html</trackback:ping><description><![CDATA[ <h2> <h2> <img height="20" alt="+" src="http://www.lib.tsinghua.edu.cn/chinese/INTERNET/HTML/Normal/br20t.gif" width="20" /> HTML 文gl构(Document Structures)</h2> <h3><html>...</html><br /><head>...</head><br /><body>...</body></h3> <dl> <pre><HTML> <HEAD> <title>, <base>, <link>, <isindex>, <meta> </HEAD> <BODY> HTML 文g的正文写在这?.. ... </BODY> </HTML> </pre> </dl> <p> <!--################## LANGUAGE INFO ########################--> <a name="lang"> </a> </p> <h2> <img height="20" alt="+" src="http://www.lib.tsinghua.edu.cn/chinese/INTERNET/HTML/Normal/br20t.gif" width="20" /> 语言字符?Charsets)的信?<img height="14" src="http://www.lib.tsinghua.edu.cn/chinese/INTERNET/HTML/Normal/netscape.gif" width="80" /></h2> <h3><meta http-equiv="Content-Type" content="text/html;charset=#"><br /></h3> <dl compact=""> <dt>#= </dt> <dd>us-ascii, iso-8859-1, x-mac-roman, iso-8859-2, x-mac-ce,<br />iso-2022-jp, x-sjis, x-euc-jp,<br />euc-kr, iso-2022-kr,<br />gb2312, gb_2312-80,<br />x-euc-tw, x-cns11643-1, x-cns11643-2, big5 </dd> </dl> <p>可在 HTML 文g中设|?MIME 字符集信息?br />您在览主页Ӟ最好自己在览器的选项菜单内选择相应的语a(language encoding)?br />但是如果 HTML 文g里写明了讄Q浏览器׃自动讄语言选项?br />其是主里用到?a >字符实体(entities)</a>Q则该主就应该写明字符集信息?br />否则Q您在浏览该主页Ӟ若未正确讄语言选项Q显C将可能混ؕ?/p> <pre> </pre> <p> <!--################## Background Color ########################--> <a name="bgcolor"> </a> </p> <h2> <img height="20" alt="+" src="http://www.lib.tsinghua.edu.cn/chinese/INTERNET/HTML/Normal/br20t.gif" width="20" /> 背景色彩和文字色?/h2> <h3><body bgcolor=# text=# link=# alink=# vlink=#></h3> <dl> <dd>bgcolor --- 背景色彩 </dd> <dd>text --- 非可链接文字的色? </dd> <dd>link --- 可链接文字的色彩 </dd> <dd>alink --- 正被点击的可链接文字的色? </dd> <dd>vlink --- 已经点击(讉K)q的可链接文字的色彩 <h3>#=rrggbb</h3></dd> <dd>色彩是用 16 q制?U-l-?red-green-blue, RGB) 值来表示?br />16 q制的数码有: 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f. <p></p></dd> </dl> <h3>背景图象 <body background="image-URL"><br />Non Scrolling Background <body bgproperties=FIXED> <img height="14" src="http://www.lib.tsinghua.edu.cn/chinese/INTERNET/HTML/Normal/ie.gif" width="80" /></h3> <pre> </pre> <p> <!--################## MARGIN ########################--> <a name="margin"> </a> </p> <h2> <img height="20" alt="+" src="http://www.lib.tsinghua.edu.cn/chinese/INTERNET/HTML/Normal/br20t.gif" width="20" align="top" /> 面I白(Margin) <img height="14" src="http://www.lib.tsinghua.edu.cn/chinese/INTERNET/HTML/Normal/ie.gif" width="80" /></h2> <p> <!---Margi- --> </p> <h3>面左边的空?<body leftmargin=#><br />面上方的空?天头) <body topmargin=#> #=margin amount</h3> <pre> </pre> <p> <!--################## Link ########################--> <a name="link"> </a> </p> <h2> <img height="20" alt="+" src="http://www.lib.tsinghua.edu.cn/chinese/INTERNET/HTML/Normal/br20t.gif" width="20" align="top" /> 链接(Link)</h2> <p> <!---link basi- --> </p> <h3>基本语法 <a href="URL"> ... </a></h3> <dl> <dd> <tt>q是一?br /><a href="samp/link.html">链接的例?lt;/a>?<br />点一下带下划U的文字!</tt> <br /> </dd> </dl> <p>q是一?a >链接的例?/a>?点一下带下划U的文字!</p> <p> </p> <pre> </pre> <p> <!---link nam- --> </p> <h3>跌{到页面的另外一个地?br /><a href="#name"> ... </a><br /><a name="name"> ... </a> </h3> <dl> <dd> <tt><a href="#jump-test">跌{C一?链接?</a><P><br /><a name="jump-test">下一个链接点</a> </tt> </dd> </dl> <p> <a >跌{C一?链接?</a> </p> <p> <a name="jump-test"> </a>下一个链接点</p> <pre> </pre> <p> <!---link name - --> <a name="jump2"> </a> </p> <h3>跌{到另一个页面的某个地方<br /><a href="URL#name"> ... </a><br /><a name="name"> ... </a> </h3> <dl> <dd> <tt>跌{到另一个页面的<a href="samp/link.html#jump-test">某个地方</a>?br /></tt> </dd> </dl> <p>跌{到另一个页面的<a >某个地方</a>?/p> <pre> </pre> <p> <!--################## Target WINDOWS ########################--> <a name="window"> </a> </p> <h2> <img height="20" alt="+" src="http://www.lib.tsinghua.edu.cn/chinese/INTERNET/HTML/Normal/br20t.gif" width="20" align="top" /> 开一个新?览?H口 (Target Window) </h2> <p> <!---Target Window- --> </p> <h3><a href="URL" target="Window_Name"> ... </a></h3> <dl> <dd> <tt><a href="samp/window.html" target="window_name"><br />开一个新H口!<br /></a> </tt> </dd> </dl> <p> <a target="window_name">开一个新H口!</a> </p> <pre> </pre> <p> <!--################## HR ########################--> <a name="hr"> </a> </p> <h2> <img height="20" alt="+" src="http://www.lib.tsinghua.edu.cn/chinese/INTERNET/HTML/Normal/br20t.gif" width="20" /> 标尺U?/h2> <h3><hr></h3> <p> <tt><hr> </tt> </p> <p> </p> <hr /> <p> </p> <pre> </pre> <h3><hr size=#></h3> <p> <tt><hr size=10> </tt> </p> <p> </p> <hr size="10" /> <p> </p> <pre> </pre> <h3><hr width=#></h3> <p> <tt><hr width=50><br /><hr width=50%> </tt> </p> <p> </p> <hr width="50" /> <hr width="50%" /> <p> </p> <pre> </pre> <h3><hr align=#> #=left, right</h3> <p> <tt><hr width=50% align=left><br /><hr width=50% align=right> </tt> </p> <p> </p> <hr align="left" width="50%" /> <hr align="right" width="50%" /> <p> </p> <pre> </pre> <h3><hr noshade></h3> <p> <tt><hr noshade> </tt> </p> <p> </p> <hr noshade="" /> <p> </p> <pre> </pre> <h3><hr color=#> <img height="14" src="http://www.lib.tsinghua.edu.cn/chinese/INTERNET/HTML/Normal/ie.gif" width="80" /></h3> </h2> <h2>========</h2> <h2> <img height="20" alt="+" src="http://www.lib.tsinghua.edu.cn/chinese/INTERNET/HTML/Normal/br20t.gif" width="20" align="top" /> 基本语法</h2> <p> <!---Form Basi- --> </p> <h3>表单的基本语?/h3> <dl> <h3> <tt><form action="url" method=*><br />... <br />... <br /><input type=submit> <input type=reset><br /></form> </tt> </h3> <p> <tt>*=GET, POST </tt> </p> </dl> <pre> </pre> <p> <!---Input Basi- --> </p> <h3>表单中提供给用户的输入Ş?/h3> <dl> <h3> <tt><input type=* name=**></tt> </h3> <p> <tt>*=text, password, checkbox, radio, image, hidden, submit, reset</tt> </p> <p> <tt>**=Symbolic Name for CGI script </tt> </p> </dl> <pre> </pre> <p> <!--################## Text & Passwd ########################--> <a name="text"> </a> </p> <h2> <img height="20" alt="+" src="http://www.lib.tsinghua.edu.cn/chinese/INTERNET/HTML/Normal/br20t.gif" width="20" align="top" /> 文字输入和密码输?/h2> <p> <!---Text & Passwor- --> <tt>*=text, password</tt> </p> <h3><input type=*><br /><input type=* value=**></h3> <pre><form action=/cgi-bin/post-query method=POST> 您的姓名: <input type=text name=姓名><br> 您的主页的网址: <input type=text name=|址 value=http://><br> 密码: <input type=password name=密码><br> <input type=submit value="发?><input type=reset value="重设"> </form> </pre> <p> </p> <form action="/cgi-bin/post-query" method="post">您的姓名: <input name="姓名" /><br />您的主页的网址: <input value="http://" name="|址" /><br />密码: <input type="password" name="密码" /><br /><input type="submit" value="发? /><input type="reset" value="重设" /></form> <pre> </pre> <p> <!---Text & Password- Size, Max- --> </p> <h3><input type=* size=**><br /><input type=* maxlength=**></h3> <pre><form action=/cgi-bin/post-query method=POST> <input type=text name=a01 size=40><br> <input type=text name=a02 maxlength=5><br> <input type=submit><input type=reset> </form> </pre> <p> </p> <form action="/cgi-bin/post-query" method="post"> <input size="40" name="a01" /> <br /> <input maxlength="5" name="a02" /> <br /> <input type="submit" value="提交查询内容" /> <input type="reset" value="重置" /> </form> <pre> </pre> <p> <!--################## Checkbox & Radio ########################--> <a name="check"> </a> </p> <h2> <img height="20" alt="+" src="http://www.lib.tsinghua.edu.cn/chinese/INTERNET/HTML/Normal/br20t.gif" width="20" align="top" /> 复选框(Checkbox) ?单选框(RadioButton) </h2> <p> <!---Checkbo- --> </p> <h3><input type=checkbox><br /><input type=checkbox checked><br /><input type=checkbox value=**></h3> <pre><form action=/cgi-bin/post-query method=POST> <input type=checkbox name=水果1> Banana<p> <input type=checkbox name=水果2 checked> Apple<p> <input type=checkbox name=水果3 value=子> Orange<p> <input type=submit><input type=reset> </form> </pre> <p> </p> <form action="/cgi-bin/post-query" method="post"> <input type="checkbox" name="水果1" />Banana <p><input type="checkbox" checked="" name="水果2" />Apple</p><p><input type="checkbox" value="子" name="水果3" />Orange</p><p><input type="submit" value="提交查询内容" /><input type="reset" value="重置" /></p></form> <pre> </pre> <p> <!---Checkbo- --> </p> <h3><input type=radio value=**><br /><input type=radio value=** checked></h3> <pre><form action=/cgi-bin/post-query method=POST> <input type=radio name=水果> Banana<p> <input type=radio name=水果 checked> Apple<p> <input type=radio name=水果 value=子> Orange<p> <input type=submit><input type=reset> </form> </pre> <p> </p> <form action="/cgi-bin/post-query" method="post"> <input type="radio" name="水果" />Banana <p><input type="radio" checked="" name="水果" />Apple</p><p><input type="radio" value="子" name="水果" />Orange</p><p><input type="submit" value="提交查询内容" /><input type="reset" value="重置" /></p></form> <pre> </pre> <p> <!--################## Image ########################--> <a name="image"> </a> </p> <h2> <img height="20" alt="+" src="http://www.lib.tsinghua.edu.cn/chinese/INTERNET/HTML/Normal/br20t.gif" width="20" align="top" /> 图象坐标 </h2> <p> <b>在下面选则一个系数后Q在图象上点一下,q道什么是图象坐标了!</b> </p> <h3><input type=image src=url></h3> <pre><form action=/cgi-bin/post-query method=POST> <input type=image name=face src=f.gif><p> <input type=radio name=zoom value=2 checked>x2 <input type=radio name=zoom value=4>x4 <input type=radio name=zoom value=6>x6<p> <input type=reset> </form> </pre> <p> </p> <form action="/cgi-bin/post-query" method="post"> <input type="image" src="http://www.lib.tsinghua.edu.cn/chinese/INTERNET/HTML/Normal/f.gif" name="face" /> <p> <input type="radio" checked="" value="2" name="zoom" />x2 <input type="radio" value="4" name="zoom" />x4 <input type="radio" value="6" name="zoom" />x6</p> <p> <input type="reset" value="重置" /> </p> </form> <pre> </pre> <p> <!--################## Hidden ########################--> <a name="hide"> </a> </p> <h2> <img height="20" alt="+" src="http://www.lib.tsinghua.edu.cn/chinese/INTERNET/HTML/Normal/br20t.gif" width="20" align="top" /> 隐藏表单的元?</h2> <h3><input type=hidden value=*></h3> <pre><form action=/cgi-bin/post-query method=POST> <input type=hidden name=add value=hoge@hoge.jp> Here is a hidden element. <p> <input type=submit><input type=reset> </form> </pre> <p> </p> <form action="/cgi-bin/post-query" method="post"> <input type="hidden" value="hoge@hoge.jp" name="add" />Here is a hidden element. <p><input type="submit" value="提交查询内容" /><input type="reset" value="重置" /></p></form> <pre> </pre> <p> <!--################## Select ########################--> <a name="select"> </a> </p> <h2> <img height="20" alt="+" src="http://www.lib.tsinghua.edu.cn/chinese/INTERNET/HTML/Normal/br20t.gif" width="20" align="top" /> 列表?Selectable Menu) </h2> <p> <!---Basi- --> </p> <h3>基本语法</h3> <dl> <h3><select name=*><br /><option> ...<br /></select> </h3> </dl> <p> <!---select & optio- --> </p> <h3><option selected><br /><option value=**></h3> <pre><form action=/cgi-bin/post-query method=POST> <select name=fruits> <option>Banana <option selected>Apple <option value=My_Favorite>Orange </select><p> <input type=submit><input type=reset> </form> </pre> <p> </p> <form action="/cgi-bin/post-query" method="post"> <select name="fruits"> <option>Banana</option> <option selected="">Apple</option> <option value="My_Favorite">Orange</option> </select> <p> <input type="submit" value="提交查询内容" /> <input type="reset" value="重置" /> </p> </form> <pre> </pre> <p> <!---size & multipl- --> </p> <h3><select size=**></h3> <pre><form action=/cgi-bin/post-query method=POST> <select name=fruits size=3> <option>Banana <option selected>Apple <option value=My_Favorite>Orange <option>Peach </select><p> <input type=submit><input type=reset> </form> </pre> <p> </p> <form action="/cgi-bin/post-query" method="post"> <select size="3" name="fruits"> <option>Banana</option> <option selected="">Apple</option> <option value="My_Favorite">Orange</option> <option>Peach</option> </select> <p> <input type="submit" value="提交查询内容" /> <input type="reset" value="重置" /> </p> </form> <pre> </pre> <p> <!---multipl- --> </p> <h3><select size=** multiple></h3> <b>注意Q是?Ctrl 键配合鼠标实现多选?br />(?MS-WINDOWS ?File Manager 一?</b> <pre><form action=/cgi-bin/post-query method=POST> <select name=fruits size=3 multiple> <option selected>Banana <option selected>Apple <option value=My_Favorite>Orange <option selected>Peach </select><p> <input type=submit><input type=reset> </form> </pre> <p> </p> <form action="/cgi-bin/post-query" method="post"> <select multiple="" size="3" name="fruits"> <option selected="">Banana</option> <option selected="">Apple</option> <option value="My_Favorite">Orange</option> <option selected="">Peach</option> </select> <p> <input type="submit" value="提交查询内容" /> <input type="reset" value="重置" /> </p> </form> <pre> </pre> <p> <!--################## Textarea ########################--> <a name="textarea"> </a> </p> <h2> <img height="20" alt="+" src="http://www.lib.tsinghua.edu.cn/chinese/INTERNET/HTML/Normal/br20t.gif" width="20" align="top" /> 文本区域</h2> <h3><textarea name=* rows=** cols=**> ... <textarea></h3> <pre><form action=/cgi-bin/post-query method=POST> <textarea name=comment rows=5 cols=60> </textarea> <P> <input type=submit><input type=reset> </form> </pre> <p> </p> <form action="/cgi-bin/post-query" method="post"> <textarea name="comment" rows="5" cols="60"> </textarea> <p> <input type="submit" value="提交查询内容" /> <input type="reset" value="重置" /> </p> </form> <pre> </pre> <p> <!---Word Wrapping Of- --> <a name="wrap"> </a> </p> <h3>对于很长的行是否q行换行的设|?Word Wrapping) <img height="14" src="http://www.lib.tsinghua.edu.cn/chinese/INTERNET/HTML/Normal/netscape.gif" width="80" /></h3> <h3><textarea wrap=off> ... </textarea></h3> <dl> <dd>不换行,是缺省设|?</dd> </dl> <p> <!---Word Wrapping Sof- --> </p> <h3><textarea wrap=soft> ... </textarea></h3>“Y换行”,好象 MSQWORD 里的“Y回R”? <dl><dd><tt><form action=/cgi-bin/post-query method=POST><br /><textarea wrap=soft name=comment rows=5 cols=25> </textarea><P><br /><input type=submit><input type=reset><br /></form></tt><br /></dd></dl><p></p><form action="/cgi-bin/post-query" method="post"><textarea name="comment" rows="5" cols="25"></textarea><p><input type="submit" value="提交查询内容" /><input type="reset" value="重置" /></p></form><p><!---Word Wrapping Har- --></p><h3><textarea wrap=hard> ... </textarea></h3>“硬换行”,好象 MSQWORD 里的“硬回R”? <dl><dd><tt><form action=/cgi-bin/post-query method=POST><br /><textarea wrap=hard name=comment rows=5 cols=25> </textarea><P><br /><input type=submit><input type=reset><br /></form></tt><br /></dd></dl><p></p><form action="/cgi-bin/post-query" method="post"><textarea name="comment" rows="5" wrap="hard" cols="25"></textarea><p><input type="submit" value="提交查询内容" /><input type="reset" value="重置" /></p></form><img src ="http://www.tkk7.com/coacoa2008/aggbug/144883.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/coacoa2008/" target="_blank">Welcome</a> 2007-09-13 15:40 <a href="http://www.tkk7.com/coacoa2008/articles/144883.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用户CLED操作http://www.tkk7.com/coacoa2008/articles/144775.htmlWelcomeWelcomeThu, 13 Sep 2007 03:14:00 GMThttp://www.tkk7.com/coacoa2008/articles/144775.htmlhttp://www.tkk7.com/coacoa2008/comments/144775.htmlhttp://www.tkk7.com/coacoa2008/articles/144775.html#Feedback0http://www.tkk7.com/coacoa2008/comments/commentRss/144775.htmlhttp://www.tkk7.com/coacoa2008/services/trackbacks/144775.html(1)createUser!input.jsp

<FORM id="form1" METHOD=POST ACTION="createUserAction.jsp" onSubmit="return check();">
 <TABLE  class="inputTable">
  <TR><Th>用户?lt;/Th><TD><INPUT TYPE="text" NAME="username" id="username"><span class="require">(*)</span></TD></TR>
  <TR><Th>密码</Th><TD><INPUT TYPE="password" NAME="password" id="password"><span class="require">(*)</span></TD></TR>
  <TR><Th>重输密码</Th><TD><INPUT TYPE="password" NAME="repwd" id="repwd"><span class="require">(*)</span></TD></TR>
  <TR><Th>&nbsp;</Th><TD><INPUT TYPE="submit" value="创徏新用?></TD></TR>
 </TABLE>
</FORM>

(2)

createUserAction.jsp

<sql:query var="rs" dataSource="${dataSource}" >
 select * from tb_user where username=?
 <sql:param value="${param['username']}"/>
</sql:query>

<c:choose>
<c:when test="${rs.rowCount==0}">
 <sql:update var="rs" dataSource="${dataSource}" >
  insert into tb_user(username,password) values(?,?)
  <sql:param value="${param['username']}"/>
  <sql:param value="${param['password']}"/>
 </sql:update>
 
 <c:redirect url="listUser.jsp"/>
</c:when>

<c:otherwise>
 <SCRIPT LANGUAGE="JavaScript">
 <!--
  alert("该用户名已存?);
  history.go(-1);
 //-->
 </SCRIPT>
</c:otherwise>
</c:choose>


(3)

editUser!input.jsp

<sql:query var="rs" dataSource="${dataSource}" >
   select * from tb_user where id = ?
   <sql:param value="${param['id']}"/>
  </sql:query>

  <c:set var="user" value="${rs.rows[0]}"/>

  <FORM METHOD=POST ACTION="editUserAction.jsp" onSubmit="return check();">
  <INPUT TYPE="hidden" NAME="id" value="${user.id}">
   <TABLE class="inputTable">
    <TR><Th>用户?lt;/Th>
    <TD><INPUT TYPE="text" NAME="username" id="username" value="${user.username}"><span class="require"> (*必填)</span></TD></TR>
    <TR><Th>旧密?lt;/Th><TD><INPUT TYPE="password" NAME="oldPassword"  id="oldPassword" ><span class="require"> (*必填)</span></TD></TR>
    <TR><Th>新密?lt;/Th><TD><INPUT TYPE="password" NAME="password"  id="password"><span class="require"> (*必填)</span></TD></TR>
    <TR><Th>重输新密?lt;/Th><TD><INPUT TYPE="password" NAME="repwd" id="repwd"><span class="require"> (*两次密码必须相同)</span></font></TD></TR>
    <TR><Th>&nbsp;&nbsp;&nbsp;&nbsp;</Th><TD><INPUT TYPE="submit" value="~辑"></TD></TR>
   </TABLE>
  </FORM>

(4)

editUserAction.jsp

<sql:query var="rs" dataSource="${dataSource}" >
 select password from tb_user where id = ?
 <sql:param value="${param['id']}"/>
</sql:query>

<c:choose>
<c:when test="${rs.rows[0].password!=param['oldPassword']}">
 <SCRIPT LANGUAGE="JavaScript">
 <!--
  alert("旧密码错?");
  history.go(-1);
 //-->
 </SCRIPT>
</c:when>

<c:otherwise>
 <sql:query var="rs" dataSource="${dataSource}" >
  select * from tb_user where id <> ? and username = ?             ??  <>  不等?br />  <sql:param value="${param['id']}"/>
  <sql:param value="${param['username']}"/>
 </sql:query>
 
 <c:choose>
 <c:when test="${rs.rowCount==0}">
  <sql:update var="rs" dataSource="${dataSource}" >
   update tb_user set username = ?,password = ? where id = ?
   <sql:param value="${param['username']}"/>
   <sql:param value="${param['password']}"/>
   <sql:param value="${param['id']}"/>
  </sql:update>
  
  <c:redirect url="listUser.jsp"/>
 </c:when>
 
 <c:otherwise>
  <SCRIPT LANGUAGE="JavaScript">
  <!--
   alert("该用户名已存?);
   history.go(-1);
  //-->
  </SCRIPT>
 </c:otherwise>
 </c:choose>

</c:otherwise>
</c:choose>

(5)
deleteUserAction.jsp

<sql:update var="rs" dataSource="${dataSource}" >
  delete from tb_user  where id = ?
  <sql:param value="${param['id']}"/>
</sql:update>
 
<c:redirect url="listUser.jsp"/>



Welcome 2007-09-13 11:14 发表评论
]]>
sql 兌操作ȝ vote.jsp 投票pȝȝhttp://www.tkk7.com/coacoa2008/articles/144594.htmlWelcomeWelcomeWed, 12 Sep 2007 11:49:00 GMThttp://www.tkk7.com/coacoa2008/articles/144594.htmlhttp://www.tkk7.com/coacoa2008/comments/144594.htmlhttp://www.tkk7.com/coacoa2008/articles/144594.html#Feedback0http://www.tkk7.com/coacoa2008/comments/commentRss/144594.htmlhttp://www.tkk7.com/coacoa2008/services/trackbacks/144594.html(1)_
vote.jsp

<SCRIPT LANGUAGE="JavaScript"><!--
 function poll(){
  return document.getElementById('poll').submit();
 }
//-->
</SCRIPT>
<sql:query var="rs" dataSource="${dataSource}" maxRows="1">
  select * from tb_vote order by createdDate desc
</sql:query>

<c:set var="vote" value="${rs.rows[0]}"/>
<sql:query var="rs" dataSource="${dataSource}">
  select * from tb_voteitem where vote_id = ?
  <sql:param value="${vote.id}"/>
</sql:query>
<center>${vote.subject}</center>

<FORM id="poll" action="poll.jsp" METHOD="post" target="_blank">
 <input type="hidden" name="vote.id" value="${vote.id}"/>

 <c:forEach var="voteitem" items="${rs.rows}">
 <INPUT TYPE="radio" NAME="voteitem.id" VALUE="${voteitem.id}">${voteitem.title}<BR>
 </c:forEach>
 <INPUT TYPE="button" onClick="return poll();" VALUE="提交" style=" float:RIGHT">
</FORM>

(2)

poll.jsp

<SCRIPT LANGUAGE="JavaScript">
<!--
 function init(){
  window.resizeTo(400, 400);
  alert("感谢您的支持");
 }
//-->
</SCRIPT>

<sql:update var="vote" dataSource="${dataSource}" >
  update tb_voteitem set count = count + 1  where id = ?
  <sql:param value="${param['voteitem.id']}"/>
</sql:update>
<sql:update var="vote" dataSource="${dataSource}" >
  update tb_vote set count = count + 1  where id = ?
  <sql:param value="${param['vote.id']}"/>
</sql:update>

<sql:query var="rs" dataSource="${dataSource}" maxRows="1">
  select * from tb_vote order by createdDate desc
</sql:query>

<c:set var="vote" value="${rs.rows[0]}"/>
<sql:query var="rs" dataSource="${dataSource}">
  select * from tb_voteitem where vote_id = ?
  <sql:param value="${vote.id}"/>
</sql:query>
<body onLoad="init();">
${vote.subject} ?{vote.count}?br /><FORM ACTION="vote_compute.jsp" METHOD="post">
<table>
<c:forEach var="voteitem" items="${rs.rows}">
<tr>
<th>${voteitem.title}</th>
<td><img src="res/poll_bg.gif" height="20px" width="${voteitem.count/vote.count*200}"></td>
<td>${voteitem.count}</td>
</tr>
</c:forEach>
</table>
</body>

(3)
createVote!input.jsp

<FORM METHOD=POST ACTION="createVoteAction.jsp" onSubmit="return check();">
 <TABLE class="inputTable">
  <TR><Th>主题</Th><TD><INPUT TYPE="text" NAME="subject" size="60"></TD></TR>
  <TR><Th>开始日?lt;/Th><TD><INPUT TYPE="text" NAME="createdDate"></TD></TR>
  <TR><Th>&nbsp;</Th><TD><INPUT TYPE="submit" value="??></TD></TR>
 </TABLE>
</FORM>


(4)
createVoteAction.jsp

<sql:update var="rs" dataSource="${dataSource}" >
  insert into tb_vote(subject,count,createdDate) values(?,?,?)
  <sql:param value="${param['subject']}"/>
  <sql:param value="0"/>
  <sql:param value="<%=new java.util.Date()%>"/>
</sql:update>
 
<c:redirect url="listVote.jsp"/>

(5)

editVote!input.jsp

<sql:query var="rs" dataSource="${dataSource}" >
 select * from tb_vote where id = ?
 <sql:param value="${param['id']}"/>
</sql:query>
<c:set var="vote" value="${rs.rows[0]}"/>
<FORM METHOD=POST ACTION="editVoteAction.jsp" >
 <INPUT TYPE="hidden" NAME="id" value="${vote.id}">
 <TABLE class="inputTable">
  <TR><Th>标题</Th><TD><INPUT TYPE="text" NAME="subject" value="${vote.subject}"  size="60" ></TD></TR>
  <TR><Th>ȝ?lt;/Th><TD>
  <INPUT TYPE="text" NAME="count" value="${vote.count}")"></TD></TR>
  <TR><Th>开始日?lt;/Th><TD><INPUT TYPE="text" NAME="time" value="${vote.createdDate}"></TD></TR>
  
  <TR><Th></Th><TD><INPUT TYPE="submit" value="提交">&nbsp;<INPUT Type="reset" value="重置"></TD></TR>
 </TABLE>
</FORM>


(6)
editVoteAction.jsp

<sql:update var="vote" dataSource="${dataSource}" >
  update tb_vote set subject = ?,count = ?,createdDate=?  where id = ?
  <sql:param value="${param['subject']}"/>
  <sql:param value="${param['count']}"/>
  <sql:param value="${param['id']}"/>

  <c:choose>
     <c:when test="${empty(param['createdDate'])}">
      <sql:param value="<%=new java.sql.Timestamp(System.currentTimeMillis())%>" />
     </c:when>
     <c:otherwise>
      <sql:param value="${param['createdDate']}" />
     </c:otherwise>
     </c:choose>
  
 </sql:update>
 <c:redirect url="listVote.jsp"/>

(7)

deleteVote.sjp

<sql:update var="rs" dataSource="${dataSource}" >
  delete from tb_vote  where id = ?
  <sql:param value="${param['id']}"/>
</sql:update>
<c:redirect url="listVote.jsp"/>


<!#$#$!$#$!#$#$#^%^%^%^*&^*&*&*()(*)()_)+_%&$>
(8)_
CreateVoteItem.jsp
<FORM METHOD=POST ACTION="createVoteItemAction.jsp" onSubmit="return check();">
  <TABLE class="inputTable">
     <INPUT TYPE="hidden" NAME="vote.id" value="${param['vote.id']}"></TD></TR>
   <TR><Th>选项</Th><TD><INPUT TYPE="text" NAME="title"></TD></TR>
   <TR><Th>记票</Th><TD><INPUT TYPE="text" NAME="count"></TD></TR>
   <TR><Th>&nbsp;</Th><TD><INPUT TYPE="submit" value="??></TD></TR>
  </TABLE>
 </FORM>


(9)

createVoteItemAction.jsp

<sql:update var="rs" dataSource="${dataSource}" >
  insert into tb_voteitem(vote_id,title,count) values(?,?,?)     <!--
                                                                                                                 tb_voteItem .   vote_id= tb_vote.id    >U联
  <sql:param value="${param['vote.id']}"/>
  <sql:param value="${param['title']}"/>
  <sql:param value="0"/>
</sql:update>

(10)

listVoteItem.jsp

<a href="createVoteItem!input.jsp?vote.id=${param['vote.id']}">d</a>
 <sql:query var="rs" dataSource="${dataSource}" >
  select * from tb_voteitem where vote_id = ?
  <sql:param value="${param['vote.id']}"/>
 </sql:query>
 <div>
 <form action="listVoteItem.jsp" method="POST">
 <table class="listTable">
 <tr>
 <th width="50%">标题</th>
 <th width="10%">数</th>
 <th width="3%">&nbsp;</th>
 <th width="3%">&nbsp;</th>
 </tr>
 
 <c:forEach var="voteitem" items="${rs.rows}">
  <tr>
  <td>${voteitem.title}</td>
  <td>${voteitem.count}</td>
  <td><a href="editVoteItem!input.jsp?id=${voteitem.id}" title="~辑该记?>~辑</a></td>
  <td><a href="javascript:if(confirm('您确认删除吗Q?)){document.location.href='deleteVoteItemAction.jsp?id=${voteitem.id}&vote.id=${voteitem.vote_id}'};">删除</a></td>
  </tr>
 </c:forEach>
 </table>
</form>

(10)
editVoteItem!input.jsp

<sql:query var="rs" dataSource="${dataSource}" >
 select * from tb_voteitem where id = ?
 <sql:param value="${param['id']}"/>
</sql:query>
<c:set var="voteitem" value="${rs.rows[0]}"/>
<FORM METHOD=POST ACTION="editVoteItemAction.jsp" >
 <INPUT TYPE="hidden" NAME="id" value="${voteitem.id}">
 <TABLE class="inputTable">
  <INPUT TYPE="hidden" NAME="vote.id" value="${voteitem.vote_id}")">
  <TR><Th>title</Th><TD><INPUT TYPE="text" NAME="title" value="${voteitem.title}")"></TD></TR>
  <TR><Th>count</Th><TD>
  <INPUT TYPE="text" NAME="count" value="${voteitem.count}")"></TD></TR>
  
  <TR><Th></Th><TD><INPUT TYPE="submit" value="提交">&nbsp;<INPUT Type="reset" value="重置"></TD></TR>
 </TABLE>
</FORM>

(11)

editVoteItemAction.jsp


<sql:update var="rs" dataSource="${dataSource}" >
  update tb_voteItem set title = ? count=? where id = ?
 <sql:param value="${param['title']}"/>
 <sql:param value="${param['count']}"/>
 <sql:param value="${param['id']}"/>
</sql:update>
 
<c:redirect url="listVoteItem.jsp?vote.id=${param['vote.id ']}"/>


(11)mysql 导出数据 http://fanqiang.chinaunix.net/db/mysql/2001-05-27/1357.shtml

mysqldump -d -u Username -p address_ip >;c:\test.txt
我来写详l一些,q样可以只导l构Q主要是-d参数Q不会导出数据?br />
1.导出整个数据?/p>

  mysqldump -u 用户?-p 数据库名 > 导出的文件名

  mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql

  2.导出一个表

  mysqldump -u 用户?-p 数据库名 表名> 导出的文件名

  mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql

  3.导出一个数据库l构

  mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:wcnc_db.sql

  -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table

  4.导入数据?/p>

  常用source 命o

  q入mysql数据库控制台Q?/p>

  如mysql -u root -p

  mysql>use 数据?/p>

  然后使用source命oQ后面参Cؓ脚本文g(如这里用到的.sql)

  mysql>source d:wcnc_db.sql




 



Welcome 2007-09-12 19:49 发表评论
]]>
util.web.SetCharacterEncodingFilter 字符~码qo?/title><link>http://www.tkk7.com/coacoa2008/articles/144555.html</link><dc:creator>Welcome</dc:creator><author>Welcome</author><pubDate>Wed, 12 Sep 2007 09:26:00 GMT</pubDate><guid>http://www.tkk7.com/coacoa2008/articles/144555.html</guid><wfw:comment>http://www.tkk7.com/coacoa2008/comments/144555.html</wfw:comment><comments>http://www.tkk7.com/coacoa2008/articles/144555.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/coacoa2008/comments/commentRss/144555.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/coacoa2008/services/trackbacks/144555.html</trackback:ping><description><![CDATA[ <p> webxml  字符UTF-8 处理<br /><br /><filter><br />  <filter-name>Set Character Encoding</filter-name><br />  <filter-class><br />   util.web.SetCharacterEncodingFilter<br />  </filter-class><br />  <init-param><br />   <param-name>encoding</param-name><br />   <param-value>utf-8</param-value><br />  </init-param><br /> </filter></p> <p> <filter-mapping><br />  <filter-name>Set Character Encoding</filter-name><br />  <url-pattern>/*</url-pattern><br /> </filter-mapping><br /><br />SetCharacterEncodingFilter.java<br /><br />package util.web;</p> <p> <br />import java.io.BufferedWriter;<br />import java.io.FileWriter;<br />import java.io.IOException;</p> <p>import javax.servlet.Filter;<br />import javax.servlet.FilterChain;<br />import javax.servlet.FilterConfig;<br />import javax.servlet.ServletException;<br />import javax.servlet.ServletRequest;<br />import javax.servlet.ServletResponse;<br />/**<br /> * @author Dave<br /> */<br />public class SetCharacterEncodingFilter implements Filter {</p> <p>    //     ----------------------------------------------------- Instance Variables </p> <p>    /** <br />    * The default character encoding to set for requests that pass through <br />    * this filter. <br />    */<br />    protected String encoding = null;</p> <p>    /** <br />    * The filter configuration object we are associated with. If this value <br />    * is null, this filter instance is not currently configured. <br />    */<br />    protected FilterConfig filterConfig = null;</p> <p>    /** <br />    * Should a character encoding specified by the client be ignored? <br />    */<br />    protected boolean ignore = true;</p> <p>    //     --------------------------------------------------------- Public Methods </p> <p>    /** <br />    * Take this filter out of service. <br />    */<br />    public void destroy() {</p> <p>        this.encoding = null;<br />        this.filterConfig = null;</p> <p>    }</p> <p>    /** <br />    * Select and set (if specified) the character encoding to be used to <br />    * interpret request parameters for this request. <br />    * <br />    * @param request The servlet request we are processing <br />    * @param result The servlet response we are creating <br />    * @param chain The filter chain we are processing <br />    * <br />    * @exception IOException if an input/output error occurs <br />    * @exception ServletException if a servlet error occurs <br />    */<br />    public void doFilter(<br />        ServletRequest request,<br />        ServletResponse response,<br />        FilterChain chain)<br />        throws IOException, ServletException {</p> <p>        //     Conditionally select and set the character encoding to be used <br />        if (ignore || (request.getCharacterEncoding() == null)) {<br />            String encoding = selectEncoding(request);<br />            if (encoding != null) {<br />                request.setCharacterEncoding(encoding);<br />            }<br />        }<br />        <br />        //     Pass control on to the next filter <br />        chain.doFilter(request, response);<br />        BufferedWriter  bw = new BufferedWriter(new FileWriter("/temp/insertlog.log"));;<br />        //bw.<br />        //response.getOutputStream().println();</p> <p>    }</p> <p>    /** <br />    * Place this filter into service. <br />    * <br />    * @param filterConfig The filter configuration object <br />    */<br />    public void init(FilterConfig filterConfig) throws ServletException {</p> <p>        this.filterConfig = filterConfig;<br />        this.encoding = filterConfig.getInitParameter("encoding");<br />        String value = filterConfig.getInitParameter("ignore");<br />        if (value == null) {<br />            this.ignore = true;<br />        } else if (value.equalsIgnoreCase("true")) {<br />            this.ignore = true;<br />        } else if (value.equalsIgnoreCase("yes")) {<br />            this.ignore = true;<br />        } else {<br />            this.ignore = false;<br />        }</p> <p>    }</p> <p>    //     ------------------------------------------------------ Protected Methods </p> <p>    /** <br />    * Select an appropriate character encoding to be used, based on the <br />    * characteristics of the current request and/or filter initialization <br />    * parameters. If no character encoding should be set, return <br />    * <code>null</code>. <br />    * <p> <br />    * The default implementation unconditionally returns the value configured <br />    * by the <strong>encoding</strong> initialization parameter for this <br />    * filter. <br />    * <br />    * @param request The servlet request we are processing <br />    */<br />    protected String selectEncoding(ServletRequest request) {</p> <p>        return (this.encoding);</p> <p>    }</p> <p>}</p> <p> </p> <img src ="http://www.tkk7.com/coacoa2008/aggbug/144555.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/coacoa2008/" target="_blank">Welcome</a> 2007-09-12 17:26 <a href="http://www.tkk7.com/coacoa2008/articles/144555.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://xx9911.com" target="_blank">˸߹ۿƵ</a>| <a href="http://s88s88.com" target="_blank">պƵ</a>| <a href="http://bearsou.com" target="_blank">Ļ޵һ</a>| <a href="http://hkschooltv.com" target="_blank">ůůձĻ</a>| <a href="http://lyczyb.com" target="_blank">һҺ</a>| <a href="http://600c28.com" target="_blank">**ëƬֱ߲</a>| <a href="http://xxxxxxxxcccc.com" target="_blank">ѵȫһ¼</a>| <a href="http://sds54.com" target="_blank">ĻһƷ</a>| <a href="http://4husese.com" target="_blank">ҹƷ</a>| <a href="http://kencery.com" target="_blank">һ</a>| <a href="http://xww678.com" target="_blank">һvѲһ</a>| <a href="http://2xpp.com" target="_blank">޾߹ۿ</a>| <a href="http://8833655.com" target="_blank">a vרav</a>| <a href="http://bzzxyp.com" target="_blank">ƷþþþþþþӰԺ</a>| <a href="http://fphs666.com" target="_blank">˳Ƶ߲</a>| <a href="http://86trader.com" target="_blank">޳߹ۿ</a>| <a href="http://jdvgo.com" target="_blank">͵͵޸պ</a>| <a href="http://7272004.com" target="_blank">ѵƵ</a>| <a href="http://h7277.com" target="_blank">99Ƶѹۿ</a>| <a href="http://jpsp8.com" target="_blank">պƷ3</a>| <a href="http://xieehuomh.com" target="_blank">޹AV</a>| <a href="http://pjwys.com" target="_blank">ѸƵվ</a>| <a href="http://51jingpai.com" target="_blank">һ</a>| <a href="http://mangaou.com" target="_blank">һƵ</a>| <a href="http://dw168cn.com" target="_blank">޹˳߹ۿ</a>| <a href="http://wwwkk2347.com" target="_blank">޳AƬ߹ۿ벻 </a>| <a href="http://www19977.com" target="_blank">ۺƵ</a>| <a href="http://44g8.com" target="_blank">Ļۺ234</a>| <a href="http://by22877.com" target="_blank">ƷþþþóѶ</a>| <a href="http://yy6090qpgdy.com" target="_blank">ĻƬa</a>| <a href="http://199044.com" target="_blank">޾Ʒ˳</a>| <a href="http://ztxfkj.com" target="_blank">ۺʮ</a>| <a href="http://93qsgy.com" target="_blank">þ99ۺϾƷҳ </a>| <a href="http://youkabaitiao.com" target="_blank">һ</a>| <a href="http://fns92.com" target="_blank">ձĻһ </a>| <a href="http://zengzeyu.com" target="_blank">ѿŮˬ</a>| <a href="http://mabaolu.com" target="_blank">9277ֻƵۿ</a>| <a href="http://gylscm.com" target="_blank">GOGOGOѿ</a>| <a href="http://gz-shunan.com" target="_blank">ڳ˾Ʒձ</a>| <a href="http://fennenll.com" target="_blank">޹˾þ</a>| <a href="http://onisterwines.com" target="_blank">þþƷAVӰ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>