<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>๑۩۞۩๑ 荆襄九郡</title>
    <description>城若破，有死而已！玉可碎而不可改其白，竹可焚而不可毁其节！身虽死，名可垂于竹帛也！又何惧哉！</description>
    <link>http://di201yao.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>经典程序</title>
        <author>yaodi0818</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://di201yao.javaeye.com">yaodi0818</a>&nbsp;
          链接：<a href="http://di201yao.javaeye.com/blog/200714" style="color:red;">http://di201yao.javaeye.com/blog/200714</a>&nbsp;
          发表时间: 2008年06月05日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">
result love(boy, girl)
{
    if( boy.有房() and boy.有车() )
    {
        boy.set(nothing);
        return girl.嫁给(boy);
    }
    if( girl.愿意等() )
    {
    while(!(boy.赚钱 > 100,000 and girl.感情 > 8 ) )
    {
        for( day=1; day &lt;=365; day++)
        {
            if( day == 情人节 )
            if( boy.givegirl(玫瑰) )
                girl.感情++;
            else
                girl.感情--;　　
            if( day == girl.生日 )
            if( boy.givegirl(玫瑰) )
            {
                girl.感情++;
            else
                girl.感情--;
                boy.拼命赚钱();
            }
        }
        if( boy.有房() and boy.有车() )
        {
            boy.set(nothing);
            return girl.嫁给(boy);
        }
        年龄++;
        girl.感情--;
    }
    return girl.goto( another_boy);
} 

</pre>
          <br/>
          <span style="color:red;">
            <a href="http://di201yao.javaeye.com/blog/200714#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 05 Jun 2008 23:02:09 +0800</pubDate>
        <link>http://di201yao.javaeye.com/blog/200714</link>
        <guid>http://di201yao.javaeye.com/blog/200714</guid>
      </item>
      <item>
        <title>Spring之MVC  入门实例</title>
        <author>yaodi0818</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://di201yao.javaeye.com">yaodi0818</a>&nbsp;
          链接：<a href="http://di201yao.javaeye.com/blog/191758" style="color:red;">http://di201yao.javaeye.com/blog/191758</a>&nbsp;
          发表时间: 2008年05月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          对于现有较成熟的Struts、Webwork(MVC)框架而言，，其解决的主要问题无外乎下面几部分： <br />1、将Web页面中的输入元素封装为一个（请求）数据对象。 <br />2、根据请求的不同，调度相应的逻辑处理单元，并将（请求）数据对象作为参数传入。 <br />3、逻辑处理单元完成运算后，返回一个结果数据对象。 <br />4、将结果数据对象中的数据与预先设计的表现层相融合并展现给用户。 <br />    各个MVC实现固然存在差异，但其中的关键流程大致如上。结合一个实例，看看这<br />几个关键流程在Spring MVC框架中的处理手法。 <br /><br />开发环境: Apache Tomcat 6.0.16 + MyEclipse6.0.1 + spring2.5.3<br />实现功能：用户登录，校验用户名和密码，如果正确返回成功页面上显示登陆信息<br />准备工作：下载spring-framework-2.5.3的完整包（http://www.springframework.org/download）<br /><br />1、启动MyEclipse新建web项目（这里起名为springmvc），为项目添加spring支持的类库（spring.jar和spring-webmvc.jar）<br />这里，项目用到了jstl标签，所以也要把它添加进去！！！<br /><br />2、为web.xml配置分发器<br />DispatcherServlet是Spring MVC的入口，所有进入Spring Web的Request都经过DispatcherServlet <br /><pre name="code" class="java">
&lt;?xml version="1.0" encoding="UTF-8"?>
&lt;web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  &lt;display-name>springmvc&lt;/display-name>  
  &lt;servlet>
  	&lt;servlet-name>Dispatcher&lt;/servlet-name>
  	&lt;servlet-class>org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class>
  	&lt;init-param>
  		&lt;param-name>contextConfigLocation&lt;/param-name>
  		&lt;param-value>/WEB-INF/Config.xml&lt;/param-value>
  	&lt;/init-param>
  &lt;/servlet>
  &lt;servlet-mapping>
  	&lt;servlet-name>Dispatcher&lt;/servlet-name>
  	&lt;url-pattern>*.do&lt;/url-pattern>
  &lt;/servlet-mapping>  
&lt;/web-app>
</pre><br />这样，请求 .do 的处理就全部交由Spring处理了<br /><br />3、/WEB-INF/Config.xml<br /><pre name="code" class="java">
&lt;?xml version="1.0" encoding="UTF-8"?> 
&lt;!DOCTYPE beans PUBLIC  "-//SPRING//DTD BEAN//EN" 
 "http://www.springframework.org/dtd/spring-beans.dtd">  
&lt;beans>
	&lt;!-- 配置试图解析器 -->
	&lt;bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		&lt;property name="viewClass">
			&lt;value>org.springframework.web.servlet.view.JstlView&lt;/value>
		&lt;/property>
		&lt;property name="prefix">
			&lt;value>/WEB-INF/view/&lt;/value>
		&lt;/property>
		&lt;property name="suffix">
			&lt;value>.jsp&lt;/value>
		&lt;/property>
	&lt;/bean>	
	&lt;!-- 配置映射响应器 -->
	&lt;bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
		&lt;property name="mappings">              
  			&lt;props> 
   				&lt;prop key="/index.do">LoginAction&lt;/prop> 
  			&lt;/props> 
		&lt;/property> 
	&lt;/bean>	
	&lt;!-- 配置控制器 -->
	&lt;bean id="LoginAction" class= "com.yd.springmvc.action.LoginAction">
		&lt;property name="commandClass">             
			&lt;value>com.yd.springmvc.action.LoginInfo&lt;/value> 
		&lt;/property>
		&lt;property name="formView" value="index" />
		&lt;property name="successView" value="main" />  
	&lt;/bean>
&lt;/beans>
</pre><br /><br />4、简单的JavaBean：LoginInfo<br /><pre name="code" class="java">
package com.yd.springmvc.action;

public class LoginInfo {
	private String username;
	private String password;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	} 
}
</pre><br /><br />5、业务逻辑处理：LoginAction<br /><pre name="code" class="java">
package com.yd.springmvc.action;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;

public class LoginAction extends SimpleFormController {

	@Override
	protected ModelAndView onSubmit(HttpServletRequest request,
			HttpServletResponse response, Object cmd, BindException ex)
			throws Exception {		
		LoginInfo loginInfo = (LoginInfo) cmd;
		if (!"yaodi".equals(loginInfo.getUsername())) {
			ex.rejectValue("username", "usernameerror", "姓名错误!!!");
			return this.showForm(request, response, ex);
		}
		if (!"123456".equals(loginInfo.getPassword())) {
			ex.rejectValue("password", "passworderror", "密码错误!!!");
			return this.showForm(request, response, ex);
		}
		HashMap result = new HashMap();		
		result.put("loginInfo", loginInfo); 		
		List msgList = new LinkedList(); 			
		msgList.add("user1"); 
		msgList.add("user2"); 
		msgList.add("user3"); 
		result.put("msgList", msgList); 		
		return new ModelAndView(this.getSuccessView(), result);//返回界面由指定的结果数据集加以填充
	}
}
</pre><br />onSubmit方法用于处理业务请求包含了两个参数：Object cmd（Object型参数，正是传入的请求数据对象的引用）和BindException ex（参数则提供了数据绑定错误的跟踪机制）<br /><br />6、登陆页：/WEB-INF/view/index.jsp<br /><pre name="code" class="java">
&lt;%@ page language="java" pageEncoding="UTF-8"%>
&lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
&lt;%@ taglib prefix="fmt"	uri="http://java.sun.com/jsp/jstl/fmt" %>
&lt;%@ taglib prefix="fn"	uri="http://java.sun.com/jsp/jstl/functions" %>
﻿&lt;%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>

&lt;html>
  &lt;head>    
    &lt;title>登陆页&lt;/title>
  &lt;/head> 
  &lt;body>  
  &lt;h2>登陆&lt;/h2>&lt;hr>	  
  &lt;form method="post">      
	  &lt;p>
	  	姓名:
	  	&lt;spring:bind path="command.username">
		&lt;input type="text" name="username" value="${status.value}">
		&lt;c:forEach items="${status.errorMessages}" var="error">
			&lt;font color="#FF0000">*错误: ${error}&lt;/font>
		&lt;/c:forEach>
		&lt;/spring:bind>
      &lt;/p>
	  &lt;p>
	    密码:
	    &lt;spring:bind path="command.password">
	    &lt;input type="password" name="password" />
	    &lt;c:forEach items="${status.errorMessages}" var="error">
			&lt;font color="#FF0000">*错误: ${error}&lt;/font>
		&lt;/c:forEach>
	    &lt;/spring:bind>
      &lt;/p>
	  &lt;p>
	    &lt;input type="submit" name="Submit" value="提交" />  
        &lt;input type="reset" name="Submit2" value="重置" />
      &lt;/p>
  &lt;/form>  
  &lt;/body>
&lt;/html>
</pre><br /><br />7、成功页：/WEB-INF/view/main.jsp<br /><pre name="code" class="java">
&lt;%@ page language="java" pageEncoding="UTF-8"%>
&lt;%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>

&lt;html>
	&lt;head>
		&lt;title>成功页&lt;/title>		
	&lt;/head>
	&lt;body>
	&lt;h2>欢迎登陆：&lt;/h2>
	姓名:&lt;c:out value="${loginInfo.username}" />&lt;br>
	密码:&lt;c:out value="${loginInfo.password}" />
	&lt;h2>当前信息:&lt;/h2>
	&lt;c:forEach items="${msgList}" var="item">
		${item}&lt;br>
	&lt;/c:forEach>
	&lt;/body>
&lt;/html>
</pre><br /><br />8、这样我们就成功地建立了一个mvc应用，访问http://loaclhost:8888/springmvc/index.do
          <br/>
          <span style="color:red;">
            <a href="http://di201yao.javaeye.com/blog/191758#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 10 May 2008 17:41:38 +0800</pubDate>
        <link>http://di201yao.javaeye.com/blog/191758</link>
        <guid>http://di201yao.javaeye.com/blog/191758</guid>
      </item>
      <item>
        <title>jsp自定义标签实例</title>
        <author>yaodi0818</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://di201yao.javaeye.com">yaodi0818</a>&nbsp;
          链接：<a href="http://di201yao.javaeye.com/blog/187584" style="color:red;">http://di201yao.javaeye.com/blog/187584</a>&nbsp;
          发表时间: 2008年04月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          JSP自定义标签。在自定义标签的起始和结束标签之间的部分为标签体(Body)。<br />   标签处理程序类：定义标签的行为，并在JSP引擎遇到自定义标签时调用执行。<br />   标签库描述符（TLD）文件：描述标签库的XML文档，向JSP引擎提供有关自定义标签的标签处理程序的信息。tag标签相关属性：实现简单标签处理程序 标签处理程序是一个在运行时调用的Java类,它包含在 JSP文件中使用的自定义标签的实现代码.标签处理程序必须实现或扩展javax.servlet.jsp.tagext包中的类和接口.javax.servlet.jsp.tagext含有允许标签处理程序类与JSP容器通信的接口和类。<br /><br />最近在项目中要用到这种技术，所以自己就写一个经典的HelloWorld实例：<br />其实对自定义标签已经早有接触了（Struts中使用了很多自定义标签，如html、bean等）<br />使用这种技术的优点：取代了JSP中的Java程序，并且可以重复使用，方便不熟悉Java编程的网页设计人员<br /><br />实现步骤：<br />首先启动eclipse，新建一个web项目（废话...）<br /><br />1、修改web.xml文件，增加自定义标签支持<br /><pre name="code" class="java">
&lt;?xml version="1.0" encoding="UTF-8"?>
&lt;web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  &lt;jsp-config>
  	&lt;taglib>
    	&lt;taglib-uri>/tld/helloworld&lt;/taglib-uri>
    	&lt;taglib-location>/WEB-INF/tlds/helloworld.tld&lt;/taglib-location>
	&lt;/taglib>
  &lt;/jsp-config> 
&lt;/web-app>
</pre><br /><br />2、创建标签库TLD文件 tlds\helloworld.tld<br /><pre name="code" class="java">
&lt;?xml version="1.0" encoding="UTF-8"?>
&lt;!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">   
&lt;taglib>
   &lt;tlib-version>1.0&lt;/tlib-version>&lt;!-- 标签库的版本 -->
   &lt;jsp-version>1.2&lt;/jsp-version>&lt;!-- 这个标签库要求的JSP规范版本 -->
   &lt;short-name>mytag&lt;/short-name>&lt;!-- JSP页面编写工具可以用来创建助记名的可选名字 -->
   &lt;tag>
      &lt;name>helloworld&lt;/name>&lt;!-- 唯一标签名 -->
      &lt;tag-class>com.yd.mytag.HelloWorldTag&lt;/tag-class>&lt;!-- 标签HelloWorldTag类的完全限定名 -->
      &lt;body-content>empty&lt;/body-content>&lt;!-- 正文内容类型 -->
   &lt;/tag>
&lt;/taglib>
</pre><br /><br /><span style="color: red"><br />这里注意：web.xml和xxx.tld这两个XML文件的头信息的版本匹配很重要，否则会导致页面报错找不到标签<br /></span><br /><br />3、创建标签处理程序类 HelloWorldTag（重写doStartTag和doEndTag方法）<br /><pre name="code" class="java">
package com.yd.mytag;

import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.tagext.TagSupport;
/**
 * TagSupport与BodyTagSupport的区别:
 * 主要看标签处理类是否要读取标签体的内容和改变标签体返回的内容，如果不需要就用TagSupport，否则就用BodyTagSupport
 * 用TagSupport实现的标签，都可以用BodyTagSupport来实现，因为BodyTagSupport继承了TagSupport 
 */
public class HelloWorldTag extends TagSupport {
	private static final long serialVersionUID = 3174234039143531070L;
	@Override
	public int doStartTag() throws JspException {//这个方法不用所以直接返回值
		return EVAL_BODY_INCLUDE;
	}
	@Override
	public int doEndTag() throws JspException {//重点在这个方法上
		try {
			pageContext.getOut().write("Hello World!");//标签的返回值  
		} catch (IOException ex) {
			throw new JspTagException("错误");
		}
		return EVAL_PAGE;
	}
}
</pre><br /><br /><span style="color: green"><br />补充：<br />doStartTag()方法是遇到标签开始时会呼叫的方法，其合法的返回值是EVAL_BODY_INCLUDE与SKIP_BODY,前者表示将显示标签间的文字，后者表示不显示标签间的文字<br />doEndTag()方法是在遇到标签结束时呼叫的方法，其合法的返回值是EVAL_PAGE与SKIP_PAGE，前者表示处理完标签后继续执行以下的JSP网页，后者是表示不处理接下来的JSP网页<br />doAfterBody(),这个方法是在显示完标签间文字之后呼叫的，其返回值有EVAL_BODY_AGAIN与SKIP_BODY，前者会再显示一次标签间的文字，后者则继续执行标签处理的下一步<br /><br />EVAL_BODY_INCLUDE：把Body读入存在的输出流中，doStartTag()函数可用 <br />EVAL_PAGE：继续处理页面，doEndTag()函数可用 <br />SKIP_BODY：忽略对Body的处理，doStartTag()和doAfterBody()函数可用 <br />SKIP_PAGE：忽略对余下页面的处理，doEndTag()函数可用 <br />EVAL_BODY_BUFFERED：申请缓冲区，由setBodyContent()函数得到的BodyContent对象来处理tag的body，如果类实现了BodyTag，那么doStartTag()可用，否则非法<br />EVAL_BODY_AGAIN：请求继续处理body，返回自doAfterBody()，这个返回值在你制作循环tag的时候是很有用的。 <br /><br />预定的处理顺序是：doStartTag()返回SKIP_BODY,doAfterBodyTag()返回SKIP_BODY,doEndTag()返回EVAL_PAGE. <br />如果继承了TagSupport之后，如果没有改写任何的方法，标签处理的执行顺序是：doStartTag() ->不显示文字 ->doEndTag()->执行接下来的网页<br />如果您改写了doStartTag(),则必须指定返回值，如果指定了EVAL_BODY_INCLUDE,则执行顺序是：doStartTag()->显示文字->doAfterBodyTag()->doEndTag()->执行下面的网页 <br /></span><br /><br />4、最终测试页面 hello.jsp<br /><pre name="code" class="java">
&lt;%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
&lt;%@ taglib uri="/tld/helloworld" prefix="mytag"%>&lt;!-- 在页面中加以声明 -->
&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
&lt;html>
  &lt;head>
    &lt;title>MyJSP&lt;/title>	
  &lt;/head>  
  &lt;body>
    &lt;h1>自定义标签:&lt;/h1>&lt;br>
	&lt;mytag:helloworld>&lt;/mytag:helloworld>
  &lt;/body>
&lt;/html>
</pre><br /><br />实例完成，HelloWorld再现江湖!!!
          <br/>
          <span style="color:red;">
            <a href="http://di201yao.javaeye.com/blog/187584#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 28 Apr 2008 15:51:47 +0800</pubDate>
        <link>http://di201yao.javaeye.com/blog/187584</link>
        <guid>http://di201yao.javaeye.com/blog/187584</guid>
      </item>
      <item>
        <title>Apache与Tomcat的安装与整合</title>
        <author>yaodi0818</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://di201yao.javaeye.com">yaodi0818</a>&nbsp;
          链接：<a href="http://di201yao.javaeye.com/blog/184019" style="color:red;">http://di201yao.javaeye.com/blog/184019</a>&nbsp;
          发表时间: 2008年04月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Apache和Tomcat的整合，原理及例子<br /><br />原理<br />tomcat为一个jsp的容器，apache为一个web server，两者之间通信通过worker进行（由Tomcat使用Server.xml文件中Connector的标签来定义其端口和协议），通过mod_jk的模块（由web服务器像apache、iis等使用）和Web Server通信。<br />通信协议有很多，其中jk2已经被抛弃了，现在就用jk就好了。<br />整个过程其实就是让apache的httpd.conf文件调用mod_jk.conf，mod_jk.conf调用workers.properties，最后配置虚拟主机。<br /><br />文件说明<br />mod_jk.conf<br />主要定义mod_jk模块的位置以及mod_jk模块的连接日志设置，还有定义worker.properties文件的位置。<br />worker.properties<br />定义worker的参数，主要是连接tomcat主机的地址和端口信息。如果Tomcat与apache不在同一台机器上，或者需要做多台机器上tomcat的负载均衡只需要更改workers.properties文件中的相应定义即可。<br /><br />第一部分：安装配置tomcat apache mod_jk j2sdk<br /><br />准备下载下列文件<br />Jdk1.4.2_08（1.5也可以，把JRE装在JDK目录下）<br />下载地址:  http://java.sun.com<br />tomcat 5.0.28<br />下载地址：http://jakarta.apache.org<br />apache 2.0.53<br />下载地址: http://httpd.apache.org<br />mod_jk-1.2.10-apache-2.0.53.so（根据Apache版本决定）<br />下载地址：http://archive.apache.org/dist/jakarta/tomcat-connectors/<br />把上面所有组件都安装到D:\Server目录下，这样也方便日常管理配置和将来移植到别的服务器上去。<br />1：安装j2sdk<br />安装到 D:\server\j2sdk\ 目录下，注意安装成系统服务<br />2: 安装tomcat <br />安装到D:\server\tomcat\目录下，注意安装成系统服务<br />可能遇到的问题<br />问题1: 在解析JSP页面时，提示无法找到java compiler<br />请拷贝 j2sdk\lib\tools.jar 到 tomcat\common\lib下面。<br />使用tomcat作为service启动后总是这样，当然用startup.bat脚本启动倒是完全正常。主要原因分析起来是以service方式启动的Tomcat无法读取JAVA_HOME 和CLASS_PATH等环境变量。<br />问题2：如何解决通过服务方式启动tomcat时log中提示ZoneInfo:d:\server\j2sdk\lib\zi\ZoneInfoMappings(系统找不到指定的路径。)<br />从d:\server\j2sdk\jre\lib目录拷贝所有文件放到 d:\server\j2sdk\lib\ ，jre\lib 中的文件和j2sdk\lib\ 中的文件没有一个重复的，不用担心会覆盖掉j2sdk\lib 中原有的任何文件。<br />3：安装apache 到 d:\server\ （会自动生成apache2文件夹）<br />配置 index.jsp 为默认页 配置 GB2312为默认语言<br />不只Apache的httpd.conf中定义了默认页面文件，连Tomcat的web.xml配置文件的结尾处也定义了默认页面文件，而且Tomcat中定义的的优先级还高于原有的Apache中所定义的默认页。<br />4：加入mod_jk连接模块 <br />拷贝 mod_jk-1.2.10-apache-2.0.53.so 到d:\server\apache2\modules\  改名为mod_jk.so<br />5: 修改apache的配置文件 <br />为了保持httpd.conf文件的简洁，把jk模块的配置放到单独的文件中来，就在httpd.conf中增加一行调用<br /><br />include D:\server\Apache2\conf\mod_jk.conf<br /><br />6：配置mod_jk.conf<br />请注意使用绝对路径<br />其实最关键的就是 第一条 第二条 和最后一条，如果要精简，就保留这三条内容就可以了。<br /><br /># Load mod_jk module<br />LoadModule jk_module modules/mod_jk.so<br /><br /># Where to find workers.properties<br />JkWorkersFile conf/workers.properties<br /><br /># Where to put jk logs<br />JkLogFile logs/mod_jk.log<br /><br /># Set the jk log level [debug/error/info]<br />JkLogLevel info<br /><br /># Select the log format<br />JkLogStampFormat \"[%a %b %d %H:%M:%S %Y] \"<br /><br /># JkOptions indicate to send SSL KEY SIZE， <br />JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories<br /><br /># JkRequestLogFormat set the request format <br />JkRequestLogFormat \"%w %V %T\"<br /><br /># Send servlet for context /examples to worker named ajp13 <br />#JkMount /servlet/* ajp13<br /><br /># Send JSPs for context /examples to worker named ajp13<br />JkMount /*.jsp ajp13<br /><br />上面这一行我们设置了了 /*.jsp ajp13 就是说把所有.jsp结尾的文件都由ajp13这个worker交给tomcat处理了，如果应用被映射为一个.do的URL，这样就会出错.解决方法是再添加如下一行：<br /><br />JkMount /*.do ajp13<br /><br />7:配置apache2\conf\workers.properties<br /><br />worker.list=ajp13 <br />worker.ajp13.port=8009 <br />worker.ajp13.host=localhost  #本机，若上面Tomcat主机不为localhost，作相应修改 <br />worker.ajp13.type=ajp13  #类型 <br />worker.ajp13.lbfactor=1  #代理数，不用修改<br /><br /><br />第二部分:虚拟主机的配置<br />举例配置2个vhost网站 一个是 localhost ，另一个是 www.ok.com <br />当然www.ok.com 是虚拟的，本地测试时，应该修改系统中的hosts文件，添加一行 127.0.0.1  www.ok.com<br />1：Apache 虚拟主机配置：<br />Httpd.conf文件最后添加<br /><br />include D:\server\Apache2\conf\vhost.conf<br /><br />而vhost.conf内容写<br /><br />NameVirtualHost *:80<br />&lt;VirtualHost *:80><br />ServerAdmin webmaster@localhost<br />DocumentRoot \"D:/server/Tomcat/webapps/ROOT\"<br />ServerName localhost<br />ErrorLog logs/localhost-error_log<br />CustomLog logs/localhost-access_log common<br />&lt;/VirtualHost><br /><br />&lt;VirtualHost *:80><br />ServerAdmin webmaster@dummy-host.example.com<br />DocumentRoot D:/server/www/<br />ServerName www.ok.com<br />ErrorLog logs/ok.com-error_log<br />CustomLog logs/ok.com-access_log common<br />&lt;Location /server-status>           # 这样我可以看到apache服务器状态<br />SetHandler server-status<br />Order deny，allow<br />Deny from all<br />Allow from localhost<br />Allow from www.ok.com<br />&lt;/Location><br />&lt;/VirtualHost><br /><br />2：Tomcat虚拟主机配置<br />添加新的www.ok.com 虚拟主机，在tomcat安装路径\conf\server.xml的最后，找到&lt;Engine>段，改为<br /><br />&lt;Engine><br />&lt;Host name=”localhost” ……><br />&lt;/Host><br /><br />&lt;Host name=\"www.ok.com\" debug=\"0\" appBase=\"D:/server/www/\" unpackWARs=\"true\" autoDeploy=\"true\" xmlValidation=\"false\" xmlNamespaceAware=\"false\"><br />&lt;Context path=\"\" docBase=\".\" /> <br />&lt;Logger className=\"org.apache.catalina.logger.FileLogger\" directory=\"logs\" prefix=\"ok.com_log.\" suffix=\".txt\" timestamp=\"true\" /> <br />&lt;/Host><br />&lt;/Engine><br /><br />3：测试虚拟主机效果<br />访问http://localhost/ 应该可以看到原来的tomcat默认页面。<br />写一个 index.jsp<br /><br />&lt;html><br />&lt;title><br />test jsp<br />&lt;/title><br />&lt;%out.println（\"Hello World!\"）;%><br />&lt;/html><br /><br />放在d:/server/www下面，访问 http://www.ok.com<br />页面显示Hello World! 就成功了<br /><br />第三部分，部分相关性能优化及其它问题<br />如何使用server版jvm ？<br />Jvm动态库有client和server两个版本，分别针对桌面应用和服务器应用做了相应的优化，client版本加 载速度较快，server版本加载速度较慢但运行起来较快。<br />在开始菜单 tomcat5 ->tomcat config的java属性中 有一项 jvm路径 指向server目录下的jvm就行了。<br />更改默认java.exe调用的jvm.dll，这个由jvm.cfg决定。<br />编辑%JAVA_HOME%\jre\lib\i386\jvm.cfg  <br />里面第一行写的是 -client 默认就是client版本 ，把第二行的-server KNOWN 放到第一行， 如下面所示<br /><br />-server KNOWN<br />-client KNOWN<br />-hotspot ALIASED_TO -client<br />-classic WARN<br />-native ERROR<br />-green ERROR <br /><br />改完保存，然后看看默认版本：<br />C:\java -version<br />java version \"1.4.2_07\"<br />Java（TM） 2 Runtime Environment， Standard Edition （build 1.4.2_07-b05）<br />Java HotSpot（TM） Server VM （build 1.4.2_07-b05， mixed mode）<br /><br />关于JAVA_HOME 与CATALINA_HOME、 CLASSPATH<br />ClassPath 网上有人说在j2sdk1.3开始就不需要配置了，而本例中实际是不需要配置JAVA_HOME和CATALINA_HOME的，因为tomcat 以service模式启动根本不认你的java_home，当然为了让你能够在命令行运行startup.bat时也能顺利启动Tomcat，可以配置也建议配置上JAVA_HOME 与CATALINA_HOME，ClassPath就免了吧，连Resin都不需要这个了。<br /><br />有关路径设置<br />Path=d:\server\jdk\bin;…… 放到最前，避免有多个jdk时的很多问题<br /><br />关于apache2在win平台上的一个小问题<br />可能apache的日志中常出现类似如下的提示<br />[error] （730038）An operation was attempted on something that is not a socket.: winnt_accept: AcceptEx failed. Attempting to recover. <br />这是由于apache 使用了微软的AcceptEx（）调用的缘故，禁用掉即可，此问题只会出现在win平台且apache的2.0.49和更高版本上，出现错误的大概原因是防火墙和防病毒软件所导致，导致结果也有好几种，像apache占用很高cpu资源或者网站页面无法打开。<br />解决方法修改d:\server\apache2\conf\httpd.conf中的mpm部分<br /><br />&lt;IfModule mpm_winnt.c><br />ThreadsPerChild 250<br />MaxRequestsPerChild  0<br />Win32DisableAcceptEx      #添加这一行即可，做过压力测试，对性能影响很小，可以忽略<br />&lt;/IfModule>
          <br/>
          <span style="color:red;">
            <a href="http://di201yao.javaeye.com/blog/184019#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 18 Apr 2008 10:32:04 +0800</pubDate>
        <link>http://di201yao.javaeye.com/blog/184019</link>
        <guid>http://di201yao.javaeye.com/blog/184019</guid>
      </item>
      <item>
        <title>用MyEclipse6.0.1的Database Explorer视图连接Oracle10g出现错误</title>
        <author>yaodi0818</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://di201yao.javaeye.com">yaodi0818</a>&nbsp;
          链接：<a href="http://di201yao.javaeye.com/blog/180664" style="color:red;">http://di201yao.javaeye.com/blog/180664</a>&nbsp;
          发表时间: 2008年04月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          提示错误：<br />ORA-00604：error occurred at recursive SQL level 1<br />ORA-12705:Cannot access NLS data files or invaid environment specifed<br /><br />    后来百度，只找到了一个类似的情况。他说的是要修改快捷方式为"E:\Program Files\MyEclipse-6.0M1\eclipse\eclipse.exe-vmargs-Duser.language=en_US-Xms128M-Xmx512M-XX:PermSize=64M-XX:MaxPermSize=128M-Dosgi.splashLocation="E:\Program Files\MyEclipse-6.0M1\myeclipse\eclipse\MyEclipseSplash.bmp""，只是在language=en后加上_US，这应该是在运行MyEclipse时的参数。但是改成这样老是提示说目标无效。<br />        <br />    我决定到它安装目录里找去，一定有个它启动时的配置文件。果然打开"D:\eclipse3.3\eclipse.ini"时，看到了<br /><br /><pre name="code" class="java">
-showsplash
com.genuitec.myeclipse.product
--launcher.XXMaxPermSize
256m
-vmargs
-Xms128m
-Xmx512m
-Duser.language=en
-XX:PermSize=128M 
-XX:MaxPermSize=256M
</pre><br /> <br />    我要找的就是它啦！！！<br /><br />     根据前边百度找到的tips，我在en后加上_US，保存，但是连接时，一样的错误！！！<br /><br />     根据提示，应该错误就是来自-Duser.language=en这一句了，干脆把它删了。<br /><br />     一试，成功了！！！<br /><br /><pre name="code" class="java">
-showsplash
com.genuitec.myeclipse.product
--launcher.XXMaxPermSize
256m
-vmargs
-Xms128m
-Xmx512m
-Duser.language=en                #这句要删掉
-XX:PermSize=128M 
-XX:MaxPermSize=256M
</pre>
          <br/>
          <span style="color:red;">
            <a href="http://di201yao.javaeye.com/blog/180664#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 09 Apr 2008 00:38:09 +0800</pubDate>
        <link>http://di201yao.javaeye.com/blog/180664</link>
        <guid>http://di201yao.javaeye.com/blog/180664</guid>
      </item>
      <item>
        <title>IT技术名词解释</title>
        <author>yaodi0818</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://di201yao.javaeye.com">yaodi0818</a>&nbsp;
          链接：<a href="http://di201yao.javaeye.com/blog/172270" style="color:red;">http://di201yao.javaeye.com/blog/172270</a>&nbsp;
          发表时间: 2008年03月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>
<table cellspacing="0" border="0" align="center" cellpadding="0" style="table-layout: fixed">
<tbody>
<tr>
<td height="23">&nbsp;</td>
</tr>
<tr>
<td style="word-wrap: break-word"><span class="news">
<table class="p2" bordercolor="#000000" border="1" align="center" width="570">
<tbody>
<tr align="center">
<td height="24" bgcolor="#fffdcc"><strong><span class="p1">名称</span></strong></td>
<td height="24" bgcolor="#fffdcc"><strong><span class="p1">英　文</span></strong></td>
<td height="24" bgcolor="#fffdcc"><strong><span class="p1">解　释</span></strong></td>
</tr>
<tr>
<td bgcolor="#ffffff" colspan="3"><a name="1"></a><strong>　互联网</strong>　　</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">ASP</td>
<td bgcolor="#e6e6e6">Application Service Provider</td>
<td bgcolor="#e6e6e6">应用服务供应商，为企业或团体提供计算机网络应用的开发、运行、维护等服务</td>
</tr>
<tr>
<td bgcolor="#ffffff">BBS</td>
<td bgcolor="#ffffff">Bulletin Board System</td>
<td bgcolor="#ffffff">电子布告栏系统，利用互联网进行信息传播、交流、讨论的一种形式</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">Browser</td>
<td bgcolor="#e6e6e6">　</td>
<td bgcolor="#e6e6e6">浏览器，指在互联网上查阅信息的装置</td>
</tr>
<tr>
<td bgcolor="#ffffff">CEINET</td>
<td bgcolor="#ffffff">China Economy Information NET</td>
<td bgcolor="#ffffff">中国经济信息网</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">CERNET</td>
<td bgcolor="#e6e6e6">China Education and Research NET</td>
<td bgcolor="#e6e6e6">中国教育科研网</td>
</tr>
<tr>
<td bgcolor="#ffffff">CHINAGBN</td>
<td bgcolor="#ffffff">China Golden Bridge NET</td>
<td bgcolor="#ffffff">中国金桥信息网</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">CHINANET</td>
<td bgcolor="#e6e6e6">　</td>
<td bgcolor="#e6e6e6">中国邮电部建设的公用计算机网</td>
</tr>
<tr>
<td bgcolor="#ffffff">CNNIC</td>
<td bgcolor="#ffffff">China Net Information Center</td>
<td bgcolor="#ffffff">中国互联网信息中心</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">CSTNET</td>
<td bgcolor="#e6e6e6">China Science and Technology NET</td>
<td bgcolor="#e6e6e6">中国科技网</td>
</tr>
<tr>
<td bgcolor="#ffffff">DNS</td>
<td bgcolor="#ffffff">Domain Name Server</td>
<td bgcolor="#ffffff">域名服务器，域名是互联网上设备地址的名称，域名服务器是用于解释每一个名称所对应的地址编码的计算机设备</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">E_mail</td>
<td bgcolor="#e6e6e6">Electronic Mail</td>
<td bgcolor="#e6e6e6">电子邮件</td>
</tr>
<tr>
<td bgcolor="#ffffff">Firewall</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">防火墙，为防止他人非法入侵网络内部的一种装置。</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">FTP</td>
<td bgcolor="#e6e6e6">File Transfer Protocol</td>
<td bgcolor="#e6e6e6">文件传输协议</td>
</tr>
<tr>
<td bgcolor="#ffffff">Gateway</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">网关，两个不同网络之间实现连接的设备。</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">Hacker</td>
<td bgcolor="#e6e6e6">　</td>
<td bgcolor="#e6e6e6">黑客，最初是指发现网络系统安全漏洞并进行修补的人，而现在多指利用系统安全漏洞对网络进行攻击破坏或窃取资料的人</td>
</tr>
<tr>
<td bgcolor="#ffffff">HomePage</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">主页，通过万维网(Web)进行信息查询的起始信息页</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">HTML</td>
<td bgcolor="#e6e6e6">Hypertext Markup Language</td>
<td bgcolor="#e6e6e6">超文本链接语言</td>
</tr>
<tr>
<td bgcolor="#ffffff">HTTP</td>
<td bgcolor="#ffffff">Hypertext Transfer Protocol</td>
<td bgcolor="#ffffff">超文本传输协议</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">ICP</td>
<td bgcolor="#e6e6e6">Internet Content Provider</td>
<td bgcolor="#e6e6e6">Internet内容提供商</td>
</tr>
<tr>
<td bgcolor="#ffffff">ICQ</td>
<td bgcolor="#ffffff">I seek you</td>
<td bgcolor="#ffffff">网上寻呼</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">Internet</td>
<td bgcolor="#e6e6e6">　</td>
<td bgcolor="#e6e6e6">国际互联网，因特网</td>
</tr>
<tr>
<td bgcolor="#ffffff">internet</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">互联网，泛指由多个计算机网络相互连接而成的一个网络</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">I Phone</td>
<td bgcolor="#e6e6e6">Internet Phone</td>
<td bgcolor="#e6e6e6">一种通过Internet进行语音通讯的技术</td>
</tr>
<tr>
<td bgcolor="#ffffff">IP电话</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">利用Internet技术传输话音信号的一种电话</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">IRC</td>
<td bgcolor="#e6e6e6">Internet Relay Chat</td>
<td bgcolor="#e6e6e6">Internet实时网上交谈系统</td>
</tr>
<tr>
<td bgcolor="#ffffff">ISP</td>
<td bgcolor="#ffffff">Internet Service Provider</td>
<td bgcolor="#ffffff">Internet服务提供商</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">MUD</td>
<td bgcolor="#e6e6e6">Multi-User Dungeon</td>
<td bgcolor="#e6e6e6">多用户网络游戏</td>
</tr>
<tr>
<td bgcolor="#ffffff">NII</td>
<td bgcolor="#ffffff">National Information Infrastructure</td>
<td bgcolor="#ffffff">国家信息基础结构，俗称信息高速公路</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">POP</td>
<td bgcolor="#e6e6e6">Post Office Protocol</td>
<td bgcolor="#e6e6e6">邮局协议</td>
</tr>
<tr>
<td bgcolor="#ffffff">Proxy Server</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">代理服务器，一种代表客户机转送服务请求的服务器，它也可以通过在送出信息内容前对其进行审查，从而在因特网和专用网之间提供防火墙安全性</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">PSP</td>
<td bgcolor="#e6e6e6">Platform Service Provider</td>
<td bgcolor="#e6e6e6">平台服务供应商</td>
</tr>
<tr>
<td bgcolor="#ffffff">Telnet</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">远程登录</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">UNINET</td>
<td bgcolor="#e6e6e6">　</td>
<td bgcolor="#e6e6e6">中国联通互联网</td>
</tr>
<tr>
<td bgcolor="#ffffff">URL</td>
<td bgcolor="#ffffff">Uniform Resource Locator</td>
<td bgcolor="#ffffff">网站地址</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">VST</td>
<td bgcolor="#e6e6e6">Virtual Space Teleconferencing</td>
<td bgcolor="#e6e6e6">虚拟空间会议</td>
</tr>
<tr>
<td bgcolor="#ffffff">Web</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">环球网</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">WWW</td>
<td bgcolor="#e6e6e6">World Wide Web</td>
<td bgcolor="#e6e6e6">万维网</td>
</tr>
<tr>
<td bgcolor="#ffffff" colspan="3"><a name="2"></a><strong>技术标准</strong>　　</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">Big5</td>
<td bgcolor="#e6e6e6">　</td>
<td bgcolor="#e6e6e6">台湾流行的汉字内码标准</td>
</tr>
<tr>
<td bgcolor="#ffffff">CMM</td>
<td bgcolor="#ffffff">Capacity Maturity Model</td>
<td bgcolor="#ffffff">软件过程能力成熟度模型，一种评测软件开发能力与质量的方法</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">DES</td>
<td bgcolor="#e6e6e6">Data Encryption Standard</td>
<td bgcolor="#e6e6e6">数据加密标准</td>
</tr>
<tr>
<td bgcolor="#ffffff">GB</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">国家标准汉字内码</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">GMT</td>
<td bgcolor="#e6e6e6">Greenwich Mean Time</td>
<td bgcolor="#e6e6e6">格林威治时间</td>
</tr>
<tr>
<td bgcolor="#ffffff">IEEE</td>
<td bgcolor="#ffffff">Institution of Electrical and Electronics</td>
<td bgcolor="#ffffff">电气和电子工程师学会（美国）</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">ISO</td>
<td bgcolor="#e6e6e6">International Standardization Organization</td>
<td bgcolor="#e6e6e6">国际标准化组织</td>
</tr>
<tr>
<td bgcolor="#ffffff">ISO 9000</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">一种质量管理标准</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">JPEG</td>
<td bgcolor="#e6e6e6">Joint Photographic Experts Group</td>
<td bgcolor="#e6e6e6">联合图象专家组规范，一种图象压缩标准</td>
</tr>
<tr>
<td bgcolor="#ffffff">MP3</td>
<td bgcolor="#ffffff">MPEGAudioLayer3</td>
<td bgcolor="#ffffff">一种音乐格式，它能够将CD品质的数字录音压缩成原来的1/12大小，令其容易存储和在网上传输</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">MPEG</td>
<td bgcolor="#e6e6e6">Motion Picture Experts Group</td>
<td bgcolor="#e6e6e6">一种活动图象和声音的压缩标准，其中MPEG1是最常用的，为VCD所采用，MPEG2则为DVD所采用</td>
</tr>
<tr>
<td bgcolor="#ffffff">OSI</td>
<td bgcolor="#ffffff">Open System Interconnect Reference Model</td>
<td bgcolor="#ffffff">开放系统互连，用于各种型号计算机之间通讯的国际标准</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">PCMCIA</td>
<td bgcolor="#e6e6e6">Personal Computer Memory Card International Association</td>
<td bgcolor="#e6e6e6">个人计算机存储卡国际协会</td>
</tr>
<tr>
<td bgcolor="#ffffff">PnP</td>
<td bgcolor="#ffffff">Plug and Play</td>
<td bgcolor="#ffffff">即插即用</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">PPP</td>
<td bgcolor="#e6e6e6">Peer-Peer Protocol</td>
<td bgcolor="#e6e6e6">端对端协议</td>
</tr>
<tr>
<td bgcolor="#ffffff">SMTP</td>
<td bgcolor="#ffffff">Simple Message Transfer Protocol</td>
<td bgcolor="#ffffff">用于电子邮件的传输协议</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">TCP/IP</td>
<td bgcolor="#e6e6e6">Transfer Control Protocol/Internet Protocol</td>
<td bgcolor="#e6e6e6">传输控制协议/Internet协议，目前Internet上正使用着的、最流行的网际互联协议</td>
</tr>
<tr>
<td bgcolor="#ffffff">WAP</td>
<td bgcolor="#ffffff">Wireless Application Protocol</td>
<td bgcolor="#ffffff">无线应用协议，使移动电话能访问Internet的协议</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">X.25</td>
<td bgcolor="#e6e6e6">　</td>
<td bgcolor="#e6e6e6">用于计算机接入分组交换网的标准</td>
</tr>
<tr>
<td bgcolor="#ffffff">X.400</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">用于国际电子函件分布系统的标准</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">X.500</td>
<td bgcolor="#e6e6e6">　</td>
<td bgcolor="#e6e6e6">Internet上一种目录服务标准，用于查询检索信息方面</td>
</tr>
<tr>
<td bgcolor="#ffffff" colspan="3"><a name="3"></a><strong>多媒体</strong>　　</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">AOD</td>
<td bgcolor="#e6e6e6">Audial-On-Demand</td>
<td bgcolor="#e6e6e6">音频点播</td>
</tr>
<tr>
<td bgcolor="#ffffff">CD</td>
<td bgcolor="#ffffff">Compact Disk</td>
<td bgcolor="#ffffff">光盘</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">DAB</td>
<td bgcolor="#e6e6e6">　</td>
<td bgcolor="#e6e6e6">数字音频广播</td>
</tr>
<tr>
<td bgcolor="#ffffff">DVB,DVB-T</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">数字视频广播，地面数字视频广播</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">DVD</td>
<td bgcolor="#e6e6e6">Digital Video Disk</td>
<td bgcolor="#e6e6e6">数字化视频光盘</td>
</tr>
<tr>
<td bgcolor="#ffffff">LD</td>
<td bgcolor="#ffffff">Laser Disc</td>
<td bgcolor="#ffffff">激光视盘</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">VCD</td>
<td bgcolor="#e6e6e6">Video Compact Disk</td>
<td bgcolor="#e6e6e6">视频高密光盘</td>
</tr>
<tr>
<td bgcolor="#ffffff">VOD</td>
<td bgcolor="#ffffff">Video-On-Demand</td>
<td bgcolor="#ffffff">视频点播</td>
</tr>
<tr>
<td bgcolor="#e6e6e6" colspan="3"><a name="4"></a><strong>技术应用　　</strong></td>
</tr>
<tr>
<td bgcolor="#ffffff">CAD</td>
<td bgcolor="#ffffff">Computer Aided Design</td>
<td bgcolor="#ffffff">计算机辅助设计</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">CAE</td>
<td bgcolor="#e6e6e6">Computer Aided Education</td>
<td bgcolor="#e6e6e6">计算机辅助教育</td>
</tr>
<tr>
<td bgcolor="#ffffff">CAI</td>
<td bgcolor="#ffffff">Computer Aided Instruction</td>
<td bgcolor="#ffffff">计算机辅助教育</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">CAM</td>
<td bgcolor="#e6e6e6">Computer Aided Management</td>
<td bgcolor="#e6e6e6">计算机辅助管理</td>
</tr>
<tr>
<td bgcolor="#ffffff">CAPP</td>
<td bgcolor="#ffffff">Computer Aided Process planning　</td>
<td bgcolor="#ffffff">计算机工艺辅助设计</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">CAQ</td>
<td bgcolor="#e6e6e6">computer Aided Quality</td>
<td bgcolor="#e6e6e6">计算机辅助质量管理</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">CIMS</td>
<td bgcolor="#e6e6e6">Computer Integrated Manufacture System</td>
<td bgcolor="#e6e6e6">计算机集成制造系统</td>
</tr>
<tr>
<td bgcolor="#ffffff">&nbsp;</td>
<td bgcolor="#ffffff">&nbsp;</td>
<td bgcolor="#ffffff">&nbsp;</td>
</tr>
<tr>
<td bgcolor="#ffffff">EAI</td>
<td bgcolor="#ffffff">Enterprise Application Integrated</td>
<td bgcolor="#ffffff">企业应用集成</td>
</tr>
<tr>
<td bgcolor="#ffffff">EMS</td>
<td bgcolor="#ffffff">Electronic Mail Service/Express Mail Service</td>
<td bgcolor="#ffffff">电子邮件服务/邮政特快专递</td>
</tr>
<tr>
<td bgcolor="#ffffff">GIS</td>
<td bgcolor="#ffffff">Geographic Information System</td>
<td bgcolor="#ffffff">地理信息系统</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">MIS</td>
<td bgcolor="#e6e6e6">Management Information System</td>
<td bgcolor="#e6e6e6">管理信息系统</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">OA</td>
<td bgcolor="#e6e6e6">Office Automation</td>
<td bgcolor="#e6e6e6">办公自动化</td>
</tr>
<tr>
<td bgcolor="#ffffff" colspan="3"><a name="5"></a><strong>网络通讯技术</strong>　　</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">ADSL</td>
<td bgcolor="#e6e6e6">Asymmetrical Digital Subscriber Loop</td>
<td bgcolor="#e6e6e6">非对称数字用户环线，一种通过双绞线(如电话线)高速上网的技术</td>
</tr>
<tr>
<td bgcolor="#ffffff">ATM</td>
<td bgcolor="#ffffff">Asynchronous Transfer Mode</td>
<td bgcolor="#ffffff">异步传输模式，一种高速通讯传输技术，主要用于骨干网</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">CDMA</td>
<td bgcolor="#e6e6e6">Code Division Multiple Access</td>
<td bgcolor="#e6e6e6">码分多路访问</td>
</tr>
<tr>
<td bgcolor="#ffffff">CSCW</td>
<td bgcolor="#ffffff">Computer Supported Cooperative Work</td>
<td bgcolor="#ffffff">计算机协同工作，通过计算机网，多个人在不同地方协同开展共同的工作</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">DDN</td>
<td bgcolor="#e6e6e6">Digital Data Network</td>
<td bgcolor="#e6e6e6">数字数据网，一种常用的通讯专线传输方式</td>
</tr>
<tr>
<td bgcolor="#ffffff">DWDM</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">密集波分复用，新近发展的一种高速通讯传输技术</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">Extranet</td>
<td bgcolor="#e6e6e6">　</td>
<td bgcolor="#e6e6e6">外联网，与外部相关单位联成网络的一种称谓</td>
</tr>
<tr>
<td bgcolor="#ffffff">FDDI</td>
<td bgcolor="#ffffff">Fiber Distributed Data Interface</td>
<td bgcolor="#ffffff">光纤分布式数据接口，一种光纤联网形式</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">FR</td>
<td bgcolor="#e6e6e6">Frame Relay</td>
<td bgcolor="#e6e6e6">帧中继，一种通讯方式</td>
</tr>
<tr>
<td bgcolor="#ffffff">GSM</td>
<td bgcolor="#ffffff">Global System for Mobile Communication </td>
<td bgcolor="#ffffff">全球移动通讯系统</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">HDSL</td>
<td bgcolor="#e6e6e6">High Digital Subscriber Loop</td>
<td bgcolor="#e6e6e6">高速数字用户环线，一种高速率连接用户上网的技术</td>
</tr>
<tr>
<td bgcolor="#ffffff">HFC</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">混合光纤同轴，一种将同轴电缆与光纤连接的技术</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">HUB</td>
<td bgcolor="#e6e6e6">　</td>
<td bgcolor="#e6e6e6">集线器，是把多个用户连接起来，共同使用某条通讯线路的设备</td>
</tr>
<tr>
<td bgcolor="#ffffff">Intranet</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">内联网，内部网，利用与Internet相同技术进行内部联网的组网形式</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">ISDN</td>
<td bgcolor="#e6e6e6">Integrated Services Digital Network</td>
<td bgcolor="#e6e6e6">综合业务数字网，一种可以同时传送话音、数据、图象的通讯方式</td>
</tr>
<tr>
<td bgcolor="#ffffff">LAN</td>
<td bgcolor="#ffffff">Local Area Network</td>
<td bgcolor="#ffffff">局域网，本地网</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">NC</td>
<td bgcolor="#e6e6e6">Network Computer</td>
<td bgcolor="#e6e6e6">网络计算机</td>
</tr>
<tr>
<td bgcolor="#ffffff">PSTN</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">公共电话交换网</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">SDH</td>
<td bgcolor="#e6e6e6">　</td>
<td bgcolor="#e6e6e6">同步数字系列，一种高速通讯传输方式</td>
</tr>
<tr>
<td bgcolor="#ffffff">VLAN</td>
<td bgcolor="#ffffff">Virtual Local Area Network</td>
<td bgcolor="#ffffff">虚拟局域网</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">VPN</td>
<td bgcolor="#e6e6e6">Virtual Private Network</td>
<td bgcolor="#e6e6e6">虚拟专用网</td>
</tr>
<tr>
<td bgcolor="#ffffff">WAN</td>
<td bgcolor="#ffffff">Wide Area Network</td>
<td bgcolor="#ffffff">广域网</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">WDM</td>
<td bgcolor="#e6e6e6">Wavelength-Division Multiplexer</td>
<td bgcolor="#e6e6e6">波长分割多路复用，简称波分复用，新近发展的一种高速通讯技术</td>
</tr>
<tr>
<td bgcolor="#ffffff">xDSL</td>
<td bgcolor="#ffffff">Digital Subscriber Loop</td>
<td bgcolor="#ffffff">数字用户环线，是ADSL、HDSL等技术的泛称</td>
</tr>
<tr>
<td bgcolor="#e6e6e6" colspan="3"><a name="6"></a><strong>电子商务</strong>　　</td>
</tr>
<tr>
<td bgcolor="#ffffff">AtoA,A2A</td>
<td bgcolor="#ffffff">Any to Any</td>
<td bgcolor="#ffffff">电子商务的一种形式：任意对任意，这里的&ldquo;2&rdquo;被用来代表英文&ldquo;to&rdquo;，因&ldquo;2&rdquo;与&ldquo;to&rdquo;的英文发音相同，如下同</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">BtoC，B2C</td>
<td bgcolor="#e6e6e6">Business to Customer</td>
<td bgcolor="#e6e6e6">电子商务的一种形式：商家对个人客户</td>
</tr>
<tr>
<td bgcolor="#ffffff">BtoB，B2B</td>
<td bgcolor="#ffffff">Business to Business</td>
<td bgcolor="#ffffff">电子商务的一种形式：商家对商家</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">CA</td>
<td bgcolor="#e6e6e6">Certificate Authority</td>
<td bgcolor="#e6e6e6">电子商务中的身份认证</td>
</tr>
<tr>
<td bgcolor="#ffffff">CRM</td>
<td bgcolor="#ffffff">Customer Relations Management</td>
<td bgcolor="#ffffff">客户关系管理</td>
</tr>
<tr>
<td bgcolor="#ffffff">E-B</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">电子商业</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">EC</td>
<td bgcolor="#e6e6e6">Electronic Commerce</td>
<td bgcolor="#e6e6e6">电子商务</td>
</tr>
<tr>
<td bgcolor="#ffffff">EDI</td>
<td bgcolor="#ffffff">Electronic Data Interchange </td>
<td bgcolor="#ffffff">电子数据交换</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">ERP</td>
<td bgcolor="#e6e6e6">Enterprise Resource Planning</td>
<td bgcolor="#e6e6e6">现代企业资源计划管理，由MRPII的发展而成</td>
</tr>
<tr>
<td bgcolor="#ffffff">MRP</td>
<td bgcolor="#ffffff">Material Request Planning</td>
<td bgcolor="#ffffff">物料需求计划</td>
</tr>
<tr>
<td bgcolor="#ffffff">MRPII</td>
<td bgcolor="#ffffff">Manufacturing Resource Planning</td>
<td bgcolor="#ffffff">制造企业资源计划</td>
</tr>
<tr>
<td bgcolor="#ffffff">MRPII</td>
<td bgcolor="#ffffff">Manufacturing Resource Planning II</td>
<td bgcolor="#ffffff">生产资源计划管理</td>
</tr>
<tr>
<td bgcolor="#ffffff">SCM</td>
<td bgcolor="#ffffff">Supply Chain Management</td>
<td bgcolor="#ffffff">供应链管理</td>
</tr>
<tr>
<td colspan="3"><strong><span style="color: #006699;"><br />补充说明：</span></strong><br /><br />　　<span style="color: #006699;">MRP、MRPII和ERP，是企业管理信息系统发展的不同阶段。MRP主要对制造环节中的物流进行管理，使企业达到"既要保证生产又要控制库存"的目的；而MRPII则集成了物流和资金流，将人、财、物、时间等各种资源进行周密计划，合理利用，以提高企业的竞争力；ERP的概念则由Gartner Group率先提出，它将供应链、企业业务流程和信息流程都囊括其中。由于ERP的概念流传最广，现在已经成为企业管理信息系统的代名词。<br /></span></td>
</tr>
<tr>
<td bgcolor="#e6e6e6" colspan="3"><a name="7"></a><strong>计算机硬件</strong>　　</td>
</tr>
<tr>
<td bgcolor="#ffffff">CABLE MODEM</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">电缆Modem，使用有线电视同轴电缆上网的一种连接与转换设备</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">CD-ROM</td>
<td bgcolor="#e6e6e6">Compact Disc Read-only Memory</td>
<td bgcolor="#e6e6e6">光盘只读存储器，也称光驱</td>
</tr>
<tr>
<td bgcolor="#ffffff">CMOS</td>
<td bgcolor="#ffffff">Complementary Metal Oxide Semiconductor</td>
<td bgcolor="#ffffff">互补金属氧化物半导体，计算机里的CMOS用于保存其最基本的设置</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">CPU</td>
<td bgcolor="#e6e6e6">Central Processing Unit</td>
<td bgcolor="#e6e6e6">中央处理器，是计算机的核心部分</td>
</tr>
<tr>
<td bgcolor="#ffffff">FD</td>
<td bgcolor="#ffffff">Floppy Disk</td>
<td bgcolor="#ffffff">软盘驱动器，简称软驱</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">HD</td>
<td bgcolor="#e6e6e6">Hard Disk</td>
<td bgcolor="#e6e6e6">硬盘</td>
</tr>
<tr>
<td bgcolor="#ffffff">IC</td>
<td bgcolor="#ffffff">Integrated Circuit</td>
<td bgcolor="#ffffff">集成电路</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">LCD</td>
<td bgcolor="#e6e6e6">Liquid Crystal Display</td>
<td bgcolor="#e6e6e6">液晶显示器</td>
</tr>
<tr>
<td bgcolor="#ffffff">MODEM</td>
<td bgcolor="#ffffff">Modulator-Demodulator</td>
<td bgcolor="#ffffff">调制解调器，用于普通电话拨号上网</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">PDA</td>
<td bgcolor="#e6e6e6">Personal Digital Assistant</td>
<td bgcolor="#e6e6e6">个人数字助理，一种小型的便于个人携带的电子存储记录设备</td>
</tr>
<tr>
<td bgcolor="#ffffff">RAM</td>
<td bgcolor="#ffffff">Random Access Memory</td>
<td bgcolor="#ffffff">随机存储内存，计算机的内部记忆装置</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">UPS</td>
<td bgcolor="#e6e6e6">Uninterruptable Power Source</td>
<td bgcolor="#e6e6e6">不间断电源，在突然停电时，能够保证一段时间的电源稳定提供</td>
</tr>
<tr>
<td bgcolor="#ffffff">VLSI</td>
<td bgcolor="#ffffff">Very Large Scale Integration</td>
<td bgcolor="#ffffff">超大规模集成电路</td>
</tr>
<tr>
<td bgcolor="#e6e6e6" colspan="3"><a name="8"></a><strong>计算机软件</strong>　　</td>
</tr>
<tr>
<td bgcolor="#ffffff">AutoCAD</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">著名的三维辅助设计软件,为美国Autodesk公司出品</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">DB</td>
<td bgcolor="#e6e6e6">Data Base</td>
<td bgcolor="#e6e6e6">数据库</td>
</tr>
<tr>
<td bgcolor="#ffffff">Excel</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">微软公司生产的表格处理软件</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">GUI</td>
<td bgcolor="#e6e6e6">Graphic User Interface</td>
<td bgcolor="#e6e6e6">图形用户界面</td>
</tr>
<tr>
<td bgcolor="#ffffff">IE</td>
<td bgcolor="#ffffff">Internet Explorer</td>
<td bgcolor="#ffffff">微软公司开发的一种浏览软件</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">Java</td>
<td bgcolor="#e6e6e6">　</td>
<td bgcolor="#e6e6e6">由SUN公司首创的编程语言，用于编制面向网络的小应用程序</td>
</tr>
<tr>
<td bgcolor="#ffffff">LINUX</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">一种可免费使用的UNIX系统，运行于一般的PC机上</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">ORACLE</td>
<td bgcolor="#e6e6e6">　</td>
<td bgcolor="#e6e6e6">美国ORACLE公司, 或其生产的数据库产品</td>
</tr>
<tr>
<td bgcolor="#ffffff">Photoshop</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">著名的图象处理软件, 为美国ADOBE公司出品</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">PowerPoint</td>
<td bgcolor="#e6e6e6">　</td>
<td bgcolor="#e6e6e6">微软公司开发的用于制作幻灯片和简报的软件</td>
</tr>
<tr>
<td bgcolor="#ffffff">UNIX</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">一种多用户的计算机操作系统</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">VRML</td>
<td bgcolor="#e6e6e6">Virtual Reality Modeling Language</td>
<td bgcolor="#e6e6e6">虚拟现实建模语言</td>
</tr>
<tr>
<td bgcolor="#ffffff">Windows98</td>
<td bgcolor="#ffffff">　</td>
<td bgcolor="#ffffff">微软公司开发的&ldquo;视窗&rdquo;操作系统</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">Word</td>
<td bgcolor="#e6e6e6">　</td>
<td bgcolor="#e6e6e6">微软公司开发的文字处理软件</td>
</tr>
<tr>
<td bgcolor="#ffffff" colspan="3"><a name="9"></a><strong>其他</strong>　　</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">bps</td>
<td bgcolor="#e6e6e6">bits per second</td>
<td bgcolor="#e6e6e6">通讯传输速率表示单位：比特(位)/秒</td>
</tr>
<tr>
<td bgcolor="#ffffff">CEO</td>
<td bgcolor="#ffffff">Chief Executive Officer</td>
<td bgcolor="#ffffff">执行总裁</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">CIO</td>
<td bgcolor="#e6e6e6">Chief Information Officer</td>
<td bgcolor="#e6e6e6">信息主管官</td>
</tr>
<tr>
<td bgcolor="#ffffff">FAQ</td>
<td bgcolor="#ffffff">Frequently Asked Questions</td>
<td bgcolor="#ffffff">常见问题</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">FAX</td>
<td bgcolor="#e6e6e6">　</td>
<td bgcolor="#e6e6e6">传真</td>
</tr>
<tr>
<td bgcolor="#ffffff">IM</td>
<td bgcolor="#ffffff">Instant Messaging</td>
<td bgcolor="#ffffff">即时信息</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">IT</td>
<td bgcolor="#e6e6e6">Information Technology</td>
<td bgcolor="#e6e6e6">信息技术</td>
</tr>
<tr>
<td bgcolor="#ffffff">NASDAQ</td>
<td bgcolor="#ffffff">National Association of Securities Dealers Automated Quotations</td>
<td bgcolor="#ffffff">纳斯达克(全美证券交易商协会自动报价系统)</td>
</tr>
<tr>
<td bgcolor="#e6e6e6">OEM</td>
<td bgcolor="#e6e6e6">Original Equipment Manufacture</td>
<td bgcolor="#e6e6e6">原始设备制造</td>
</tr>
<tr>
<td bgcolor="#ffffff">SQL</td>
<td bgcolor="#ffffff">Structured Query Language</td>
<td bgcolor="#ffffff">结构化查询语言</td>
</tr>
</tbody>
</table>
</span></td>
</tr>
</tbody>
</table>
</p>
          <br/>
          <span style="color:red;">
            <a href="http://di201yao.javaeye.com/blog/172270#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 16 Mar 2008 02:18:58 +0800</pubDate>
        <link>http://di201yao.javaeye.com/blog/172270</link>
        <guid>http://di201yao.javaeye.com/blog/172270</guid>
      </item>
      <item>
        <title>JSF(Java Server Faces)学习日记</title>
        <author>yaodi0818</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://di201yao.javaeye.com">yaodi0818</a>&nbsp;
          链接：<a href="http://di201yao.javaeye.com/blog/165029" style="color:red;">http://di201yao.javaeye.com/blog/165029</a>&nbsp;
          发表时间: 2008年02月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          什么是JSF:<br />    JSF是一种事件驱动型的组件模型,以某个组件为单位，核心技术为FacesServlet.<br />    JSF(Java Server Faces)是基于MVC模式的新一代web framework,是一套JCP支持的新一代web开发规范,各个厂商可以定义自己的JSF实现,使开发更加容易.<br />JSF的优点: <br />(1)基于MVC,可以有效的将数据显示与业务逻辑分开处理.<br />(2)有功能强大丰富的web开发组件,可以可视化的设计开发web应用程序.<br />(3)事件驱动,这是JSF比较重要的特点,这种机制大大减少了开发时间,提高了开发效率.<br />一个简单的JSF应用（实现两数相加，显示结果）：<br />文件列表：<br />add.jsp<br />result.jsp<br />web.xml<br />faces-config.xml<br />BackBean.java<br />AddBean.java<br />调试环境:<br />Apache Tomcat 6.0.13 + Eclipse 3.3.1 + jsf-1.2_04<br />步骤如下:<br />(1)新建web项目JSFLangsin<br />(2)在项目中添加JSF的几个库文件(jsf-*.jar)<br />WEB-INF/lib/commons-beanutils.jar <br />WEB-INF/lib/commons-collections.jar <br />WEB-INF/lib/commons-digester.jar <br />WEB-INF/lib/commons-logging-api.jar <br />WEB-INF/lib/jsf-api.jar <br />WEB-INF/lib/jsf-ri.jar <br />WEB-INF/lib/jstl.jar <br />WEB-INF/lib/standard.jar <br />(3)编写javaBean<br /><pre name="code" class="java">
package com.langsin;

public class BackBean {
	private double firstNumber=0.0;
	private double secondNumber=0.0;
	private double result;
	
	private AddBean addbean=new AddBean();
	public double getFirstNumber() {
		return firstNumber;
	}
	public void setFirstNumber(double firstNumber) {
		this.firstNumber = firstNumber;
	}
	public double getResult() {
		return result;
	}
	public void setResult(double result) {
		this.result = result;
	}
	public double getSecondNumber() {
		return secondNumber;
	}
	public void setSecondNumber(double secondNumber) {
		this.secondNumber = secondNumber;
	}
         //这里该方法要定义为String类型,返回的字符串就是在faces-config.xml中定义的navigation-rule -> navigation-case - > success,JSF也就是通过这个来找到result.jsp页面进行调度的.
	public String add()
	{
		result=addbean.add(firstNumber, secondNumber);
		return "success";
	}
        
}
</pre><br />(4)编写后台Bean<br /><pre name="code" class="java">
package com.langsin;

public class AddBean {
	public double add(double a,double b)
	{
		return a+b;
	}

}
</pre><br />(5)编写相加的jsp页面<br />    JSF跟strtus一样,有自己的一套tab library,它通过解析这些tag来实现对JSF程序的控制.目前,JSF有2套tab:jsf_core.tld和html_basic.tld,从名字上可以看出来,第一个主要是核心JSF程序使用的tag,包括view(所有的JSF程序都必须有的tag),loadBundle(资源相关),validator(校验相关)等等.第二个是web页面设计相关的的一些html组件tag,这些组件,可以组成普通或者复杂的web应用程序.<br /><pre name="code" class="java">
&lt;%@ page language="java" pageEncoding="gbk"%>
&lt;%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
&lt;%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

&lt;html>
&lt;head>
	&lt;title>&lt;/title>
&lt;/head>
  
&lt;body>
	&lt;f:view>
	&lt;h:form>
	&lt;h:panelGrid columns="3">
	
	&lt;h:outputLabel value="请输入第一个数字"/>
	
	&lt;h:inputText id="firstNumber" value="#{mybean.firstNumber}"/>
	&lt;h:message for="firstNumber"/>
		
	&lt;h:outputLabel value="请输入第二个数字"/>
	
	&lt;h:inputText id="secondNumber" value="#{mybean.secondNumber}"/>
	&lt;h:message for="secondNumber"/>
	&lt;/h:panelGrid>
	&lt;h:commandButton value="加" action="#{mybean.add}"/>
	&lt;/h:form>
	&lt;/f:view>
&lt;/body>
&lt;/html>
</pre><br />(6)编写显示结果的jsp页面<br /><pre name="code" class="java">
&lt;%@ page language="java" pageEncoding="gbk"%>
&lt;%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
&lt;%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
&lt;html>
&lt;head>	
	&lt;title>&lt;/title>
&lt;/head>
  
&lt;body>
	&lt;f:view>
计算结果是:&lt;h:outputText value="#{mybean.result}"/>
	&lt;/f:view>
&lt;/body>
&lt;/html>
</pre><br />(7)修改web.xml文件<br />    JSF是一个标准的web framework,是以Servlet为调度核心,因此,如果想正常运行JSF程序,必须把JSF作为servlet来运行,后缀名为:.faces<br /><pre name="code" class="java">
&lt;?xml version="1.0" encoding="UTF-8"?>
&lt;web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  &lt;context-param>
    &lt;param-name>javax.faces.CONFIG_FILES&lt;/param-name>
    &lt;param-value>/WEB-INF/faces-config.xml&lt;/param-value>
  &lt;/context-param>
  &lt;servlet>
    &lt;servlet-name>Faces Servlet&lt;/servlet-name>
    &lt;servlet-class>javax.faces.webapp.FacesServlet&lt;/servlet-class>
    &lt;load-on-startup>0&lt;/load-on-startup>
  &lt;/servlet>
  &lt;servlet-mapping>
    &lt;servlet-name>Faces Servlet&lt;/servlet-name>
    &lt;url-pattern>*.faces&lt;/url-pattern>
  &lt;/servlet-mapping>
&lt;/web-app>
</pre><br />(8)添加JSF配置文件faces-config.xml<br />    JSF是作为Servlet来运行,也有自己的配置文件,这个文件中配置了JSF正确运行需要的一些信息,包括managed-bean(将JSF web页面中需要的bean以managed的方式配置起来,这样,就可以在web 页面中直接调用该bean 的属性和方法),navigation-rule(JSF页面之间的流转/调度配置).<br /><pre name="code" class="java">
&lt;?xml version="1.0" encoding="UTF-8"?>
&lt;!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">

&lt;faces-config >
	&lt;managed-bean>
		&lt;managed-bean-name>mybean&lt;/managed-bean-name>
		&lt;managed-bean-class>com.langsin.BackBean&lt;/managed-bean-class>
		&lt;managed-bean-scope>session&lt;/managed-bean-scope>
	&lt;/managed-bean>
	
	&lt;navigation-rule>
		&lt;from-view-id>/add.jsp&lt;/from-view-id>
		&lt;navigation-case>
			&lt;from-outcome>success&lt;/from-outcome>
			&lt;to-view-id>/result.jsp&lt;/to-view-id>
		&lt;/navigation-case>
	&lt;/navigation-rule>
&lt;/faces-config>
</pre><br />(9)O了，让“猫”跑起来！！！（注意：后缀以不是jsp，改为faces）<br />    这里提一下,JSF最主要的特性之一,事件驱动,就是通过html组件来体现的,在定义了一个按钮以后,只要定义一下它的action,就可以直接的将这个动作映射到后台的某个managed-bean的某个方法上,这样,大大减少了原来中间层的javascript调用,也就缩短了开发时间,并且,也减少了中间出错的几率.
          <br/>
          <span style="color:red;">
            <a href="http://di201yao.javaeye.com/blog/165029#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 26 Feb 2008 11:58:36 +0800</pubDate>
        <link>http://di201yao.javaeye.com/blog/165029</link>
        <guid>http://di201yao.javaeye.com/blog/165029</guid>
      </item>
      <item>
        <title>双色球小程序</title>
        <author>yaodi0818</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://di201yao.javaeye.com">yaodi0818</a>&nbsp;
          链接：<a href="http://di201yao.javaeye.com/blog/164919" style="color:red;">http://di201yao.javaeye.com/blog/164919</a>&nbsp;
          发表时间: 2008年02月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          中了500万，一定要买我这个程序呀！！！哈哈<br /><pre name="code" class="java">
/**
 * Create time 2008-6-22 下午02:08:46
 */
package com.mxd.lottery.app;

import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;

/**
 * &lt;p>Title: Demo&lt;/p>
 * &lt;p>Description: &lt;/p>
 *
 * @author yaodi
 * @version 1.0
 */
public class Lottery {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		System.out.println("双色球 6/33+1/16");
		Date date=new Date();
		String id=new SimpleDateFormat("yyyyMMddHHmm").format(date);
		System.out.println("第" + id + "期");
		Random random = new Random();
		Set result = new HashSet();        
        System.out.print("红球号码：");
        while (result.size() &lt; 6)
        	result.add(new Integer((int) (1 + 33 * Math.random())));
        	Object[] objArray = result.toArray();
        	Arrays.sort(objArray);        
        for (Object red : objArray){
        	System.out.print(red + " ");
        }			
        System.out.println("");
        System.out.print("蓝球号码：");   
        int blue = random.nextInt(15) + 1;   
        System.out.println(blue);
	}
}

</pre>
          <br/>
          <span style="color:red;">
            <a href="http://di201yao.javaeye.com/blog/164919#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 25 Feb 2008 22:58:28 +0800</pubDate>
        <link>http://di201yao.javaeye.com/blog/164919</link>
        <guid>http://di201yao.javaeye.com/blog/164919</guid>
      </item>
      <item>
        <title>struts2.0简单的例子</title>
        <author>yaodi0818</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://di201yao.javaeye.com">yaodi0818</a>&nbsp;
          链接：<a href="http://di201yao.javaeye.com/blog/164144" style="color:red;">http://di201yao.javaeye.com/blog/164144</a>&nbsp;
          发表时间: 2008年02月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Struts2.0是struts1.0和WebWork2.2合并版本，集成了两大流行MVC框架的优点，对struts框架来说是一个大的提升，同时也更大程度地简化了开发人员的开发过程。<br />这个例子实现了一个简单的登陆效果，操作步骤如下: <br />1、首先，要从apache网站上下载struts2.0.11的完整包（http://struts.apache.org/downloads.html），解压后需要找到下列几个文件：<br />commons-logging-1.0.4.jar<br />freemarker-2.3.8.jar<br />ognl-2.6.11.jar<br />struts2-core-2.0.11.jar<br />xwork-2.0.4.jar<br />2、然后，我们就开始做第一个例子，新建web项目struts2<br />3、将上面列举的jar文件拷贝到项目struts2\WEB-INF\lib中，或添加自己的strust2.0用户库<br />4、新建login.jsp<br /><pre name="code" class="java">
&lt;?xml version="1.0" encoding="UTF-8" ?>
&lt;%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
&lt;html xmlns="http://www.w3.org/1999/xhtml">
&lt;head>
&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
&lt;title>Insert title here&lt;/title>
&lt;/head>
&lt;body>
&lt;form action="login.action" method="post">
username：&lt;input type="text" name="username" />&lt;p>
password：&lt;input type="password" name="password" />&lt;p>
&lt;input type="submit" name="Submit" value="提交" />
&lt;/form>
&lt;/body>
&lt;/html>
</pre><br /><span style="color: red"><br />struts1与struts2的区别：<br />&lt;form action="login.action" method="post"><br />struts1通过servlet拦截所有发送过来以do结尾的请求，交有ActionServlet控制，决定由那个Action进行处理<br /></span><br />5、新建result.jsp<br /><pre name="code" class="java">
&lt;?xml version="1.0" encoding="UTF-8" ?>
&lt;%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
&lt;html xmlns="http://www.w3.org/1999/xhtml">
&lt;head>
&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
&lt;title>Insert title here&lt;/title>
&lt;/head>
&lt;body>
	username:${requestScope.username}&lt;br> 
	password:${requestScope.password} 
&lt;/body>
&lt;/html>
</pre><br />6、修改web.xml<br /><pre name="code" class="java">
&lt;?xml version="1.0" encoding="UTF-8"?>
&lt;web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	&lt;display-name>
	struts2.0&lt;/display-name>
	&lt;welcome-file-list>
		&lt;welcome-file>login.jsp&lt;/welcome-file>
	&lt;/welcome-file-list>
	&lt;filter>
		&lt;filter-name>struts2.0&lt;/filter-name>
		&lt;filter-class>org.apache.struts2.dispatcher.FilterDispatcher&lt;/filter-class>
	&lt;/filter>
	&lt;filter-mapping>
		&lt;filter-name>struts2.0&lt;/filter-name>
		&lt;url-pattern>/*&lt;/url-pattern>
	&lt;/filter-mapping>
&lt;/web-app>
</pre><br /><span style="color: red"><br />struts1与struts2的区别：<br />struts1是通过servlet做控制器<br />struts2这里采用Filter过滤客户端发过来的请求<br /></span><br />7、创建loginAction.java<br /><pre name="code" class="java">
package com.action;
public class loginAction {
	private String username;
	private String password;	
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	public String execute()throws Exception{
		return "success";		
	}
	
}
</pre><br /><span style="color: red"><br />struts1与struts2的区别：<br />struts1必须继承Action,覆盖execute()<br />struts2则不需要<br /></span><br />8、添加struts.xml<br /><pre name="code" class="java">
&lt;?xml version="1.0" encoding="UTF-8" ?>
&lt;!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
&lt;struts>
    &lt;package name="struts2.0" extends="struts-default">
    	&lt;action name="login" class="com.action.loginAction">
    		&lt;result name="success">/result.jsp&lt;/result>
    	&lt;/action>
    &lt;/package>
&lt;/struts>
</pre><br /><span style="color: red"><br />struts1与struts2的区别：<br />struts1在项目\WEB-INF\struts-config.xml配置文件<br />struts2在项目\src\struts.xml配置文件<br /></span><br />9、o了,简单的例子以完成，下面是代码重构：<br /><strong>使用struts2.0标签，添加校验功能</strong><br />1、修改login.jsp，改为使用struts2.0标签<br />导入标签&lt;%@ taglib prefix="s" uri="/struts-tags"%><br />把form表单替换为使用struts2.0标签<br /><pre name="code" class="java">
&lt;s:form action="login">
	&lt;s:textfield name="username" label="username">&lt;/s:textfield>
	&lt;s:password name="password" label="password">&lt;/s:password>
	&lt;s:submit label="submit">&lt;/s:submit>
&lt;/s:form>
</pre><br />（使用标签可以自动换行，按钮默认右对齐）<br />2、修改loginAction.java<br />loginAction继承ActionSupport<br />重写Validate()验证方法<br /><pre name="code" class="java">
@Override
	public void validate() {
		if(null==this.getUsername()||"".equals(this.getUsername().trim())){
			this.addFieldError("username", "username error");//添加错误信息
		}
		if(null==this.getPassword()||"".equals(this.getPassword().trim())){
			this.addFieldError("password", "password error");//添加错误信息
		}
	}
</pre><br />3、修改struts.xml，添加出错返回的页面<br /><pre name="code" class="java">
&lt;?xml version="1.0" encoding="UTF-8" ?>
&lt;!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
&lt;struts>
    &lt;package name="struts2.0" extends="struts-default">
    	&lt;action name="login" class="com.action.loginAction">
                &lt;!-- 添加出错返回的页面 -->
    	       &lt;result name="input">/login.jsp&lt;/result>    	       &lt;result name="success">/result.jsp&lt;/result>
     	&lt;/action>
    &lt;/package>
&lt;/struts>
</pre><br /><span style="color: red"><br />struts1与struts2的区别：<br />struts1需要在form里添加&lt;html:errors/>标签，来提示错误处理的信息<br />struts2则不需要<br /></span><br /><strong>匹配用户名为hello，密码为world</strong><br />1、修改loginAction.java下的execute()方法<br /><pre name="code" class="java">
public String execute()throws Exception{
		if("hello".equals(this.getUsername().trim())&&"world".equals(this.getPassword().trim())){
			return "success";	
		}
		else{
			this.addFieldError("username", "username or password error");//定义在username上面提示错误信息
			return "failer";	
		}
			
	}
</pre><br />2、修改struts.xml，增加failer映射<br /><pre name="code" class="java">
&lt;?xml version="1.0" encoding="UTF-8" ?>
&lt;!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
&lt;struts>
    &lt;package name="struts2.0" extends="struts-default">
    	&lt;action name="login" class="com.action.loginAction">
    		&lt;result name="input">/login.jsp&lt;/result>
    		&lt;result name="success">/result.jsp&lt;/result>
                  &lt;!-- 增加failer映射 -->
    		&lt;result name="failer">/login.jsp&lt;/result>
    	&lt;/action>
    &lt;/package>
&lt;/struts>
</pre><br />3、全部完成，把制作好的web应用struts2拷贝到tomcat下运行
          <br/>
          <span style="color:red;">
            <a href="http://di201yao.javaeye.com/blog/164144#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 22 Feb 2008 11:39:00 +0800</pubDate>
        <link>http://di201yao.javaeye.com/blog/164144</link>
        <guid>http://di201yao.javaeye.com/blog/164144</guid>
      </item>
      <item>
        <title>一个简单的DWR入门例子</title>
        <author>yaodi0818</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://di201yao.javaeye.com">yaodi0818</a>&nbsp;
          链接：<a href="http://di201yao.javaeye.com/blog/164095" style="color:red;">http://di201yao.javaeye.com/blog/164095</a>&nbsp;
          发表时间: 2008年02月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          什么是DWR？<br />    DWR是一个Open Source的 java项目。DWR可以让JavaScript调用运行在Web服务器里面的JAVA程序。简单一点或者专业一点就是Easy AJAX for JAVA.<br />官方网站：http://getahead.org/dwr<br /><br />下面将一步一步的介绍怎么完成一个简单DEMO<br />开发工具NetBeans IDE 6.0+Apache Tomcat 6.0.14<br /><br />1、从官方网站下载DWR.jar包(附件中也有) <br />把他直接放到Apache Tomcat 6.0.14\lib目录下面<br /><br />2、编写一个Java类如下<br /><pre name="code" class="java"> 
package com.test.ajax;

public class DWRTest {
    public DWRTest(){
    
    }
    public String getMyName(){   
        return "Hello Ajax";   
    }   

}
</pre> <br /><br />3、修改web.xml<br /><pre name="code" class="java">
&lt;?xml version="1.0" encoding="ISO-8859-1"?> 
&lt;!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> 

&lt;web-app id="dwr"> 
&lt;servlet> 
&lt;servlet-name>dwr-invoker&lt;/servlet-name> 
&lt;servlet-class>uk.ltd.getahead.dwr.DWRServlet&lt;/servlet-class> 
&lt;/servlet> 
&lt;servlet-mapping> 
&lt;servlet-name>dwr-invoker&lt;/servlet-name> 
&lt;url-pattern>/dwr/*&lt;/url-pattern> 
&lt;/servlet-mapping> 
&lt;/web-app> 
</pre><br /><br />4、把DRWTest类配置在dwr.xml中，dwr.xml是DWR的配置文件，所有需要在JavaScript中调用的java的类都必须在这个文件中描述 (必须与web.xml同级)<br /><pre name="code" class="java">
&lt;?xml version="1.0" encoding="UTF-8"?> 
&lt;!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd"> 
&lt;dwr> 
&lt;allow> 
&lt;create creator="new" javascript="MyTest" scope="application"> 
&lt;param name="class" value="com.test.ajax.DWRTest"/> 
&lt;/create> 
&lt;/allow> 
&lt;/dwr> 
</pre><br /><br />5、编写调用DWRTest类中的getMyName方法的jsp文件<br /><pre name="code" class="java">
&lt;%@ page language="java" contentType="text/html; charset=GB18030"
  pageEncoding="GB18030"%>
&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
&lt;html>
&lt;head>
&lt;meta http-equiv="Content-Type" content="text/html; charset=GB18030">
&lt;title>DWR - Test Home&lt;/title> 
&lt;script type='text/javascript' src='dwr/interface/MyTest.js'>&lt;/script> 
&lt;script type='text/javascript' src='dwr/engine.js'>&lt;/script>
&lt;script type='text/javascript' src='dwr/util.js'>&lt;/script>
&lt;script language="javascript"> 
    var mycall=function callBack(data){
        DWRUtil.setValue("demo1",data);
    }
    function showMyName(){
        MyTest.getMyName(mycall);
    }
    function clearName(){
        demo1.value="";
    }
&lt;/script> 
&lt;/head> 
&lt;body>
    &lt;h1>Ajax Test Page&lt;/h1>    
    &lt;input type="button" value="显示姓名" onclick="javascript:showMyName()">   
    &lt;input type="button" value="清空" onclick="javascript:clearName()">&lt;br>    
    &lt;input type="text" id="demo1">&lt;br>    

&lt;/body> 
&lt;/html> 
</pre><br /><br />6、运行，在浏览器中输入 http://localhost:8084/WebApplication/<br /><br />附件中是本人做好的例子和dwr.jar包
          <br/>
          <span style="color:red;">
            <a href="http://di201yao.javaeye.com/blog/164095#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 22 Feb 2008 10:00:44 +0800</pubDate>
        <link>http://di201yao.javaeye.com/blog/164095</link>
        <guid>http://di201yao.javaeye.com/blog/164095</guid>
      </item>
      <item>
        <title>编程中悟出八个字：1专 2静 3谦 4筹 5悟 6慎 7透 8恒</title>
        <author>yaodi0818</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://di201yao.javaeye.com">yaodi0818</a>&nbsp;
          链接：<a href="http://di201yao.javaeye.com/blog/163492" style="color:red;">http://di201yao.javaeye.com/blog/163492</a>&nbsp;
          发表时间: 2008年02月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          "忽如一夜春风来,千树万树梨花开."现在的技术百花齐放,切忌不可贪. <br />不要盲目的追求新技术,唯有算法才是灵魂. <br />  <br />    2"非淡泊无以明志,非宁静无以致远."要想达到高的境界，必须能够心静. <br />年轻的程序员都很浮躁,这一点对于他们来说尤为的重要. <br /><br />    3谦不仅指技术,而且还指人.一门实用的技术,无论多么容易掌握.只要你 <br />深入的研究,都会挖掘出很多新东西来.对于人来讲,你可能会就某些方面向 <br />其他人请教.如果你不谦虚,请教的结果肯定会不很理想. <br /><br />    4"凡事预则利,不预则废."在编程的过程中,如果你没有做好事前的分析工 <br />作.你会发现自己慢慢就会陷入思维混乱中,最终导致失败.当你把一切都筹划 <br />好,那种"运筹帷幄决胜于千里之外"的感觉多爽啊！<br /><br />    5程序中蕴含着很多的道理，唯有大彻大悟者方能体会其中的奥妙.<br /><br />    6内存无论在怎么发展,它都会有一个容量的限制.因此你应该堤防着它. <br />你的程序如果导致内存泄漏,是程序员很可耻的事情. <br /><br />    7对于问题的理解,一定要透彻.这样你才能实质的解决问题. <br />    <br />    8做技术一定要一颗恒心,这样才不会半途而废.
          <br/>
          <span style="color:red;">
            <a href="http://di201yao.javaeye.com/blog/163492#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 19 Feb 2008 23:44:38 +0800</pubDate>
        <link>http://di201yao.javaeye.com/blog/163492</link>
        <guid>http://di201yao.javaeye.com/blog/163492</guid>
      </item>
      <item>
        <title>java面试经历（搞笑版）</title>
        <author>yaodi0818</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://di201yao.javaeye.com">yaodi0818</a>&nbsp;
          链接：<a href="http://di201yao.javaeye.com/blog/163491" style="color:red;">http://di201yao.javaeye.com/blog/163491</a>&nbsp;
          发表时间: 2008年02月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          面试官：熟悉哪种语言<br />应聘者：Java。<br />面试官：知道什么叫类么<br />应聘者：我这人实在，工作努力，不知道什么叫累<br />面试官：知道什么是包?<br />应聘者：我这人实在  平常不带包 也不用公司准备了<br />面试官：知道什么是接口吗?<br />应聘者：我这个人工作认真。从来不找借口偷懒<br />M：知道什么是继承么<br />Y：我是孤儿没什么可以继承的<br />M:知道什么叫对象么？<br />M:知道，不过我工作努力，上进心强，暂时还没有打算找对象。<br />M：知道多态么？<br />Y：知道，我很保守的。我认为让心爱的女人为了自已一时的快乐去堕胎是不道德的行为！<br />请问这和Java有什么关系？？<br />面试官：用过 apache 的东西吗<br />应聘者：我修过车子<br />M：tomcat了解么<br />Y：小时看过。。现在也喜欢看<br />面试官：了解webwork吗<br />应聘者：不了解。我一直专注于本职工作，对外部的没有时间涉猎。<br />M:了解jakarta的哪些项目？<br />Y:不了解，我只去那儿旅游过。<br />M:用过bea的weblogic吗？<br />Y:没，只喝过蜂蜜。<br />M:了解SUN的创始人吗？<br />Y:不知道，不过我爆喜欢队中的纳什<br />M：用过spring么？<br />Y：没用过，发过。<br />M：知道Hibernate吗<br />Y：知道，动物冬天经常Hibernate,但我从来不冬眠<br />M：知道css吗?<br />Y：cs出加强版了？<br />M：OCR用作过没？<br />Y：我从不玩魔兽<br />M：W3C标准常用什么地方<br />Y：Lost Tample<br />M：知道REST么？<br />Y：我很勤奋，只知道干活，不知道休息。
          <br/>
          <span style="color:red;">
            <a href="http://di201yao.javaeye.com/blog/163491#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 19 Feb 2008 23:43:49 +0800</pubDate>
        <link>http://di201yao.javaeye.com/blog/163491</link>
        <guid>http://di201yao.javaeye.com/blog/163491</guid>
      </item>
      <item>
        <title>EXT最常用的布局</title>
        <author>yaodi0818</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://di201yao.javaeye.com">yaodi0818</a>&nbsp;
          链接：<a href="http://di201yao.javaeye.com/blog/163443" style="color:red;">http://di201yao.javaeye.com/blog/163443</a>&nbsp;
          发表时间: 2008年02月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          本人在做项目中，觉得这个布局最为常用（应该算是中国式的布局）所以记录下来，供大家参考！！！<br /><pre name="code" class="java">
Ext.onReady(function(){

        var tb=new Ext.Toolbar('toolbar-div');//创建一个工具条

         tb.add(new Ext.Toolbar.SplitButton({

           text: '文件',

           cls: 'x-btn-text-icon blist',

           menu : {items: [

             {text: '新建', handler: onItemClick},

             {text: '保存', handler: onItemClick},

             {text: '加载', handler: onItemClick}

           ]}}),

           new Ext.Toolbar.MenuButton({

           text: '编辑',

           cls: 'x-btn-text-icon blist',

           menu : {items: [

             {text: '复制', handler: onItemClick},

             {text: '粘贴', handler: onItemClick}

           ]}})

         );

    var root = new Ext.tree.TreeNode({

        text: '文件夹', 

        allowDrag:false,

        allowDrop:false

    });    

    root.appendChild(

        new Ext.tree.TreeNode({text:'收件箱',allowDrag:false}),

        new Ext.tree.TreeNode({text:'发件箱',allowDrag:false}),

        new Ext.tree.TreeNode({text:'联系人',allowDrag:false}),

        new Ext.tree.TreeNode({text:'已删除的邮件',allowDrag:false})

    ); 

    var myData = [

        ['张三','测试','2006-1-1'],

        ['李四','测试一','2006-5-6'],

        ['王五','测试二','2007-12-1'],

        ['刘六','测试三','2006-12-1']
                     
    ]; 

    var ds = new Ext.data.Store({

      proxy: new Ext.data.MemoryProxy(myData),

      reader: new Ext.data.ArrayReader({}, [

       {name:'sender'},

       {name:'title'},

       {name:'sendtime'}

      ])

    });

    ds.load();

    var colModel = new Ext.grid.ColumnModel([

                     {header:'发送人',width:100,sortable:true,dataIndex:'sender'},

                     {id:'title',header:'标题', width:100,sortable:true,dataIndex:'title'},

                     {header:'发送时间',width:75,sortable:true,dataIndex:'sendtime'}

              ]);

var viewport = new Ext.Viewport({

  layout:'border',

  items:[

      new Ext.BoxComponent({

             region:'north',

             el:'north-div',

             tbar:tb,

             height:26

      }),

      new Ext.tree.TreePanel({

             region:'west',

             contentEl:'west-div',

             title:'树列表',

      split:true,

      width: 200,

      minSize: 175,

      maxSize: 400,

      collapsible: true,

      margins:'0 0 0 0',

      root:root

      }),

      {

             region:'center',

             layout:'border',

             items:[

                    new Ext.grid.GridPanel({

                           region:'center',

                           el:'center-center',

                           title:'条目列表',

                    ds: ds,

                    cm: colModel,

               autoScroll: true

                    }),

                    {

                           region:'south',

                           contentEl:'center-south',

                           title:'内容',

                         split:true,

                           collapsible:true,

                           titlebar:true,

                           height:200,

                           minSize: 100,

                           maxSize:400,

                           collapsedTitle:'内容'

                     }

             ]

      },

      new Ext.BoxComponent({

             region:'south',

             el:'south-div',

             height:24

      })

  ]

});

root.expand()

      function onItemClick(item){

             alert(item.text);

      }

 })
</pre>
          <br/>
          <span style="color:red;">
            <a href="http://di201yao.javaeye.com/blog/163443#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 19 Feb 2008 17:42:03 +0800</pubDate>
        <link>http://di201yao.javaeye.com/blog/163443</link>
        <guid>http://di201yao.javaeye.com/blog/163443</guid>
      </item>
      <item>
        <title>DB2数据类型</title>
        <author>yaodi0818</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://di201yao.javaeye.com">yaodi0818</a>&nbsp;
          链接：<a href="http://di201yao.javaeye.com/blog/163438" style="color:red;">http://di201yao.javaeye.com/blog/163438</a>&nbsp;
          发表时间: 2008年02月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          DB2内置数据类型可以分成数值型（numeric）、字符串型（character string）、图形字符串（graphic string）、二进制字符串型（binary string）或日期时间型（datetime）。还有一种叫做 DATALINK 的特殊数据类型。DATALINK 值包含了对存储在数据库以外的文件的逻辑引用。<br />   数值型数据类型包括 SMALLINT、INTEGER、BIGINT、DECIMAL(p,s)、REAL 和 DOUBLE。所有数值都有符号和精度。精度是指除符号以外的二进制或十进制的位数。如果数字的值大于等于零，就认为符号为正。<br />　　*小整型，SMALLINT：小整型是两个字节的整数，精度为 5 位。小整型的范围从 -32,768 到 32,767。<br />　　*大整型，INTEGER 或 INT：大整型是四个字节的整数，精度为 10 位。大整型的范围从 -2,147,483,648 到 2,147,483,647。<br />　　*巨整型，BIGINT：巨整型是八个字节的整数，精度为 19 位。巨整型的范围从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。<br />　　*小数型，DECIMAL(p,s)、DEC(p,s)、NUMERIC(p,s) 或 NUM(p,s)：小数型的值是一种压缩十进制数，它有一个隐含的小数点。压缩十进制数将以二-十进制编码（binary-coded decimal，BCD）记数法的变体来存储。小数点的位置取决于数字的精度（p）和小数位（s）。小数位是指数字的小数部分的位数，它不可以是负数，也不能大于精度。最大精度是 31 位。小数型的范围从 -10**31+1 到 10**31-1。<br />　　*单精度浮点数（Single-precision floating-point），REAL：单精度浮点数是实数的 32 位近似值。数字可以为零，或者在从 -3.402E+38 到 -1.175E-37 或从 1.175E-37 到 3.402E+38 的范围内。<br />　　*双精度浮点数（Double-precision floating-point），DOUBLE，DOUBLE PRECISION 或 FLOAT：双精度浮点数是实数的 64 位近似值。数字可以为零，或者在从 -1.79769E+308 到 -2.225E-307 或从 2.225E-307 到 1.79769E+308 的范围内。<br />        字符串是字节序列。字符串包括 CHAR(n) 类型的定长字符串和 VARCHAR(n)、LONG VARCHAR 或 CLOB(n) 类型的变长字符串。字符串的长度就是序列中的字节数。<br />　　*定长字符串，CHARACTER(n) 或 CHAR(n)：定长字符串的长度介于 1 到 254 字节之间。如果没有指定长度，那么就认为是 1 个字节。<br />　　*变长字符串，VARCHAR(n)、CHARACTER VARYING(n) 或 CHAR VARYING(n)：VARCHAR(n) 类型的字符串是变长字符串，最长可达 32,672 字节。<br />　　*LONG VARCHAR：LONG VARCHAR 类型的字符串是变长字符串，最长可达 32,700 字节。<br />　　*字符大对象字符串（Character Large Object String），CLOB(n[K|M|G])：CLOB 是变长字符串，最长可以达到 2,147,483,647 字节。如果只指定了 n，那么 n 的值就是最大长度。如果指定了 nK，那么最大长度就是 n*1,024（n 的最大值为 2,097,152）。如果指定了 nM，那么最大长度就是 n*1,048,576（n 的最大值为 2,048）。如果指定了 nG，那么最大长度就是 n*1,073,741,824（n 的最大值是 2）。CLOB 用于存储基于大单字节字符集（single-byte character set，SBCS）字符的数据或基于混合（多字节字符集（MBCS）和 SBCS）字符的数据。图形字符串是表示双字节字符数据的字节序列。图形字符串包括类型为 GRAPHIC(n) 的定长图形字符串和类型为 VARGRAPHIC(n)、LONG VARGRAPHIC 和 DBCLOB(n) 的变长图形字符串。字符串的长度就是序列中双字节字符的数目。<br />　　*定长图形字符串，GRAPHIC(n)：定长图形字符串的长度介于 1 到 127 个双字节字符之间。如果没有指定长度，就认为是 1 个双字节字符。<br />　　*变长图形字符串，VARGRAPHIC(n)：VARGRAPHIC(n) 类型的字符串是变长图形字符串，最大长度可达 16,336 个双字节字符。<br />　　*LONG VARGRAPHIC：LONG VARGRAPHIC 类型的字符串是变长图形字符串，最大长度可达 16,350 个双字节字符。<br />　　*双字节字符大对象字符串，DBCLOB(n[K|M|G])：双字节字符大对象是变长双字节字符图形字符串，最长可达 1,073,741,823 个字符。如果只指定了 n，那么 n 就是最大长度。如果指定了 nK，那么最大长度就是 n*1,024（n 的最大值为 1,048,576）。如果指定了 nM，那么最大长度就是 n*1,048,576（n 的最大值为 1,024）。如果指定了 nG，那么最大长度就是 n*1,073,741,824（n 的最大值是 1）。DBCLOB 用于存储基于大 DBCS（双字节字符集，double-byte character set）字符的数据。二进制字符串是字节序列。二进制字符串包括 BLOB(n) 类型的变长字符串，它用于容纳非传统型的数据，诸如图片、语音或混合媒体等，还可以容纳用户定义的类型及用户定义的函数的结构化数据。<br />* 二进制大对象，BLOB(n[K|M|G])：二进制大对象是变长字符串，最长可达 2,147,483,647 字节。如果只指定了 n，那么 n 就是最大长度。如果指定了 nK，那么最大长度就是 n*1,024（n 的最大值为 2,097,152）。如果指定了 nM，那么最大长度就是 n*1,048,576（n 的最大值为 2,048）。如果指定了 nG，那么最大长度就是 n*1,073,741,824（n 的最大值是 2）。<br />        日期时间型数据类型包括 DATE、TIME 和 TIMESTAMP。日期时间值可在某些算术和字符串操作中使用，而且兼容某些字符串，但它们既不是字符串，也不是数字。<br />　　*DATE：DATE 是一个由三部分组成的值（年、月和日）。年份部分的范围是从 0001 到 9999。月份部分的范围是从 1 到 12。日部分的范围是从 1 到 n，其中 n 的值取决于月份。DATE 列长 10 个字节。<br />　　*TIME：TIME 是一个由三部分组成的值（小时、分钟和秒）。小时部分的范围是从 0 到 24。分钟和秒部分的范围都是从 0 到 59。如果小时为 24，分钟和秒的值都是 0。TIME 列长 8 个字节。<br />　　*TIMESTAMP：TIMESTAMP 是一个由七部分组成的值（年、月、日、小时、分钟、秒和微秒）。年份部分的范围是从 0001 到 9999。月份部分的范围是从 1 到 12。日部分的范围是从 1 到 n，其中 n 的值取决于月份。小时部分的范围是从 0 到 24。分钟和秒部分的范围都是从 0 到 59。微秒部分的范围是从 000000 到 999999。如果小时是 24，那么分钟值、秒的值和微秒的值都是 0。TIMESTAMP 列长 26 个字节。日期时间值的字符串表示：尽管 DATE、TIME 和 TIMESTAMP 的值的内部表示对用户是透明的，日期、时间和时间戳记也可以用字符串来表示，CHAR 标量函数（请参阅 SQL 的“词类（parts of speech）”）可以用于创建日期时间值的字符串表示。<br />　　*日期值的字符串表示是一个以数字开始，长度不少于 8 个字符的字符串。日期值的月份和日部分中前面的零可以省略。<br />　　*时间值的字符串表示是以数字开头，长度不少于 4 个字符的字符串。时间值的小时部分前面的零可以省略，秒部分可以完全省略。如果秒的值没有指定，那么就认为是 0。<br />　　*时间戳记值的字符串表示是以数字开头，长度不少于 16 个字符的字符串。完整的时间戳记字符串表示形式为 yyyy-mm-dd-hh.mm.ss.nnnnnn。时间戳记值的月、日或小时等几部分前面的零可以省略，微秒可以截断或完全省略。如果任何时间戳记值的微秒部分尾零被省略掉了，那么将假定空缺的数位上是零。
          <br/>
          <span style="color:red;">
            <a href="http://di201yao.javaeye.com/blog/163438#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 19 Feb 2008 17:29:41 +0800</pubDate>
        <link>http://di201yao.javaeye.com/blog/163438</link>
        <guid>http://di201yao.javaeye.com/blog/163438</guid>
      </item>
      <item>
        <title>EXT功能描述</title>
        <author>yaodi0818</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://di201yao.javaeye.com">yaodi0818</a>&nbsp;
          链接：<a href="http://di201yao.javaeye.com/blog/163435" style="color:red;">http://di201yao.javaeye.com/blog/163435</a>&nbsp;
          发表时间: 2008年02月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1	框架功能包括：<br />1.1	对页面Dom的核心操作<br />如获取指定元素，利用CSS/Xpath等语法批量获取页面元素，创建页面对象及页面对象操作（添加/插入/删除等）。<br />1.2	Js内置对象功能扩展<br />对Array、Function、Number、String、Date都进行了一些功能扩展。<br />1.3	Ajax功能<br />Ajax提交数据及请求处理。<br />1.4	多种组件<br />如按钮、日期控件、编辑器、颜色面板、Grid、Tree、Tab页，弹出窗口等<br />1.5	对页面及个元素的事件管理。<br />如为页面元素绑定事件，取消事件等。<br />1.6	创建各种简易的动画效果。<br />如淡入淡出、高亮、缩放等。<br />1.7	键盘功能绑定及常用的键盘导航。<br />可以轻松实现对键盘（组合）按键与页面元素事件的绑定。<br />可以轻松对页面常用的导航键（上下左右箭头、home、end、enter、tab、esc等）绑定指定的功能<br />1.8	在页面及各种元素上创建遮罩效果。<br />1.9	创建定时任务。<br />使页面在指定的时间执行某项任务（功能如Dom的setTimeout功能）<br />1.10	强大的模板机制<br />对于一些格式相同的html数据，为提高其重用性，可以为创建模板，以后只需传入数据即可。<br />Ext的模板不仅支持常用的标记匹配替换，还支持匹配串格式化，简单的循环及条件匹配。<br />1.11	完善的页面样式管理<br />创建样式，为元素设定样式，获取样式等。<br />1.12	统一的数据管理方式<br />无论是数组，JSon或者是xml，Ext都能对其进行统一管理，自动转换为统一的格式便于框架内部各部分使用。<br />1.13	元素拖放及resize支持<br />除了简单的拖放功能，还支持对元素拖放范围的管理。<br />1.14	状态管理功能<br />Ext内置了对所有组件的状态管理功能，如Layout，窗口等，对于组件的最后操作会自动记录下次访问可还原到用户上次操作的状态。<br />1.15	完整的布局种类<br />包括了10种我们可能用到的布局方式，如borderLayout，tableLayout，FormLayout等，基本可以满足常见的各种布局需求。<br />2	各个组件功能：<br />2.1	Form<br />2.1.1	标签与输入项对应<br />2.1.2	标签对齐方式、宽度<br />2.1.3	实时验证并提示错误，自定义错误信息及样式<br />2.1.4	默认值<br />2.1.5	对键盘输入按键的过滤<br />2.1.6	输入框宽度根据内容自动扩展<br />2.1.7	内置了DateField（日期输入）、NumberField(数字输入)、TimeField（时间输入选择）、Combo（下拉框）、htmlEditor(编辑器)。每个类型都有其自身的许多属性定义。<br />2.1.8	Fieldset对表单项进行分组显示，允许对单个组的折叠隐藏<br />2.1.9	Ajax提交与普通提交<br />2.2	Grid<br />2.2.1	不可编辑与可编辑Grid<br />2.2.2	选择模式：行选择，列选择。其中行选择包括checkbox选择。<br />2.2.3	通过行前面的checkbox选择行及标题行checkbox全选行。<br />2.2.4	设定是否允许多行选择。<br />2.2.5	列数据输出前的格式化，允许显示图片及各种html样式，如黑体字，链接。<br />2.2.6	行号显示<br />2.2.7	对特定列设定是否支持列排序，显示及隐藏、调整宽度。可设定列数据对齐方式。<br />2.2.8	加载数据是否显示遮罩<br />2.2.9	数据隔行变色<br />2.2.10	数据分组显示及统计<br />2.3	Tree<br />2.3.1	创建本地树或通过ajax创建树。<br />2.3.2	是否允许拖放节点<br />2.3.3	设定节点拖放范围<br />2.3.4	多节点选择及Checkbox选择节点<br />2.3.5	是否显示根节点<br />2.3.6	定义每个节点的图标<br />2.3.7	可编辑的树节点<br />2.3.8	树节点排序<br />2.4	Tabpanel<br />2.4.1	设定默认显示的tab页<br />2.4.2	通过ajax加载tab页内容或直接用html填充<br />2.4.3	将页面指定内容自动转换为tab页<br />2.4.4	设定每个Tab页内容第一次激活时加载内容还是初始化时全部加载。<br />2.4.5	是否允许拖动该tab组件。<br />2.4.6	当多个tab页标题宽度大于tab组件的宽度时是否出现滚动左右滚动箭头<br />2.4.7	自定义Tab页标题默认宽度，最小宽度，每个tab页标题之间的间距，及tab标题出现的位置（top/bottom）。<br />2.5	Menu<br />2.5.1	类windows菜单效果<br />2.5.2	包含常用的文字菜单项、带有复选框/单选框的菜单项、颜色选择菜单项、日期选择菜单项及菜单之间的分割线。<br />2.5.3	无限级子菜单<br />2.6	Data/Store<br />2.6.1	各类数据获取代理，如普通数据传入、http数据获取，跨域数据获取。<br />2.6.2	各种数据转换器：支持xml、json、数组。<br />2.6.3	可扩展其它类型的数据获取代理及数据转换器<br />2.6.4	对数据的动态维护，如添加删除数据，可直接影响到数据使用者如grid<br />2.6.5	数据排序<br />2.7	窗口类<br />2.7.1	支持常用的alert、confirm、prompt、processBar及等待loading。此外可以根据需要自定义弹出类型（如高宽、显示按钮类型，显示图标、是否允许关闭等）<br />2.7.2	Portal窗口（组），用于实现类似windows桌面应用程序的效果。<br />2.7.3	可以实现弹出各种类型的窗口内容。
          <br/>
          <span style="color:red;">
            <a href="http://di201yao.javaeye.com/blog/163435#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 19 Feb 2008 17:26:16 +0800</pubDate>
        <link>http://di201yao.javaeye.com/blog/163435</link>
        <guid>http://di201yao.javaeye.com/blog/163435</guid>
      </item>
      <item>
        <title>EXT学习笔记</title>
        <author>yaodi0818</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://di201yao.javaeye.com">yaodi0818</a>&nbsp;
          链接：<a href="http://di201yao.javaeye.com/blog/163434" style="color:red;">http://di201yao.javaeye.com/blog/163434</a>&nbsp;
          发表时间: 2008年02月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Ajax, Yui-Ext Share This Add comments 文档载入结束 初始化dom <br />Ext.onReady(function(){ <br />        //初始化以及应用代码 <br />}); <br />弹出警告对话框 <br />Ext.MessageBox.alert("Warning", "This example is not done and results may vary.");<br /><br /> <br /><br /><br />表单 <br />&lt;form id="form1" class="x-form">        //整个表单的样式 <br />&lt;div style="width:800px;">        //表单宽度显示 <br />        &lt;div class="x-box-tl">&lt;div class="x-box-tr">&lt;div class="x-box-tc">&lt;/div>&lt;/div>&lt;/div>        //表单顶部样式 <br />        &lt;div class="x-box-ml">&lt;div class="x-box-mr">&lt;div class="x-box-mc">                        //表单中部样式 <br />                &lt;h3 style="margin-bottom:5px;">Ext Live Forms&lt;/h3>        //表单头部 <br />                &lt;div class="x-form-bd" id="container">                        //表单中部 <br />                        &lt;fieldset>                                        //分割栏 <br />                            &lt;div class="x-form-item">                        //表单内部元素 <br />                                &lt;label for="combo-local">Local Data:&lt;/label>        //标题 <br />                                &lt;div class="x-form-element">                        //表单元素样式 <br />                                        &lt;input type="text" size="20" name="combo-local" id="combo-local" /> <br />                                &lt;/div>                   <br />                        &lt;/div> <br />                        &lt;div class="x-form-item">                        //日期表单元素 <br />                                &lt;label for="markup-date">Date:&lt;/label> <br />                                &lt;div class="x-form-element"> <br />                                        &lt;input type="text" size="10" value="03/08/03" name="markup-date" id="markup-date" /> <br />                                &lt;/div> <br />                        &lt;/div> <br />                        /* <br />                            var date = new Ext.form.DateField({        //构造日期选择元素的ext代码 <br />                                        allowBlank:false                //不允许空白 <br />                                }); <br />                            date.applyTo(’markup-date’); <br />                        */ <br />                        &lt;div class="x-form-item"> <br />                                &lt;label for="combo-tpl">Unobtrusive:&lt;/label> <br />                                &lt;div class="x-form-element"> <br />                                    &lt;select name="light" id="light"> <br />                                        &lt;option value="Shade">Shade&lt;/option> <br />                                        &lt;option value="Mostly Shady">Mostly Shady&lt;/option> <br />                                        &lt;option value="Sun or Shade">Sun or Shade&lt;/option> <br />                                        &lt;option value="Mostly Sunny">Mostly Sunny&lt;/option> <br />                                        &lt;option value="Sunny">Sunny&lt;/option> <br />                                    &lt;/select>                            <br />                                &lt;/div> <br />                        &lt;/div> <br />                        /* <br />                            var tranny = new Ext.form.ComboBox({ <br />                                typeAhead: true,                //类型在前？ <br />                                triggerAction: ‘all’,                //引发动作？ <br />                                transform:’light’,                //转变表单元素ID <br />                                width:120, <br />                                forceSelection:true                //强制选择 <br />                            }); <br />                        */ <br />                        &lt;div class="x-form-item">                        //日期表单元素 <br />                                &lt;label for="markup-date">Date:&lt;/label> <br />                                &lt;div class="x-form-element"> <br />                                        &lt;input type="text" size="20" name="required" id="required" /> <br />                                &lt;/div> <br />                        &lt;/div> <br />                        /* <br />                            var required = new Ext.form.TextField({ <br />                                allowBlank:false, <br />                                vtype:’alphanum’        //字段样式        url|email|alpha <br />                            }); <br />                            required.applyTo(’required’); <br />                        */ <br />                        &lt;/fieldest> <br />                &lt;/div>                <br />        &lt;/div>&lt;/div>&lt;/div>                <br />        &lt;div class="x-box-bl">&lt;div class="x-box-br">&lt;div class="x-box-bc">&lt;/div>&lt;/div>&lt;/div>        //表单底部样式 <br />&lt;/div> <br />&lt;/form> <br />1 表单内元素需要使用div class="x-form-element"标签环绕，但是同一个标签中可以包含多个表单元素 <br />对话框的使用 <br />1 ：Confirm对话框 <br />&lt;button id="mb1">Show Me&lt;/button> <br />/* <br />    Ext.get(’mb1′).on(’click’, function(e){ <br />        Ext.MessageBox.confirm(’Confirm’, ‘Are you sure you want to do that?’, showResult);        //关键点在于回调函数 <br />    }); <br />    function showResult(btn){ <br />        Ext.example.msg(’Button Click’, ‘You clicked the {0} button’, btn);                        //这里有一个{0}看起来可以在这里种使用模板 <br />    }; <br />*/ <br />2：警告对话框 <br />Ext.MessageBox.alert(’Status’, ‘Changes saved successfully.’, showResult); <br />3：单行文本输入对话框 <br />Ext.MessageBox.prompt(’Name’, ‘Please enter your name:’, showResultText); <br />4：多行文本输入对话框 <br />        Ext.MessageBox.show({ <br />           title: ‘Address’,                        //标题 <br />           msg: ‘Please enter your address:’,        //正文信息 <br />           width:300,                                //宽度 <br />           buttons: Ext.MessageBox.OKCANCEL,        //按钮设定 使用 Ext.MessageBox.OKCANCEL 可选 YESNOCANCEL <br />           multiline: true,                        //多行编辑 <br />           fn: showResultText,                        //回调函数 <br />           animEl: ‘mb3′                        //绑定动画的元素名称 <br />       }); <br />5：输入对话框 如果不指定multiline的话就可以不显示输入框 <br />        Ext.MessageBox.show({ <br />           title:’Save Changes?’, <br />           msg: ‘Your are closing a tab that has unsaved changes. Would you like to save your changes?’, <br />           buttons: Ext.MessageBox.YESNOCANCEL, <br />           fn: showResult, <br />           animEl: ‘mb4′ <br />       }); <br />6：进度条 <br />        Ext.MessageBox.show({ <br />           title: ‘Please wait…’, <br />           msg: ‘Initializing…’, <br />           width:240, <br />           progress:true, <br />           closable:false, <br />           animEl: ‘mb6′ <br />       }); <br />       // this hideous block creates the bogus progress <br />       var f = function(v){ <br />            return function(){ <br />                if(v == 11){ <br />                    Ext.MessageBox.hide(); <br />                }else{ <br />                    Ext.MessageBox.updateProgress(v/10, ‘Loading item ‘ + v + ‘ of 10…’);        //更新进度条状态 参数为状态图和状态文字 <br />                } <br />           }; <br />       }; <br />       for(var i = 1; i &lt; 12; i++){ <br />           setTimeout(f(i), i*1000);                        //每隔1秒调用f一次        <br />       } <br />7：复杂对话框（对话框设定内容） <br />&lt;input type="button" id="show-dialog-btn" value="Show Dialog" />                //由这个按钮触发 <br />        对话框内的内容 <br />    &lt;!– dialog is created from existing markup –> <br />    &lt;div id="hello-dlg" style="visibility:hidden;"> <br />            &lt;div class="x-dlg-hd">Layout Dialog&lt;/div> <br />            &lt;div class="x-dlg-bd"> <br />                &lt;div id="west" class="x-layout-inactive-content"> <br />                        West <br />                    &lt;/div> <br />                    &lt;div id="center" class="x-layout-inactive-content" style="padding:10px;"> <br />                &lt;p>This dialog has the Vista theme applied.&lt;/p> <br />                &lt;p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. Maecenas tortor turpis, interdum non, sodales non, iaculis ac, lacus. Vestibulum auctor, tortor quis iaculis malesuada, libero lectus bibendum purus, sit amet tincidunt quam turpis vel lacus. In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, cursus a, fringilla vel, urna. Aliquam commodo ullamcorper erat. Nullam vel justo in neque porttitor laoreet. Aenean lacus dui, consequat eu, adipiscing eget, nonummy non, nisi. Morbi nunc est, dignissim non, ornare sed, luctus eu, massa. Vivamus eget quam. Vivamus tincidunt diam nec urna. Curabitur velit. Quisque dolor magna, ornare sed, elementum porta, luctus in, leo.&lt;/p> <br />                &lt;p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed metus nibh, sodales a, porta at, vulputate eget, dui. Pellentesque ut nisl. Maecenas tortor turpis, interdum non, sodales non, iaculis ac, lacus. Vestibulum auctor, tortor quis iaculis malesuada, libero lectus bibendum purus, sit amet tincidunt quam turpis vel lacus. In pellentesque nisl non sem. Suspendisse nunc sem, pretium eget, cursus a, fringilla vel, urna. Aliquam commodo ullamcorper erat. Nullam vel justo in neque porttitor laoreet. Aenean lacus dui, consequat eu, adipiscing eget, nonummy non, nisi. Morbi nunc est, dignissim non, ornare sed, luctus eu, massa. Vivamus eget quam. Vivamus tincidunt diam nec urna. Curabitur velit. Quisque dolor magna, ornare sed, elementum porta, luctus in, leo.&lt;/p> <br />                    &lt;/div> <br />            &lt;/div> <br />        &lt;/div> <br />    showBtn.on(’click’, this.showDialog, this);调用方法        第二个 <br />    showDialog : function(){ <br />            if(!dialog){ // lazy initialize the dialog and only create it once        对话框之创建一次 <br />                dialog = new Ext.LayoutDialog("hello-dlg", {                        设定对话框句柄        第一个参数表示所要引用的dom元素 <br />                        modal:true,                                //形式设定 <br />                        width:600,                                <br />                        height:400, <br />                        shadow:true,                                //阴影 <br />                        minWidth:300,                                //最大最小形状 <br />                        minHeight:300,        <br />                        proxyDrag: true,                        //允许拖拽 <br />                        west: {                                        //为west对象设定布局 <br />                                split:true,                        //分隔 <br />                                initialSize: 150, <br />                                minSize: 100, <br />                                maxSize: 250, <br />titlebar: true, <br />collapsible: true, <br />                                animate: true <br />                            }, <br />                            center: {                                //为center元素设定布局 <br />                                autoScroll:true, <br />                                tabPosition: ‘top’, <br />                                closeOnTab: true, <br />                                alwaysShowTabs: true <br />                