一、 JDK (Java Development Kit)

JDK 是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握 JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。
1、 JDK的下载和安装
JDK又叫做J2SE (Java2 SDK Standard Edition),可以从Sun的Java网站上下载到,http://java.sun.com/j2se/downloads.html。
下载好的JDK是一个可执行安装程序,默认安装完毕后会在C:\Program Files\Java\目录下安装一套JRE(供浏览器来使用),在C:\j2sdk1.4.2下安装一套JDK(也包括一套JRE)。然后我们需要在环境变量PATH的最前面增加java的路径C:\j2sdk1.4.2\bin。新建环境变量CLASSPATH,增加路径.;C:\j2sdk1.4.2\lib\dt.jar;C:\j2sdk1.4.2\lib\tools.jar。这样JDK就安装好了。
2、 JDK的命令工具
JDK的最重要命令行工具:
java: 启动JVM执行class
javac: Java编译器
jar: Java打包工具
javadoc: Java文档生成器
这些命令行必须要非常非常熟悉,对于每个参数都要很精通才行。对于这些命令的学习,JDK Documentation上有详细的文档。

二、 JDK Documentation

Documentation 在JDK的下载页面也有下载连接,建议同时下载Documentation。Documentation是最最重要的编程手册,涵盖了整个Java所有方面的内容的描述。可以这样说,学习Java编程,大部分时间都是花在看这个Documentation上面的。我是随身携带的,写Java代码的时候,随时查看,须臾不离手。

三、 Java应用的运行环境

Java的应用可以简单分为以下几个方面:
1、 Java的桌面应用
桌面应用一般仅仅需要JRE的支持就足够了。
2、 Java Web应用
Java的Web应用至少需要安装JDK和一个web容器(例如Tomcat),以及一个多用户数据库,Web应用至少分为三层:
Browser层:浏览器显示用户页面
Web层:运行Servlet/JSP
DB层:后端数据库,向Java程序提供数据访问服务
3、 Java企业级应用
企业级应用比较复杂,可以扩展到n层,最简单情况会分为4层:
Browser层:浏览器显示用户页面
Client层:Java客户端图形程序(或者嵌入式设备的程序)直接和Web层或者EJB层交互
Web层:运行Servlet/JSP
EJB层:运行EJB,完成业务逻辑运算
DB层:后端数据库,向Java程序提供数据访问服务
4、 Java嵌入式应用
Java嵌入式应用是一个方兴未艾的领域,从事嵌入式开发,需要从Sun下载J2ME开发包,J2ME包含了嵌入式设备专用虚拟机KVM,和普通的JDK中包含的JVM有所不同。另外还需要到特定的嵌入式厂商那里下载模拟器。

书籍篇

学习一门新的知识,不可能指望只看一本,或者两本书就能够完全掌握。需要有一个循序渐进的阅读过程。
很多人学习Java是从《Thinking in Java》这本书入手的,但是这本书是不适合初学者的。正确的使用这本书的方法应该是作为辅助的读物。《Thinking in Java》并不是在完整的介绍Java的整个体系,而是一种跳跃式的写作方法,是一种类似tips的方法来对Java很多知识点进行了深入的分析和解释。
对于初学者来说,最好是找一本Java入门的书籍,但是比较完整的循序的介绍Java的语法,面向对象的特性,核心类库等等,在看这本书的同时,可以同步来看《Thinking in Java》,来加深对Java的理解和原理的运用,同时又可以完整的了解Java的整个体系。
在所有的Java书籍当中,其实真正最最有用处是JDK的Documentation!几乎你想获得的所有的知识在Documentation 里面全部都有,其中最主要的部分当然是Java基础类库的API文档,是按照package来组织的,对于每一个class都有详细的解释,它的继承关系,是否实现了某个接口,通常用在哪些场合,还可以查到它所有的public的属性和方法,每个属性的解释,意义,每个方法的用途,调用的参数,参数的意义,返回值的类型,以及方法可能抛出的异常等等。可以这样来说,所有关于Java编程方面的书籍其实都不过是在用比较通俗易懂的语言,和良好的组织方式来介绍 Documentation里面的某个package里面包含的一些类的用法而已。所以万变不离其宗,如果你有足够的能力来直接通过 Documentation来学习Java的类库,那么基本上就不需要看其他的书籍了。除此之外,Documentation也是编程必备的手册。有了 Documentation,什么其他的书籍都不需要了。

过程篇

学习Java的第一步是安装好JDK,写一个Hello World程序。其实JDK的学习没有那么简单,关于JDK有两个问题是很容易一直困扰Java程序员的地方:一个是CLASSPATH的问题,其实从原理上来说,是要搞清楚JRE的ClassLoader是如何加载Class的;另一个问题是package和import问题,如何来寻找类的路径问题。把这两个问题摸索清楚了,就扫除了学习Java和使用JDK的最大障碍。
第二步是学习Java的语法。Java的语法是类C++的,基本上主流的编程语言不是类C,就是类C++的,没有什么新东西,所以语法的学习,大概就是半天的时间足够了。唯一需要注意的是有几个不容易搞清楚的关键字的用法,public,protected,private,static,什么时候用,为什么要用,怎么用,这可能需要有人来指点一下。《Thinking in Java》这本书上面是讲了这些概念的。
第三步是学习Java的面向对象的编程语言的特性的地方。比如继承,构造器,抽象类,接口,方法的多态,重载,覆盖,Java的异常处理机制。可以多看看《Thinking in Java》这本书,对面向对象的讲解非常透彻。
第四步就是开始熟悉Java的类库。Java的基础类库其实就是JDK安装目录下面jre\lib\rt.jar这个包。学习基础类库就是学习rt.jar。基础类库里面的类非常非常多。据说有3000多个。但是真正对于我们来说最核心的只有4个,分别是
java.lang.*;
java.io.*;
java.util.*;
java.sql.*;
这四个包的学习,每个包的学习都可以写成一本厚厚的教材。比较好的学习方法是这样的:
首先要通读整个package的框架,了解整个package的class,interface,exception的构成,最好是能够找到介绍整个包框架的文章。这些专门介绍包的书籍的前几章应该就是这些总体的框架内容介绍。
对包整体框架的把握并不是要熟悉每个类的用法,记住它有哪些属性,方法。想记也记不住的。而是要知道包有哪些方面的类构成的,这些类的用途是什么,最核心的几个类分别是完成什么功能的。你们要了解,Java给我们提供了哪些类,每个类是用在什么场合,当我遇到问题的时候,我知道哪个类,或者哪几个类的组合可以解决我的问题,That′s all!,当我们具体写程序的时候,只要你知道该用哪个类来完成你的工作就足够了。编码的时候,具体的方法调用,是边写代码,边查 Documentation,所有的东西都在Documentation里面,不要求你一定记住,实际你也记不住 3000多个类的总共将近10万个方法调用。所以对每个包的总体框架的把握就变得极为重要。
第五步,通过上面的学习,如果学的比较扎实的话,就打好了Java的基础了,剩下要做的工作是扫清Documentation里面除了上面4个包之外的其他一些比较有用处的类。相信进展到这一步,Java的自学能力已经被培养出来了,可以到了直接学习Documentation的水平了。除了要做GUI编程之外,JDK里面其他会有用处的包是这些:
java.text.*;
java.net.*;
javax.naming.*;
这些包里面真正用的比较多的类其实很少,只有几个,所以不需要花很多时间。

方法篇

Java 作为一门编程语言,最好的学习方法就是写代码。当你学习一个类以后,你就可以自己写个简单的例子程序来运行一下,看看有什么结果,然后再多调用几个类的方法,看看运行结果,这样非常直观的把类给学会了,而且记忆非常深刻。然后不应该满足把代码调通,你应该想想看如果我不这样写,换个方式,再试试行不行。记得哪个高人说过学习编程就是个破坏的过程,把书上的例子,自己学习Documentation编写的例子在运行通过以后,不断的尝试着用不同的方法实现,不断的尝试破坏代码的结构,看看它会有什么结果。通过这样的方式,你会很彻底的很精通的掌握Java。
举个例子,我们都编过Hello World程序:
public class HelloWorld {
      public static void main(String[] args) {
           System.out.println("Hello World");
       }
}
很多初学者不是很理解为什么main方法一定要这样来定义public static void main(String[] args),能不能不这样写?想知道答案吗?很简单,你把main改个名字运行一下,看看报什么错误,然后根据出错信息进行分析;把main的 public取掉,再试试看,报什么错误;static去掉还能不能运行;不知道main方法是否一定要传一个 String[]数组的,把String[]改掉,改成int[],或者String试试看;不知道是否必须写args参数名称的,也可以把args改成别的名字,看看运行结果如何。
虽然这样比较费时间,不过一个例子程序这样反复破坏几次之后。就对这个相关的知识彻底学通了。有时候甚至故意写一些错误的代码来运行,看看能否得到预期的运行错误。这样对于编程的掌握是及其深刻的。
另外,自己在学习过程中,写的很多的这种破坏例程,应该有意识的分门别类的保存下来,在工作中积累的典型例程也应该定期整理,日积月累,自己就有了一个代码库了。遇到类似的问题,到代码库里面 Copy & Paste ,Search & Replace,就好了,极大提高了开发速度。最理想的情况是把一些通用的例程自己再抽象一层,形成一个通用的类库,封装好。那么可复用性就更强了。
所以其实不是特别需要例程的,自己写的破坏例程就是最好的例子,如果你实在对自己写的代码不放心的话,强烈推荐你看看JDK基础类库的Java 源代码。在JDK安装目录下面会有一个src.zip,解开来就可以完整的看到整个JDK基础类库,也就是rt.jar的Java源代码,你可以参考一下 Sun是怎么写Java程序的,规范是什么样子的。打开相应的类的源代码,通过看源代码,所有的问题都会一扫而空。

资源篇

1、 http://java.sun.com/ ;(英文)
Sun的Java网站,是一个应该经常去看的地方。不用多说。
2、 http://www-900.ibm.com/developerWorks/cn/ ;
IBM的developerWorks网站,英语好的直接去英文主站点看。这里不但是一个极好的面向对象的分析设计网站,也是Web Services,Java,Linux极好的网站。强烈推荐!!!
3、 http://www.java-cn.com/ ;(中文)
JAVA 中文站,目前国内资料最全、会员最多的JAVA技术网站,人气极高。有《JAVA电子书库》、《JAVA视频库》(国内唯一)、《JAVA技术文摘库》、《JAVA源代码库》、《JAVA工具库》、《招聘求职广场》等主要栏目,还有一些专家栏目。目前会员有5万多,VIP会员近1000人。无论是菜鸟还是老鸟,都能在此网站中找到自己所需要的东东!! 最强烈推荐!!!!!!
4、 http://www.javaworld.com/ ;(英文)
关于Java很多新技术的讨论和新闻。想多了解Java的方方面面的应用,这里比较好。
11、 http://sourceforge.net/ ;
SourgeForge是一个开放源代码软件的大本营,其中也有非常非常丰富的Java的开放源代码的著名的软件。
第一级:神人,天资过人而又是技术狂热者同时还拥有过人的商业头脑,高瞻远瞩,技术过人,大器也。如丁磊,求伯君。  

     第二级:高人,有天赋,技术过人但没有过人的商业头脑,通常此类人不是顶尖黑客就是技术总监之流。

     第三级:牛人,技术精湛,熟悉行业知识,敢于创新,有自己的公司和软件产品。

     第四级:工头,技术精湛,有领导团队的能力,此类人大公司项目经理居多。

     第五级:技术工人,技术精湛,熟悉行业知识但领导能力欠加,此类人大多为系分人员或资深程序员,基本上桀骜不逊,自视清高,不愿于一般技术人员为伍,在论坛上基本以高手面目出现。

     第六级:熟练工人,技术有广度无深度,喜欢钻研但浅尝辄止。此类人大多为老程序员,其中一部分喜欢利用工具去查找网上有漏洞的服务器,干点坏事以获取成绩感。如果心情好,在论坛上他们会回答菜鸟的大部分问题。此级别为软件业苦力的重要组成部分。

     第七级:工人,某些技术较熟练但缺乏深度和广度,此类人大多为程序员级别,经常在论坛上提问偶尔也回答菜鸟的问题。为软件产业苦力的主要组成部分。

     第八级:菜鸟,入门时间不长,在论坛上会反复提问很初级的问题,有一种唐僧的精神。虽然招人烦但基本很可爱。只要认真钻研,一两年后就能升级到上一层。

     第九级:大忽悠,利用中国教育的弊病,顶着一顶高学历的帽子,在小公司里混个软件部经理,设计不行,代码不行,只会胡乱支配下属,拍领导马屁,在领导面前胡吹海侃,把自己打扮成技术高手的模样。把勾心斗角的办公室文化引入技术部门,实在龌龊!

     第十级:驴或傻X,会写SELECT语句就说自己精通ORALCE,连寄存器有几种都不知道就说自己懂汇编,建议全部送到日本当IT产业工人,挣了日本人的钱还严重打击日本的软件业!

     其中又以前两级和后两级最为难得,其余级别只要努力,皆有可能达到。
计算器源代码
同学们,这是我写的一个计算器的源代码,希望可以给你们以启迪。

另外,这仅仅是一个参考,还有很大的提升空间,具体怎么提升请自己仔细思考后把它改写出来,用EMAIL的形式发给我。

一个优秀的程序员就是通过不断的读别人写的经典代码,重写别人的代码(相当于小学时候默写课文那样),然后修改和优化别人的代码,并能凭自己的能力独立(也就是说,不拘泥于别人的思想和套路,而非不跟别人协作,一个懂得协作并非常默契的团队才是程序员发挥自己个人能力的天堂,个人英雄主义是不适用于程序开发的)写出自己的优秀代码。

好了,不罗嗦了,自己研究代码吧:

Calculator.java
//用于算术运算的抽象类,由ComputeCalculator类进行继承
public abstract class Calculator {
   public Calculator() {
   }
   public abstract void add(); //加法方法
   public abstract void minus(); //减法方法
   public abstract void multiply(); //乘法方法
   public abstract void divide(); //除法方法
   public abstract void paramPass(char param); //算术符号
}




ComputeCalculator.java
//Calculator的子类,用于实现具体算法
public class ComputeCalculator extends Calculator {
   public double ary0; //定义一个变量用于第一个参数
   public double ary2; //定义一个变量用于第二个参数
   public char ary1; //定义一个变量用于运算符号
   public ComputeCalculator(double DoubleNum1, double DoubleNum2) {
       this.ary0 = DoubleNum1;
       this.ary2 = DoubleNum2;
   }
   public void paramPass(char param) {
       this.ary1 = param;
       switch (ary1) { //运算符号合法性的判断,如果合法则进行相应的运算
       case '+': //加法运算
           add();
           break;
       case '-': //减法运算
           minus();
           break;
       case '@': //乘法运算
           multiply();
           break;
       case '/': //除法运算
           divide();
           break;
       default: //运算符号不合法
           System.out.println("您输入的运算符号错误,请将第二个参数改为+、-、@、/四种运算符号中的一种!");
       }
   }
   public void add() { //加法运算方法
       System.out.println("计算结果为:" + ary0 + " + " + ary2 + " = " +
                          (ary0 + ary2));
   }
   public void minus() { //减法运算方法
       System.out.println("计算结果为:" + ary0 + " - " + ary2 + " = " +
                          (ary0 - ary2));
   }
   public void multiply() { //乘法运算方法
       System.out.println("计算结果为:" + ary0 + " * " + ary2 + " = " +
                          (ary0 * ary2));
   }
   public void divide() { //除法运算方法
       if (ary2 == 0) { //除数为0的情况
           System.out.println("被除数为0,无法进行计算");
       } else { //正常的除法运算
           System.out.println("计算结果为:" + ary0 + " / " + ary2 + " = " +
                              (ary0 / ary2));
       }
   }
}





Js.java
//main()方法所在类,程序入口点,也是对前面两个类的调用和逻辑处理
public class Js {
   public Js() {
   }
   public static void main(String[] args) {
       try { //异常处理
           double a; //定义一个变量用于接收第一个参数
           double c; //定义一个变量用于接收第三个参数
           char ch[] = (args[1]).toCharArray(); //定义一个变量用于接收第二个参数
           Calculator compute ; //调用类,以进行计算
           a = Double.parseDouble(args[0]); //接收第一个参数,并进行数据类型转换
           if (a >= Double.MIN_VALUE && a <= Double.MAX_VALUE) { //判断参数内容是否合法
               c = Double.parseDouble(args[2]); //接受第三个参数,并进行数据类型转换
               if (c >= Double.MIN_VALUE && c <= Double.MAX_VALUE) { //判断参数内容是否合法
                   compute = new ComputeCalculator(a, c);
                   compute.paramPass(ch[0]); //对第二个参数进行合法性判断
               } else { //如果第三个参数不合法,则提示错误
                   System.out.println("您输入的格式错误,请将第三个参数改为阿拉伯数字");
               }
           } else { //如果第一个参数不合法,则提示错误
               System.out.println("您输入的格式错误,请将第一个参数改为阿拉伯数字");
           }
       } catch (Exception e) { //处理异常
           System.out.println("第1个参数应该为0到9之间的阿拉伯数字");
           System.out.println("第2个参数应该为运算符号(+、-、@、/)");
           System.out.println("第3个参数应该为0到9之间的阿拉伯数字");
           System.out.println("请重新输入数据并计算");
       }
   }
}

/*转贴请保留以下信息*/
作者:张杰
URL:http://spaces.msn.com/members/newbdez33/
http://www.phpboom.com/



由于工作需要,需要使用PHP实现对网站内大量数量进行全文检索,
而且目前最流行的全文检索的搜索引擎库就是Lucene了,
它是Apache Jakarta的一个子项目,并且提供了简单实用的API,
用这些API,就可以对任何基本文本的数据(包括数据库)进行全文检索。


因为PHP本身就支持调用外部Java类,所以先用Java写了一个类,
这个类通过调用Lucene的API,实现了两个方法:

    * public String createIndex(String indexDir_path,String dataDir_path)
    * public String searchword(String ss,String index_path)

其中createIndex是创建索引方法,
传入了两个参数分别是indexDir_path(索引文件的目录),dataDir_path(被索引的文件目录),返回被索引的文件列表字符串,
另一个是searchword,通过传入的关键字参数(ss)对索引进行检索,index_path就是索引文件的目录。返回所有检索到的文件。

这里是源代码,很简单,大家可以参考一下:TxtFileIndexer.java

而PHP程序就调用这两个方法,实现对Lucene的调用,从而达到全文检索的目的。
PHP的调用方法如下:
先创建一个我们写的TxtFileIndexer类的实例,

    $tf = new Java('TestLucene.TxtFileIndexer');

然后就按正常PHP类的调用方法的方式进行调用,首先创建索引:

    $data_path = "F:/test/php_lucene/htdocs/data/manual";  //定义被索引内容的目录
    $index_path = "F:/test/php_lucene/htdocs/data/search";  //定义生成的索引文件存放目录
    $s = $tf->createIndex($index_path,$data_path);  //调用Java类的方法
    print $s;  //打印返回的结果

这次再试试检索:

    $index_path = "F:/test/php_lucene/htdocs/data/search";  //定义生成的索引文件存放目录
    $s = $tf->searchword("here is keyword for search",$index_path);
    print $s;

另外要注意Java类的路径,可以在PHP里设置

    java_require("F:/test/php_lucene/htdocs/lib/");  //这是个例子,我的类和Lucene都放到这个目录下

这样就可以了,是不是很简单。

PHP源代码:test.php


接下来我把环境配置说一下,
首先需要有Java SDK,是必须的,我使用的是1.4.2版的,其它版本应该也没问题。
PHP5,试过PHP4,应该可以。

由于PHP5带的Java扩展没调通,并且以前用过调用Java效率很低,很慢,所以使用了 Php/Java Bridge 这个项目。

1.下载JavaBridge
URL:http://sourceforge.net/projects/php-java-bridge/
目前版本是
php-java-bridge_3.0.8_j2ee.zip

解包后把
JavaBridge\WEB-INF\cgi\java-x86-windows.dll
JavaBridge\WEB-INF\lib\JavaBridge.jar
复制到 c:\php\ext 目录下,并把
java-x86-windows.dll 改名为 php_java.dll


2.修改php.ini(例)
extension=php_java.dll

[Java]
java.class.path = "C:\php\ext\JavaBridge.jar;F:\test\php_lucene\htdocs"
java.java_home = "C:\j2sdk1.4.2_10"
java.library.path = "c:\php\ext;F:\test\php_lucene\htdocs"

3.重启Apache即可。

4.可以找一些文件进行索引
在test.php里可以修改索引文件和数据文件的路径。
TxtFileIndexer.java的37行限制了只索引html后缀的文件,有需要也可以修改。

根据目前的情况(JavaBridge支持Linux和Freebsd),完全可以在
linux或freebsd/apache2/php4/lucene/JavaBridge
环境下运行。



本文章可能会随时更新,另外这里可以访问:
用PHP调用Lucene包来实现全文检索

我的MSN是 z33 163.com
欢迎技术探讨:)

小弟是一java新手,在CLASSPATH方面遇到一棘手问题。我用的操作系统是WIN2000。安装了J2SE1.4版,安装于C盘。然后创建了一个目录(C:\DOC)用来作练习之用。我在环境变量里增加了一条CLASSPATH,值为(.;C:\DOC;)。然后我编译下面语句:
package test;

public class Vector{
public Vector(){
System.out.println(
"my.Vector");
}
}
在C:\DOC下有一个TEST目录,生成Vector.class 。Vector.java和Vector.class都置于TEST
目录内。
然后我再编译下面的语句:
import test.*;

public class LibTest{
public static void main(String[] args){
Vector v=new Vector();
}
}
则出现如现错误:
C:\DOC\TEST javac LibTest.java
LibTest.java:5: cannot access Vector
bad class file: .\Vector.class
class file contains wrong class: test.Vector
Please remove or make sure it appears in the correct subdirectory of the classpa
th.
Vector l=new Vector();
^
1 error
然而我把import test.*;改为import.Vector;则能成功编译。望各位大虾帮忙解决。

在CLASSPATH中加上.;.代表当前目录,如果不加,编译器在编译LibTest.java时,找test包就不会在当前目录内找,因为找不到,加上就可以了。

加上也不行啊。早就加了。就是不行。
classpath=.;C:\DOC

本人解决方法:
注意目录结构

作为package, test.java 应放C;\doc\test目录中
Libtest.java放在c:\doc下,
classpath设为".;c:\doc\;"
然后

  1. c:\doc>javac test\*.java
  2. c:\doc>javac *.java
  3. c:\doc>java Libtest //ok


D:\Javawork\jt>javac LibTest.java
LibTest.java:4: cannot access Vector
bad class file: .\Vector.java
file does not contain class Vector
Please remove or make sure it appears in the correct subdirectory of the classpa
th.
Vector v = new Vector();
^
1 error

(你的文件没有问题,主要是你的classpath里面有了test目录的java文件。。。)

出现这个问题,你要注意各个文件放的目录,千万不要在不同的目录里面里面有重复的文件。。。。

千万要注意编译顺序啊。。。
不知道说清楚了没有。。。。。要是看到我操作就好了。,。

点击在新窗口中浏览此图片

testme.html
code:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>
ajax
</title>
<script language="javascript">
function createRequest(){
       if(typeof XMLHttpRequest!="undefined")        {
               return new XMLHttpRequest();
       }else if(typeof ActiveXObject!="undefined"){
               var xmlHttp_ver  = false;
               var xmlHttp_vers = ["MSXML2.XmlHttp.5.0","MSXML2.XmlHttp.4.0","MSXML2.XmlHttp.3.0","MSXML2.XmlHttp","Microsoft.XmlHttp"];
               if(!xmlHttp_ver){
                       for(var i=0;i<xmlHttp_vers.length;i++){
                               try{
                                       new ActiveXObject(xmlHttp_vers[i]);
                                       xmlHttp_ver = xmlHttp_vers[i];
                                       break;
                               }catch(oError){;}
                       }
               }
               if(xmlHttp_ver){
                       return new ActiveXObject(xmlHttp_ver);
               }else{
                       throw new Error("Could not create XML HTTP Request.");
               }
       }else{
               throw new Error("Your browser doesn't support an XML HTTP Request.");
       }
}

var xmlHttp;

function sendPostRequest()
{    
                    xmlHttp = createRequest();
       var shownum=document.getElementById("shownum").value;// html页面中一个id为shownum的input表单
       var url = "http://localhost/phpwork/phpajaxtest.php";//要发送到的URL
       var queryString = "shownum" + "=" + shownum;
       //向服务端发送请求
       xmlHttp.open("post", url, true);//这里的第三个参数为true为异步方式处理
       xmlHttp.onreadystatechange = showData;//异步方式处理,当状态改变时会调用onreadystatechange属性指定的回调函数showData
       xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");//这一句是用post方法发送的时候必须写的
       xmlHttp.send(queryString);//发送你构建成的数据,如果为“get”方法时,这里可以写成xmlHttp.send(NULL);
}
function showData()
{
       var msg=document.getElementById("status");
                    //第4步
       if(xmlHttp.readyState==4)
       {
               if(xmlHttp.status==200)
               {
                //只有当readyState为4并且status为200时,才表示符合要求
                                                              //下面这一句话,就相当于上面说的第5步,处理返回的结果
                       msg.innerHTML =  xmlHttp.responseText;
               }
       }
       else
       {
               switch(xmlHttp.readyState)
               {
               case 0:
                       msg.innerHTML="未初始化...";
                       break;
               case 1:
                       msg.innerHTML="加载中...";
                       break;
               case 2:
                       msg.innerHTML="连接完成...";
                       break;
               case 3:
                       msg.innerHTML="交换数据...";
                       break;
               default:
                       break;
               }
       }
}

</script>
</head>
<body>
<div>要发送的数据:<input name="shownum" type="text" id="shownum" value="root">
<input type="button" name="search" value="发送" onClick="sendPostRequest()">
(输入root,xdy108)</div>
<div id="status"></div>
</body>
</html>
phpajaxtest.php
code:
<?php require_once('Connections/conn.php'); ?>
<?php
$colname_Recordset1 = "-1";
if (isset($_POST['shownum'])) {
 $colname_Recordset1 = (get_magic_quotes_gpc()) ? $_POST['shownum'] : addslashes($_POST['shownum']);
}
mysql_select_db($database_conn, $conn);
$query_Recordset1 = sprintf("SELECT `Host`, `User`, Password, Select_priv FROM `user` WHERE `User` = '%s'", $colname_Recordset1);
$Recordset1 = mysql_query($query_Recordset1, $conn) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
<table border="1">
 <tr>
   <td>Host</td>
   <td>User</td>
   <td>Password</td>
   <td>Select_priv</td>
 </tr>
 <?php do { ?>
   <tr>
     <td><?php echo $row_Recordset1['Host']; ?></td>
     <td><?php echo $row_Recordset1['User']; ?></td>
     <td><?php echo $row_Recordset1['Password']; ?></td>
     <td><?php echo $row_Recordset1['Select_priv']; ?></td>
   </tr>
   <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
</table>
</body>
</html>
<?php
mysql_free_result($Recordset1);
?>

conn.php
code:
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_conn = "localhost";
$database_conn = "mysql";
$username_conn = "root";
$password_conn = "12345";
$conn = mysql_pconnect($hostname_conn, $username_conn, $password_conn) or trigger_error(mysql_error(),E_USER_ERROR);
?>

user.sql
code:
# phpMyAdmin SQL Dump
# version 2.5.7
# http://www.phpmyadmin.net
#
# 主机: localhost
# 生成日期: 2006 年 12 月 13 日 05:58
# 服务器版本: 5.0.19
# PHP 版本: 5.1.2
#
# 数据库 : `mysql`
#

# --------------------------------------------------------

#
# 表的结构 `user`
#

CREATE TABLE `user` (
 `Host` char(60) collate utf8_bin NOT NULL default '',
 `User` char(16) collate utf8_bin NOT NULL default '',
 `Password` char(41) character set latin1 collate latin1_bin NOT NULL default '',
 `Select_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `Insert_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `Update_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `Delete_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `Create_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `Drop_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `Reload_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `Shutdown_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `Process_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `File_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `Grant_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `References_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `Index_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `Alter_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `Show_db_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `Super_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `Create_tmp_table_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `Lock_tables_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `Execute_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `Repl_slave_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `Repl_client_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `Create_view_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `Show_view_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `Create_routine_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `Alter_routine_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `Create_user_priv` enum('N','Y') character set utf8 NOT NULL default 'N',
 `ssl_type` enum('','ANY','X509','SPECIFIED') character set utf8 NOT NULL default '',
 `ssl_cipher` blob NOT NULL,
 `x509_issuer` blob NOT NULL,
 `x509_subject` blob NOT NULL,
 `max_questions` int(11) unsigned NOT NULL default '0',
 `max_updates` int(11) unsigned NOT NULL default '0',
 `max_connections` int(11) unsigned NOT NULL default '0',
 `max_user_connections` int(11) unsigned NOT NULL default '0',
 PRIMARY KEY  (`Host`,`User`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges';

#
# 导出表中的数据 `user`
#

INSERT INTO `user` VALUES ('localhost', 'root', '*00A51F3F48415C7D4E8908980D443C29C69B60C9', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', 0, 0, 0, 0);
INSERT INTO `user` VALUES ('localhost', 'xdy108', '001002', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', '', '', '', '', 0, 0, 0, 0);


发现输入xdy108,root的时候能无刷新返回,否则如xdy,ro等就会无返回结果,其原因是用了:WHERE `User` = '%s'", $colname_Recordset1);没有用like.
如下图:

点击在新窗口中浏览此图片
File:MysqlConn.java
code:
import java.sql.*;
public class MysqlConn {
static{
 
   try {
   Class .forName("sun.jdbc.odbc.JdbcOdbcDriver");
   System.out.print("Sucess loading JDBC_ODBC Bridge Drive...");
     }
 catch (Exception e){
   System.out.print("Erro loading JDBC-ODBC Bridge Driver...\n");
   e.printStackTrace();  
                    }
     }
 public static void main(String[] args) {
   try{
     Connection con1=DriverManager.getConnection("jdbc:odbc:choa_samples","root","12345");
      }
          catch(SQLException e){
     
                e.printStackTrace();
     
                               }  
                                         }

                    }
Windows Media Player文件

下载本歌曲


                   终于
作词:韩葆 作曲:王晓锋 演唱:韩葆 

这是在哪里/不是想象的开始/走不出黑色夜空/脆弱中无力的坚持

痛的掩饰/泪的痕迹/用尽情感去奢侈/也不能换取谎言的终止

我和我的心/终于醒在伤过之后/就算残存一些牵挂/从此不再向虚伪祈求/我是我自己/终于醒在爱过之后/就算未来一无所知/从此不再被冰雪穿透

阅读全文
Windows Media Player文件

阅读全文
屮回忆未来~ 17:06:19 要不要介绍一下? 还是谈谈技术问题/  陈国庆  17:06:29 呵呵, 不用这么敏感吧,  屮回忆未来~ 17:07:52 好好,谈谈哟。其实我也不是很在行的。。。。呵呵  陈国庆  17:07:51 没关系拉.你是刚毕业的?  屮回忆未来~ 17:08:38 我要明年才毕业呢  陈国庆  17:08:37 汗~~ 那你也可以全职工作啊..  屮回忆未来~ 17:09:24 想见识一下,如果还成可以的呀,我们没有课的啦  陈国庆  17:09:34 不过我们公司要毕业证的啊,如果没有毕业证 只能算是实习    屮回忆未来~ 17:10:42 也行呀。。。。实习吧。。。但是也得来点¥  陈国庆  17:11:25 哈哈,这个我要问问 看看,他们一般给实习的多少钱.你现在是在北京吗?  屮回忆未来~ 17:12:16 始啊....  屮回忆未来~ 17:12:24 是的....  陈国庆  17:12:11 在北京读书?  屮回忆未来~ 17:12:50 嗯  陈国庆  17:13:10 你不是说你有1年半的php工作经验吗?  屮回忆未来~ 17:14:28 我大二搞asp的.php的呢,项目没有搞过,实话说吧...但是思想还是有 的....  屮回忆未来~ 17:15:53 有户口没有啊/转正后  陈国庆  17:15:45 没有.  屮回忆未来~ 17:16:49 你们公司在哪里?  陈国庆  17:17:51 富力城 双子座  屮回忆未来~ 17:18:55 那个区?详细点啊....Thanks  陈国庆  17:18:57 你知道 265.com吗?  屮回忆未来~ 17:20:39 知道啊.当年我在初中读书.....呵呵  陈国庆  17:21:03 不会吧,你真知道这个网站? 2003年才出来,你当年读初中?  屮回忆未来~ 17:22:46 有点像好hao123  屮回忆未来~ 17:23:00 我同学还用它...   陈国庆  17:22:39 是的.  陈国庆  17:23:19 我退出了那个群,怎么都喜欢在里面嚷嚷啊..  屮回忆未来~ 17:24:23 你们现在侧重于哪个方面,导航好像不行了呢,只是一个时代罢了...   陈国庆  17:24:40 我们公司还有其新项目需要开发,所以现在需要一些php高手过来.  陈国庆  17:25:37 所以我才在那群里面写 不要才毕业的新手 呵呵  陈国庆  17:26:48 如果让你独自写一套: http://link.265.com/ 你能完成吗?  屮回忆未来~ 17:27:27 呵呵,可以理解,但是不能太绝对,有的人没有毕业就干过项目的.但是这样的人太少   陈国庆  17:28:18 刚拉了几个,都工作 1年多了.现在竟然还很多经常用的东西不知道,咳,真不知道怎么找人了.  屮回忆未来~ 17:29:06 呵呵,高手当然少了....  屮回忆未来~ 17:29:51  http://www.3gpnet.com/blog/read.php/111.htm  陈国庆  17:29:37 你一般写php是在什么操作系统下面运行的?linux/windows/freebsd?  屮回忆未来~ 17:31:51 linux&windows都写,喜欢windows下写然后用vmware.在linux跑..呵呵  陈国庆  17:32:34 linux系统你熟悉吗?  屮回忆未来~ 17:33:51 行吧,玩过redhat,Unix的....  屮回忆未来~ 17:34:07 list -l vi   陈国庆  17:34:40 vi 打开一个文件后怎么替换里面的内容?  屮回忆未来~ 17:36:11 http://tag.csdn.net/Article/7cb3943b-a76e-4cb8-ae1b-695a631ae4ca.html  陈国庆  17:36:10 呵呵  陈国庆  17:36:29 所有的东西网上都可以找的到的.  屮回忆未来~ 17:37:12 呵呵,最基本....  陈国庆  17:37:21 能不能给我发一段 你写的代码,我想看看你的代码风格  屮回忆未来~ 17:38:59 http://www.3gpnet.com/jie/phpcode/liuyan.rar  陈国庆  17:40:57 每行代码都是你自己写的?我怎么觉得有点网上源码的风格在里面. 呵呵  屮回忆未来~ 17:43:00 呵呵,是吗?我无聊写的,用DW搞的,有点想不通好像linux系统有点问题....有待解决...   陈国庆  17:43:21 你现在在什么公司呢?  屮回忆未来~ 17:44:22 我没有啊,我闲着呢....  屮回忆未来~ 17:44:27 呵呵  陈国庆  17:44:15 现在都在忙些什么呢?  屮回忆未来~ 17:45:27 看看书,喝喝茶,休息之余泡泡网.没课了嘛  陈国庆  17:45:50 如果让你过来我们公司,你能和其他人一样,正常上下班吗   屮回忆未来~ 17:47:28 我在海淀区中关村南大街27号,我不知道你们公司离这远不  陈国庆  17:47:27 有点远 我们在东边呢  陈国庆  17:48:15 中央民族大学?  屮回忆未来~ 17:48:43 那我每天还得跑那么远不累死也半条命啊..........  陈国庆  17:48:34    陈国庆  17:48:40    陈国庆  17:48:46 你是这个学校的?  屮回忆未来~ 17:49:34 是的  陈国庆  17:49:42 离我们这有点远 应该还要倒一躺车  屮回忆未来~ 17:50:50 公车线路?  屮回忆未来~ 17:51:48 你也太熟悉了,我还没去过你们那个方位,我叫向东,到东边看看也行的喔  陈国庆  17:51:22 你要转车到一个有300的车站,然后坐300过来就可以了.  屮回忆未来~ 17:52:53 详细地址,你的联系方式////   陈国庆  17:52:28 你的条件还不错,就是还没有毕业.有点难搞.  陈国庆  17:52:55 公司怕你们这样的. 一毕业就走了.  陈国庆  17:53:38 010-96096265转821 陈国庆   屮回忆未来~ 17:54:40 呵呵,这个问题不是我们毕业生能把握的.....  到哪里下车啊?  陈国庆  17:54:38 双井下车.  屮回忆未来~ 17:56:20 好等我看看地图啊,到后跟你联系......你也要下班了吧  陈国庆  17:56:22 恩.马上下班了.   屮回忆未来~ 17:59:01 我有空过来啊,我也要去吃饭了,Bye   陈国庆  17:58:40 88  屮回忆未来~ 17:59:13 以后多联系啊  陈国庆  17:58:57 好.没问题.
[p align=center]对酒当歌,人生几何?
譬如朝露,去日苦多。
慨当以慷,忧思难忘。
何以解忧,唯有杜康。
青青子衿,悠悠我心。
但为君故,沉吟至今。
呦呦鹿鸣,食野之苹。
我有嘉宾,鼓瑟吹笙。
明明如月,何时可掇。
忧从中来,不可断绝。
越陌度阡,枉用相存。
契阔谈宴,心念旧恩。
月明星稀,乌鹊南飞。
绕树三匝,何枝可依?
山不厌高,海不厌深。
周公吐哺,天下归心。

简评
《短歌行》是汉乐府的旧题,属于《相和歌·平调曲》。这就是说它本来是一个乐曲的名称,这种乐曲怎么唱法,现在当然是不知道了。但乐府《相和歌·平调曲》中除了《短歌行》还有《长歌行》,唐代吴兢《乐府古题要解》引证古诗“长歌正激烈”,魏文帝曹丕《燕歌行》“短歌微吟不能长”和晋代傅玄《艳歌行》“咄来长歌续短歌”等句,认为“长歌”、“短歌”是指“歌声有长短”。我们现在也就只能根据这一点点材料来理解《短歌行》的音乐特点。《短歌行》这个乐曲,原来当然也有相应的歌辞,就是“乐府古辞”,但这古辞已经失传了。现在所能见到的最早的《短歌行》就是曹操所作的拟乐府《短歌行》。所谓“拟乐府”就是运用乐府旧曲来补作新词,曹操传世的《短歌行》共有两首,这里要介绍的是其中的第一首。

这首《短歌行》的主题非常明确,就是作者希望有大量人才来为自己所用。曹操在其政治活动中,为了扩大他在庶族地主中的统治基础,打击反动的世袭豪强势力,曾大力强调“唯才是举”,为此而先后发布了“求贤令”、“举士令”、“求逸才令”等;而《短歌行》实际上就是一曲“求贤歌”、又正因为运用了诗歌的形式,含有丰富的抒情成分,所以就能起到独特的感染作用,有力地宣传了他所坚持的主张,配合了他所颁发的政令。

《短歌行》原来有“六解”(即六个乐段),我们现在按照诗意分为四节来读。

对酒当歌,人生几何?譬如朝露,去日苦多。慨当以慷,幽思难忘。何以解忧,唯有杜康。

在这八句中,作者强调他非常发愁,愁得不得了。那么愁的是什么呢?原来他是苦于得不到众多的“贤才”来同他合作,一道抓紧时间建功立业。试想连曹操这样位高权重的人居然在那里为“求贤”而发愁,那该有多大的宣传作用。假如庶族地主中真有“贤才”的话,看了这些话就不能不大受感动和鼓舞。他们正苦于找不到出路呢,没有想到曹操却在那里渴求人才,于是那真正有才或自以为有才的许许多多人,就很有可能跃跃欲试,向他“归心”了。

“对酒当歌”八句,猛一看很象是《古诗十九首》中的消极调子,而其实大不相同。这里讲“人生几何”,不是叫人“及时行乐”,而是要及时地建功立业。又从表面上看,曹操是在抒个人之情,发愁时间过得太快,恐怕来不及有所作为。实际上却是在巧妙地感染广大“贤才”,提醒他们人生就象“朝露”那样易于消失,岁月流逝已经很多,应该赶紧拿定主意,到我这里来施展抱负。所以一经分析便不难看出,诗中浓郁的抒情气氛包含了相当强烈的政治目的。这样积极的目的而故意要用低沉的调子来发端,这固然表明曹操真有他的愁思,所以才说得真切;但另一方面也正因为通过这样的调子更能打开处于下层、多历艰难、又急于寻找出路的人士的心扉。所以说用意和遣词既是真切的,也是巧妙的。在这八句诗中,主要的情感特征就是一个“愁”字,“愁”到需要用酒来消解(“杜康”相传是最早造酒的人,这里就用他的名字来作酒的代称)。“愁”这种感情本身是无法评价的,能够评价的只是这种情感的客观内容,也就是为什么而“愁”。由于自私、颓废、甚至反动的缘故而愁,那么这愁就是一种消极的感情;反之,为着某种有进步意义的目的而愁,那就成为一种积极的情感。放到具体的历史背景中看,曹操在这里所表达的愁绪就是属于后者,应该得到恰当的历史评价。清人陈沆在《诗比兴笺》中说:“此诗即汉高《大风歌》思猛士之旨也。‘人生几何’发端,盖传所谓古之王者知寿命之不长,故并建圣哲,以贻后嗣。”这可以说基本上懂得了曹操发愁的含意;不过所谓“并建圣哲,以贻后嗣”还未免说得迂远。曹操当时考虑的是要在他自己这一生中结束战乱,统一全中国。与汉高祖唱《大风歌》是既有相通之处,也有不同之处的。

青青子衿,悠悠我心。但为君故,沈吟至今。呦呦鹿鸣,食野之苹。我有嘉宾,鼓瑟吹笙。

这八句情味更加缠绵深长了。“青青”二句原来是《诗经·郑风·子衿》中的话,原诗是写一个姑娘在思念她的爱人,其中第一章的四句是:“青青子衿,悠悠我心。纵我不往,子宁不嗣音?”(你那青青的衣领啊,深深萦回在我的心灵。虽然我不能去找你,你为什么不主动给我音信?)曹操在这里引用这首诗,而且还说自己一直低低地吟诵它,这实在是太巧妙了。他说“青青子衿,悠悠我心”,固然是直接比喻了对“贤才”的思念;但更重要的是他所省掉的两句话:“纵我不往,子宁不嗣音?”曹操由于事实上不可能一个一个地去找那些“贤才”,所以他便用这种含蓄的方法来提醒他们:“就算我没有去找你们,你们为什么不主动来投奔我呢?”由这一层含而不露的意思可以看出,他那“求才”的用心实在是太周到了,的确具有感人的力量。而这感人力量正体现了文艺创作的政治性与艺术性的结合。他这种深细婉转的用心,在《求贤令》之类的文件中当然无法尽情表达;而《短歌行》作为一首诗,就能抒发政治文件所不能抒发的感情,起到政治文件所不能起的作用。紧接着他又引用《诗经·小雅·鹿鸣》中的四句,描写宾主欢宴的情景,意思是说只要你们到我这里来,我是一定会待以“嘉宾”之礼的,我们是能够欢快融洽地相处并合作的。这八句仍然没有明确地说出“求才”二字,因为曹操所写的是诗,所以用了典故来作比喻,这就是“婉而多讽”的表现方法。同时,“但为君故”这个“君”字,在曹操的诗中也具有典型意义。本来在《诗经》中,这“君”只是指一个具体的人;而在这里则具有了广泛的意义:在当时凡是读到曹操此诗的“贤士”,都可以自认为他就是曹操为之沈吟《子衿》一诗的思念对象。正因为这样,此诗流传开去,才会起到巨大的社会作用。

明明如月,何时可掇?忧从中来,不可断绝。越陌度阡,枉用相存。契阔谈,心念旧恩。

这八句是对以上十六句的强调和照应。以上十六句主要讲了两个意思,即为求贤而愁,又表示要待贤以礼。倘若借用音乐来作比,这可以说是全诗中的两个“主题旋律”,而“明明如月”八句就是这两个“主题旋律”的复现和变奏。前四句又在讲忧愁,是照应第一个八句;后四句讲“贤才”到来,是照应第二个八句。表面看来,意思上是与前十六句重复的,但实际上由于“主题旋律”的复现和变奏,因此使全诗更有抑扬低昂、反复咏叹之致,加强了抒情的浓度。再从表达诗的文学主题来看,这八句也不是简单重复,而是含有深意的。那就是说“贤才”已经来了不少,我们也合作得很融洽;然而我并不满足,我仍在为求贤而发愁,希望有更多的“贤才”到来。天上的明月常在运行,不会停止(“掇”通“辍”,“晋乐所奏”的《短歌行》正作“辍”,即停止的意思);同样,我的求贤之思也是不会断绝的。说这种话又是用心周到的表现,因为曹操不断在延揽人才,那么后来者会不会顾虑“人满为患”呢?所以曹操在这里进一步表示,他的求贤之心就象明月常行那样不会终止,人们也就不必要有什么顾虑,早来晚来都一样会受到优待。关于这一点作者在下文还要有更加明确的表示,这里不过是承上启下,起到过渡与衬垫的作用。 阅读全文
昨天晚上,出现如下问题:
Script: /blog/index.php

SQL: SELECT * FROM `boblog_blogs` WHERE `property`<>'3' ORDER BY `sticky`DESC, `pubtime` DESC LIMIT 0,
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Errno.: 1064
搞得我郁闷死了,竟然发现有人说是boblog_blogs的表出现错误,我把所有的表都修复了,然后还是不对,然后再用google搜索,然后我发现好像不行,访问不了,然后我就用baidu看了一下,发现使我感到很郁闷。。。

饭后想不通,然后继续baidu,最后我发现bo-blog里面有如下问题。。。
解决方法也很简单:
将安装包内install\copy下的mod_config文件上传覆盖FTP里/data目录下的同名文件即可恢复,(最好是将mod_config.php del掉然后呢,就弄ftp上去,我是这样弄得。。。)

    很多兄弟总是抱怨老婆难养,怕老婆拿自己和别人比较。那么,从现在开始将抱怨的精力多花在这些实际行为上吧,为老婆一生一世永不变心而努力
1、每天尽可能的多拥抱老婆,即使她嫌弃你一身臭汗也不怕,因为她心里是甜的。  

2、在适当时候或心情愉悦的时候总是真诚的对老婆说:“我爱你!”“爱你的一切!”“我们在一起真快乐!”。 看到这里,也许有人会嗤之以鼻:“老套!”但究竟有几个人做到了呢?  

3、家务永远是令人头疼的,主动和老婆分着做,并抢着炒菜(保护老婆的皮肤就是保护自己的口袋)。不管你做得多难吃,只有老婆会面不改色吃下去,并且还会鼓励你:“多做几次就好吃了!”(嘻嘻)。有时间尽量陪老婆一起吃饭,有研究表明一个人吃饭容易得胃病。

4、老婆的生日,各种节日,纪念日,你不大张旗鼓庆贺也罢,但是要记得送礼物给她;你不送礼物也罢,但是要请她与你共度晚餐;你不请她吃饭也罢,但要记得带束花给她;你嫌送花浪费也罢,那就给她买点她喜欢的小零食;你不买零食也罢,但要记得电话问候一下,最不济也要发个有意义的短信给她。你忘了发短信也罢,那就等着她埋怨你吧,怨气积多了可不是什么好事啊,看过鬼片的人多知道的吧!

5、有空,不累,就陪老婆逛逛街,千万不要拿男人都讨厌逛街当借口,总觉得那是有些男人的阴谋,你不愿陪是吧,呵呵,殊不知那些制造阴谋的男人正等候时机呢!所以老婆要逛街,老公还是“偶尔”陪陪吧,知道你们委屈了,可你们的衣裤鞋袜,多少也是老婆置办的啊。

6、自己的女同事,女性朋友,若有机会就介绍给老婆认识,千万不要来个电话就躲起来接听,和别人暧昧的谈笑,装得自己多受人欢迎似的!这只是小男人不成熟的表现,别让聪明的老婆笑话了!大方地让她了解你的朋友圈,只会让她更加地信任你!信任度是一点一点用心建立起来的!  

7、勇敢地担负起养家的责任,不论老婆是独立型还是小鸟依人型的,即使老婆现在同你一样工作着,每月拿或多或少的薪水,你也要把自己当作家里的顶梁柱!看到老婆回家累了还要做饭的时候,你要说:“这么辛苦,我来养你吧!”明智的老婆也会想到你的辛苦,得到了关心和承认,老婆的工作干劲会更大!

8、老婆想学习知识提升自己的时候,尽量地鼓励她,为她创造条件,并且自己也要变得积极,同她一起进步,老婆学得越多越自信越有内涵,你也会少了许多女人胡搅蛮缠的烦恼。你们一起进步,也可以平衡彼此之间的差距,也为创造美好生活添砖加瓦,是谓比翼双飞也!

9、人的很大一部分时间都花在工作上了,自己的工作要经常和老婆聊聊,其中的快乐和痛苦要与她一起分担。也许很多男人都认为,分享成功就行了,至于艰辛嘛,自己承受一下!在这里表扬一下先!但女人也愿意为你分担一切,这就好比你得了不治之症(是比方请谅解),怕不能给人幸福还连累人,就拼命装坏为的是让女人离开你。其实一旦得知真相,女人的痛苦和遗憾会折磨她终生!所以,遇到挫折最可靠的方法是和爱人分担,她绝不会落井下石,只会鼓励你支持你,因为你把她当成可以共苦的人,她就真的能与你共患难!  

10、如果家里只有一台电脑,永远不独占着(除非你是IT的),要么和老婆一起玩,要么指点老婆玩。你离开去喝水的时候,顺便帮老婆也倒一杯!  

嘻嘻,以上是10大基本招数,你认同吗?如果嫌难度系数太高的话,可以慢慢加以练习,相信我,老婆绝对会对你越来越好哦!!!

我在这个大学里呆了快四年了,目睹了一所真正大学的课桌上的灿烂文化,尽管在课桌上留字这种行为本身很龌龊,所谓林子大了,什么鸟都有,可是有时候真正地佩服起学生们伟大的创造力。那么就让我们来看看这些东西吧。
我爱的人名花有主,爱我的人惨不忍睹。
远看是拣破烂的,近看是讨饭的,细看是艺术学院的。
不是在放荡中变坏,就是在沉默中变态。

有多少爱可以胡来!
暖风吹得学生醉,直把课桌当床睡~~!
主贴:我发誓用一年时间,过英语四、六级,成绩都拿优秀!计算机过三集,并报考程序员!
回复:弟弟,你是大一的。

黑夜给了我黑色的眼睛,我却要用它来翻白眼。

昨天上口译时在抽屉里发现的……
大一好累……
大二更累……
大三才叫累哪!
大四你就知道再怎么累都是白搭了……

人生在世很happy
何必苦苦STUDY
找个mm多sunny
早日生个小baby。

虽然我很帅,但是我很无奈!
虽然我很丑,但是我很抢手!

还有一个说女生罩杯的:
A 是airport
B 是barely there
C 是can do
D 是damn good
E 是extensive
F 是fantasy

我和恐龙做伴 活得凄凄惨惨。

白天停水,晚上停电,发不出工资,买不起面,打开邓选找到答案,原来是社会主义初级阶段,翻到最后,我靠,一百年不变。

招聘cs站队成员,要求:
1、枪法淫荡
2、走位风骚
3、意识下流
有意者联系。。。。。。(此广告长期有效)

女友太累,
小姐太贵,
不如多搞些同乡会,
拆散一对是一对

科大自古无娇娘,残花败柳一行行。

丑女如星,美女如云。仰望星空,万里无云。

我想早恋,……但已经迟了!!!

我爱你, 但是我不敢说,
我怕说了我马上会去死,
我不怕死!
我怕我死了没有人再像我这样爱你!

后面看,想犯罪
侧面看,想撤退
正面看,想防卫

35岁是青春的后期,  35岁以后是收获的季节, 如果你没有资格说这句话,你将会憎恨自己,   所以在35岁以前, 在烂漫蓬勃的青春年华里, 你最好把下面十件事做好!
   第一,学会本行业所需要的一切知识并有所发展。
      已故零件大王布鲁丹在他35岁时,已经成为零件行业的领袖,  并且组建了年收入达千万美元的海湾与西部工业公司。  每个人在年轻时都可能有过彻夜不眠、刻苦攻读,这在20岁甚或30岁都没有问题,  但到了35岁,就不应该再为学习基本技能而大伤脑筋了。  35岁之前是一个人从事原始积累的阶段,35岁之后就应该勃发了。
   第二,养成个人风格。
      在35岁以前,找出你所喜欢的,不论是衣着或是爱好,哪怕是与众不同的小习惯也好。  20岁、30岁时你可以不断尝试、不断改变,但是到了35岁,你便要明确地建立个人风格。 一位男士或女士在事业中途改变自己的形象,就会让人觉得很不可靠。 你喜欢穿西装吗?好!就把西装当作你的商标吧!  办公桌上摆些鲜花会令你工作更有效率吗?那就每天都摆些鲜花吧!
   第三,在感情生活方面平和安定。
      在攀登事业的高峰时,如果私人生活不愉快,陷入感情危机,对你会产生很大的干扰,  甚至会逐渐令你对别的事物失去兴趣。那些在35岁之前私人生活已经平和安定的人, 一般都比生活动荡不安的人有更大的机会获得成功。因此,如果你想结束一段没有结果的恋情,或者你想和女友结婚,那就赶快行动吧,免得把问题拖到生命的第35个春秋。  在35岁以后,你应该专注地看着你对事业的投资开始获利。
   第四,明白自己的短处。
      承认有些事情你的确做不好,或者不愿做。如果你讨厌数字而喜欢创作,  那就不要因为待遇高或顺从别人的期望而强迫自己做数字工作。在35岁之前,  一定要投入你所喜爱、所擅长的那种工作。否则,35岁之后必然会有一段郁郁不乐的日子。而且,真正的成功可能因为活力的消退而丧失。
   第五,知道自己的长处。
      你应该知道自己擅长什么,并且清楚你所喜欢做而又做得比别人好的事情。  不管你目前担任什么样的角色,知道自己的长处对成功都很重要。

第六,储备辞职另谋生路的钱。
      在这个多变的职业世界里,你也许不会永远在一个地方工作, 或者永远在一个位置上淋漓尽致地发挥自己,当你感到无法施展时,你很可能会想到辞职,  或者开辟第二职业,如果你事先储蓄了足够的钱,你便有了一个安全的后盾。
   第七,建立人际关系网。
       如果到了35岁你仍未建立起牢固的人际关系网,那你就有麻烦了。   这个人际关系网包括你的朋友、亲人,最低限度包括所有可以互相帮助的人。   这些人有的是你的同事,有的受过你的恩惠,有的你倾听过他们的问题, 有的你和他有着相同的爱好。人际关系网不是一朝一夕就能建立起来的,  它需要几年甚至十几年的培养。一个人在事业上、生活上的成功其实如同一个政党的成功,  你要有许多人散布在适当的地方,你可以依赖他们,他们也可以依赖你。
   第八,学会授权他人。
      许多人不肯或不能这样做,因此始终被钉在从属的职位上。授权他人是成功的一半,  一个事无巨细,不能将工作授权别人的人,注定会遇到极大的障碍。到了35岁,   你最好已成为这方面的专家。换言之,你懂得挑选合适的人并信任他们。
   第九,学会在什么时候三缄其口。
      因说话不小心而自毁前程的人,比因为任何其他原因丧失成功的人都多。   要学会保持沉默而且看起来机智--别人自然以为你知道的比实际还多。  别讲别人的闲话,别谈论你自己的大计,守口如瓶所赢得的声誉, 远比讲人闲话所带来的东西更加珍贵。你在事业上越成功,这一点就越重要。
   第十,对人要忠诚。
      如果你到了35岁仍未能建立起坚如磐石的忠诚信誉,这一缺点将会困扰你一生。 不忠诚的恶名必然会使你在事业上到处不受欢迎。 你不能靠暗箭伤人爬到事业的顶峰,而要靠在早期树立起来的真诚刚直和不可动摇的声誉。  35岁以前,忠诚只是投资;35岁以后,你会作为一个可以信赖的人收到忠诚的回报。

别人说你不好,你会睡不着觉,但是如果自己逐渐建立一套是非标准,能说服自己,就不会脆弱,自己就能管理好自己的情绪了。
  
  培养你的不是导师,而是你的对手,爱你的人不教你生存之道,恨你的人让你长了很多本事,爱你的人融化你,恨你的人让你坚强,所以才会有“爱死人,恨活人”的说法,一爱你要死要活,不是他跳井了,就是你累死了;恨活人,一恨你躲着,你天天研究怎么对付,你就活了,你就长了本事。

  当只有少数人骂你的时候,其实挺可怜,因为你没价值。布什全世界都说他不好,他骚扰到我们这儿我们才骂他,换个角度他能力在这儿、他的影响力在那。不过,全世界没一个人说你好你也完蛋,要保持一个适度的压力,并不断去积累你的压力和承受力,哪一天中国有一亿人说我不好的时候,我想这个影响力就算足够大了,说明我们每一个决定都影响到一亿人,现在还不行,说好话的人和坏话的人分量都不够多,哪一天拉登烦你,你就牛大了,拉登烦你还得了,那你肯定是个有足够影响的、伟大的人。

  人一生不在于消灭困难,消灭敌人,而在于选择困难,改变对手。比如你是一个种子的时候,浮土就能盖住你;你是一个芽儿的时候,碎石子都能压倒你;你是一个枝丫的时候,石块都挡住你;你是一棵树的时候,大树就盖住你;你是一个最大的树的时候,风必摧之。你会发现改变都是对手,而且敌人越来越牛X,风一吹你就得随风而倒,但是你底下的根要扎实,树梢动没事死不了。

  没有困难,那不可能,你只是改变困难的类型,老是一失恋就上吊的困难,你基本上就废了,你得弄点伟大的困难玩玩,但首先心理不畏惧是对困难的最佳选择。

分页: 319/339 第一页 上页 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 下页 最后页 [ 显示模式: 摘要 | 列表 ]