http post 方法

function costPayCheck() {
         var name = "test"
         var PARAMS2 = 'EeM1whUd4q4%3d&money=i6hN5C6DIN4%3d&checkcode=nhIAV2UrfsWnq1I38RKp5%2b46w4bxah62p6tSN%2fESqefuOsOG8WoetiUOtz2bp40id93kxCmKe%2bY%2f%2foU%2b8UmIPnvhxn9jGcsgHGKUTJep4N4q3lr1fo%2bZEWZJXRQhhfJ4RNQDb8RgTAU%3d&feeetype=Q1dQXRPDVOc%3d&old_pay_no=String+%e5%bc%95%e7%94%a8%e6%b2%a1%e6%9c%89%e8%ae%be%e7%bd%ae%e4%b8%ba+String+%e7%9a%84%e5%ae%9e%e4%be%8b%e3%80%82%0d%0a%e5%8f%82%e6%95%b0%e5%90%8d%3a+s&old_money=String+%e5%bc%95%e7%94%a8%e6%b2%a1%e6%9c%89%e8%ae%be%e7%bd%ae%e4%b8%ba+String+%e7%9a%84%e5%ae%9e%e4%be%8b%e3%80%82%0d%0a%e5%8f%82%e6%95%b0%e5%90%8d%3a+s';
        
         var tempForm = document.createElement("form"); 
         tempForm.id="tempForm1"; 
         tempForm.method="post"; 
         tempForm.action="https://www.60.30.27.15/PayMent/login.aspx";   
         tempForm.target=name; 
         
          var hideInput = document.createElement("input"); 
          hideInput.type="hidden"; 
         hideInput.name= "pay_no"
         hideInput.value= PARAMS2;
          tempForm.appendChild(hideInput);  
          tempForm.attachEvent("onsubmit",function(){ openWindow(name); });
         document.body.appendChild(tempForm); 
        
         tempForm.fireEvent("onsubmit");
         tempForm.submit();
        document.body.removeChild(tempForm);
   }
    
      function openWindow(name) 
    { 
         window.open('about:blank',name,'height=400, width=400, top=0, left=0, toolbar=yes, menubar=yes, scrollbars=yes, resizable=yes,location=yes, status=yes');  
      }

posted @ 2013-04-09 13:13 youngturk 阅读(283) | 评论 (0)编辑 收藏

JAVA解析XML格式字符串

import java.io.IOException;
import java.io.StringReader;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.Namespace;
import org.jdom.input.SAXBuilder;
import org.xml.sax.InputSource;

public class TestXML {
    public List xmlElements(String xmlDoc) {
        //创建一个新的字符串
        StringReader read = new StringReader(xmlDoc);
        //创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入
        InputSource source = new InputSource(read);
        //创建一个新的SAXBuilder
        SAXBuilder sb = new SAXBuilder();
        try {
            //通过输入源构造一个Document
            Document doc = sb.build(source);
            //取的根元素
            Element root = doc.getRootElement();
            System.out.println(root.getName());//输出根元素的名称(测试)
            //得到根元素所有子元素的集合
            List jiedian = root.getChildren();
            //获得XML中的命名空间(XML中未定义可不写)
            Namespace ns = root.getNamespace();
            Element et = null;
            for(int i=0;i<jiedian.size();i++){
                et = (Element) jiedian.get(i);//循环依次得到子元素
                /**//*
                 * 无命名空间定义时
                 * et.getChild("users_id").getText();
                 * et.getChild("users_address",ns).getText()
                 */
                /*System.out.println(et.getChild("users_id",ns).getText());
                System.out.println(et.getChild("users_address",ns).getText());*/
                System.out.println(et.getChild("p_id",ns).getText());
                System.out.println(et.getChild("ctnno",ns).getText());
            }
            /**//*
             * 如要取<row>下的子元素的名称
             */
            et = (Element) jiedian.get(0);
            List zjiedian = et.getChildren();
            for(int j=0;j<zjiedian.size();j++){
                Element xet = (Element) zjiedian.get(j);
                System.out.println(xet.getName());
            }
        } catch (JDOMException e) {
            // TODO 自动生成 catch 块
            e.printStackTrace();
        } catch (IOException e) {
            // TODO 自动生成 catch 块
            e.printStackTrace();
        }
        return null;
    }
    public static void main(String[] args){
     TestXML doc = new TestXML();
        String xml = "<?xml version=\"1.0\" encoding=\"gb2312\"?>"+
        "<Result xmlns=\"http://www.fiorano.com/fesb/activity/DBQueryOnInput2/Out\">"+
           "<row resultcount=\"1\">"+
              "<users_id>1001     </users_id>"+
              "<users_name>wangwei   </users_name>"+
              "<users_group>80        </users_group>"+
              "<users_address>1001号   </users_address>"+
           "</row>"+
           "<row resultcount=\"1\">"+
              "<users_id>1002     </users_id>"+
              "<users_name>wangwei   </users_name>"+
              "<users_group>80        </users_group>"+
              "<users_address>1002号   </users_address>"+
           "</row>"+
        "</Result>";
        String xml1 = "<?xml version=\"1.0\" encoding=\"UTF-16LE\" standalone=\"no\"?>" +
          "<d_fsgl_fee_count_for_xml>" +
          "  <d_fsgl_fee_count_for_xml_row>" +
          "  <p_id>JD1302130002</p_id>" +
          "  <ctnno>CXDU1499549</ctnno>" +
          "  <fee_type>单</fee_type>" +
          "  <start_time>2013-02-09 00:00:00</start_time>" +
          "  <end_time>2013-02-13 00:00:00</end_time>" +
          "  <fee>4</fee>" +
          "  <fee_count>16</fee_count>" +
          "  <cpid></cpid>" +
          "  <fee_name>堆存费</fee_name>" +
          "  <fee_rate_id></fee_rate_id>" +
          "  <jffs>1</jffs>" +
          "  <if_hand>0</if_hand>" +
          "  <sfid>FDZT1302180104</sfid>" +
          "  <wt_company>QT</wt_company>" +
          "  <opid>928</opid>" +
          "  <cy>D</cy>" +
          "  <if_bf></if_bf>" +
          "  <days_count>4</days_count>" +
          "  <if_collect>1</if_collect>" +
          "  <if_dd></if_dd>" +
          "  <dd_fee_name></dd_fee_name>" +
          "  <spec_sign>五洲代垫</spec_sign>" +
          " </d_fsgl_fee_count_for_xml_row>" +
          " <d_fsgl_fee_count_for_xml_row>" +
          "  <p_id>JD1302130002</p_id>" +
          "  <ctnno>CXDU1499549</ctnno>" +
          "  <fee_type>周</fee_type>" +
          "  <start_time>2013-02-13 00:00:00</start_time>" +
          "  <end_time>2013-02-20 00:00:00</end_time>" +
          "  <fee>4</fee>" +
          "  <fee_count>32</fee_count>" +
          "  <cpid></cpid>" +
          "  <fee_name>堆存费</fee_name>" +
          "  <fee_rate_id>67</fee_rate_id>" +
          "  <jffs>1</jffs>" +
          "  <if_hand>0</if_hand>" +
          "  <sfid>FDZT1302180104</sfid>" +
          "  <wt_company>QT</wt_company>" +
          "  <opid>928</opid>" +
          "  <cy>D</cy>" +
          "  <if_bf></if_bf>" +
          "  <days_count>8</days_count>" +
          "  <if_collect>1</if_collect>" +
          "  <if_dd></if_dd>" +
          "  <dd_fee_name></dd_fee_name>" +
          "  <spec_sign></spec_sign>" +
          " </d_fsgl_fee_count_for_xml_row>"  +
          "</d_fsgl_fee_count_for_xml>";
        doc.xmlElements(xml1);
    }
}

 

posted @ 2013-04-08 17:20 youngturk 阅读(273) | 评论 (0)编辑 收藏

eclipse插件实现Java调用 asmx 的Web Service

eclipse插件(axis2 tool--Code Generator Wizard)实现Java调用 asmx 的Web Service

一个获得天气情况及国家城市的 Web Service
http://www.webservicex.net/globalweather.asmx?WSDL

AXIS2 下载地址 http://ws.apache.org/axis2/download.cgi
其eclipse工具 http://ws.apache.org/axis2/tools/index.html
Code Generator Wizard - Eclipse Plug-in 可以以eclipse中的link方式安装.即可以通过自动
生成java service code.

具体步骤如下:
在eclipse的java project中 NEW --> Other --> Axis2 Wizards -->Axis2 Code Generator
NEXT --> 选择 Generate java source code from a WSDL file
NEXT --> 在WSDL file location: 中输入 : http://www.webservicex.net/globalweather.asmx?WSDL
NEXT --> NEXT --> 选择好文件生成路径
如: E:\eclipseworkspace\axis213\src
FINISH 后会自动生成两个文件:
GlobalWeatherCallbackHandler.java 和 GlobalWeatherStub.java

新建一个测试文件GlobalWeatherTest.java.
内容如下:
package net.webservicex.www;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.StringReader;
import java.rmi.RemoteException;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;

public class GlobalWeatherTest {
 public static void main(String[] args) throws RemoteException {
  GlobalWeatherStub stub = new GlobalWeatherStub();
  GlobalWeatherStub.GetCitiesByCountry request = new GlobalWeatherStub.GetCitiesByCountry();
  request.setCountryName("Korea");
  GlobalWeatherStub.GetCitiesByCountryResponse response = stub
    .GetCitiesByCountry(request);
  System.out.println("=================国家城市=================");
  //System.out.println(response.getGetCitiesByCountryResult());
  String xml = response.getGetCitiesByCountryResult();
  parseXML(xml);
  
  GlobalWeatherStub.GetWeather weatherRequest = new
  GlobalWeatherStub.GetWeather();
  weatherRequest.setCountryName("Korea");
  weatherRequest.setCityName("Seoul");
  GlobalWeatherStub.GetWeatherResponse weatherResponse =
  stub.GetWeather(weatherRequest);
  System.out.println("=================国家/城市/天气=================");
  System.out.println(weatherResponse.getGetWeatherResult());
 }

 public static void parseXML(String xml) {
  DocumentBuilderFactory domfac = DocumentBuilderFactory.newInstance();
  try {
   DocumentBuilder dombuilder = domfac.newDocumentBuilder();
   StringReader rd = new StringReader(xml);
   InputSource is = new InputSource(rd);

   Document doc = dombuilder.parse(is);
   Element root = doc.getDocumentElement();
   NodeList citys = root.getChildNodes();

   if (citys != null) {
    for (int i = 0; i < citys.getLength(); i++) {
     Node city = citys.item(i);
     if (city.getNodeType() == Node.ELEMENT_NODE) {
      for (Node node = city.getFirstChild(); node != null; node = node
        .getNextSibling()) {
       if (node.getNodeType() == Node.ELEMENT_NODE) {
        if (node.getNodeName().equals("Country")) {
         String country = node.getFirstChild()
           .getNodeValue();
         System.out.print(country);
        }
        if (node.getNodeName().equals("City")) {
         String cityname = node.getFirstChild()
           .getNodeValue();
         System.out.println(" || " + cityname);
        }
       }
      }
     }
    }
   }
  } catch (ParserConfigurationException e) {
   e.printStackTrace();
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (SAXException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}


运行结果如下:

=================国家城市=================
Korea, Republic of || Kwangju Ab
Korea, Republic of || Kunsan Ab
Korea, Republic of || Yosu Airport
Korea, Republic of || Chunchon Ab
Korea, Republic of || Hoengsong Ab
Korea, Republic of || Kangnung Ab
Korea, Republic of || Wonju
Korea, Republic of || Cheju International Airport
Korea, Republic of || Pusan / Kimhae International Airport
Korea, Republic of || Mosulpo Ab
Korea, Republic of || Sach'On Ab
Korea, Republic of || Ulsan
Korea, Republic of || Tonghae Radar Site
Korea, Republic of || Seoul / Yongdungp'O Rokaf Wc
Korea, Republic of || Pyongtaek Ab
Korea, Republic of || Seoul
Korea, Republic of || Seoul E Ab
Korea, Republic of || Koon-Ni Range
Korea, Republic of || Osan Ab
Korea, Republic of || Paengnyongdo Ab
Korea, Republic of || Yeonpyeungdo
Korea, Republic of || Seoul / Kimp'O International Airport
Korea, Republic of || Yeoju Range
Korea, Republic of || Suwon Ab
Korea, Republic of || Camp Stanley / H-207
Korea, Republic of || Yongsan / H-208 Hp
Korea, Republic of || Andong
Korea, Republic of || Paekado
Korea, Republic of || Taejon Kor-Afb
Korea, Republic of || Songmu Ab
Korea, Republic of || Taejon
Korea, Republic of || Pohang Ab
Korea, Republic of || Jung Won Rok-Ab
Korea, Republic of || Mangilsan Ab
Korea, Republic of || Taegu Ab
Korea, Republic of || Sangju
Korea, Republic of || Taegu
Korea, Republic of || Chongju Ab
Korea, Republic of || Woong Cheon
Korea, Republic of || Yechon Ab
Korea, Democratic People's Republic of || Kimchaek
Korea, Democratic People's Republic of || Pyongyang
=================国家/城市/天气=================
<?xml version="1.0" encoding="utf-16"?>
<CurrentWeather>
  <Location>Seoul / Kimp'O International Airport, Korea, South (RKSS) 37-33N 126-48E 18M</Location>
  <Time>Oct 24, 2007 - 11:00 AM EDT / 2007.10.24 1500 UTC</Time>
  <Wind> from the NNW (330 degrees) at 2 MPH (2 KT) (direction variable):0</Wind>
  <Visibility> less than 1 mile:0</Visibility>
  <SkyConditions> partly cloudy</SkyConditions>
  <Temperature> 48 F (9 C)</Temperature>
  <DewPoint> 48 F (9 C)</DewPoint>
  <RelativeHumidity> 100%</RelativeHumidity>
  <Pressure> 30.24 in. Hg (1024 hPa)</Pressure>
  <Status>Success</Status>
</CurrentWeather>

WSDL

=============最新的axis2-eclipse-codegen-wizard-1.4 用法(20080806)==============

用同樣的方法生成代碼有五個:
GlobalWeather.java
GlobalWeatherLocator.java
GlobalWeatherSoap.java
GlobalWeatherSoapProxy.java
GlobalWeatherSoapStub.java

客戶端調用如下:
GlobalWeatherLocator gwl = new GlobalWeatherLocator();
GlobalWeatherSoapStub binding = (GlobalWeatherSoapStub)gwl.getGlobalWeatherSoap();
System.out.println(">>>"+binding.getCitiesByCountry("Korea"));
System.out.println(binding.getWeather("Seoul", "Korea"));

posted @ 2013-04-06 10:37 youngturk 阅读(3041) | 评论 (1)编辑 收藏

clone复制对象

public  Object cloneObject(Object obj) throws Exception{
  ByteArrayOutputStream  byteOut = new ByteArrayOutputStream();
  ObjectOutputStream out = new ObjectOutputStream(byteOut);
  out.writeObject(obj);
  ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray());
  ObjectInputStream in =new ObjectInputStream(byteIn);
  return in.readObject();
  }
浅克隆:List billBoxListClone = (List)BeanUtils.cloneBean(billBoxList);

posted @ 2013-03-31 22:42 youngturk 阅读(217) | 评论 (0)编辑 收藏

oracle字符集设置

     摘要: Oracle 字符集的查看和修改 一、什么是Oracle字符集        Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。...  阅读全文

posted @ 2013-03-30 10:35 youngturk 阅读(335) | 评论 (0)编辑 收藏

Apache axis2 + Eclipse 开发 WebService

http://blog.csdn.net/xiaochunyong/article/details/7764683
http://wenku.baidu.com/view/b3c7f14033687e21af45a98a.html###

posted @ 2013-03-21 22:16 youngturk 阅读(315) | 评论 (0)编辑 收藏

js数据结构(转)

从结构上看,所有的数据(data)最终都可以分解成三种类型

第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"北京"这个单独的词。

第二种类型是序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组(array)或列表(List),比如"北京,上海"。

第三种类型是映射(mapping),也就是一个名/值对(Name/value),即数据有一个名称,还有一个与之相对应的值,这又称作散列(hash)或字典(dictionary),比如"首都:北京"。

我恍然大悟,数据构成的最小单位原来如此简单!难怪在编程语言中,只要有了数组(array)和对象(object)就能够储存一切数据了。

 

关于json

21世纪初,Douglas Crockford寻找一种简便的数据交换格式,能够在服务器之间交换数据。当时通用的数据交换语言是XML,但是Douglas Crockford觉得XML的生成和解析都太麻烦,所以他提出了一种简化格式,也就是Json。

Json的规格非常简单,只用一个页面几百个字就能说清楚,而且Douglas Crockford声称这个规格永远不必升级,因为该规定的都规定了。

1) 并列的数据之间用逗号(",")分隔。

2) 映射用冒号(":")表示。

3) 并列数据的集合(数组)用方括号("[]")表示。

4) 映射的集合(对象)用大括号("{}")表示。

上面四条规则,就是Json格式的所有内容。

比如,下面这句话:

"北京市的面积为16800平方公里,常住人口1600万人。上海市的面积为6400平方公里,常住人口1800万。"

写成json格式就是这样:

[
  {"城市":"北京","面积":16800,"人口":1600},
  {"城市":"上海","面积":6400,"人口":1800}
]

如果事先知道数据的结构,上面的写法还可以进一步简化:

[
  ["北京",16800,1600],
  ["上海",6400,1800]
]

由此可以看到,json非常易学易用。所以,在短短几年中,它就取代xml,成为了互联网上最受欢迎的数据交换格式。

我猜想,Douglas Crockford一定事先就知道,数据结构可以简化成三种形式,否则怎么可能将json定义得如此精炼呢!

 

学习javascript的时候,我曾经一度搞不清楚"数组"(array)和"对象"(object)的根本区别在哪里,两者都可以用来表示数据的集合。

比如有一个数组a=[1,2,3,4],还有一个对象a={0:1,1:2,2:3,3:4},然后你运行alert(a[1]),两种情况下的运行结果是相同的!这就是说,数据集合既可以用数组表示,也可以用对象表示,那么我到底该用哪一种呢?

我后来才知道,数组表示有序数据的集合,而对象表示无序数据的集合。如果数据的顺序很重要,就用数组,否则就用对象。

 

当然,数组和对象的另一个区别是,数组的数据没有"名称"(name),对象的数据有"名称"(name)。

但是问题是,很多编程语言中,都有一种叫做"关联数组"(associative array)的东西。这种数组中的数据是有名称的。

比如在javascript中,可以这样定义一个对象:

var a={"城市":"北京","面积":16800,"人口":1600};

但是,也可以定义成一个关联数组:

a["城市"]="北京";
a["面积"]=16800;
a["人口"]=1600;

这起初也加剧了我对数组和对象的混淆,后来才明白,在Javascript语言中,关联数组就是对象,对象就是关联数组。

posted @ 2013-02-28 10:44 youngturk 阅读(231) | 评论 (0)编辑 收藏

Oracle中如何用SQL检测字段是否包括中文字符

有个问题,没有考虑中文编码字符,由于迁移的表有几千万数据,但是有中文的记录集很少,问我能否找出有中文内容的记录数。首先我想到的是采用检测每个字节ASCII的方式,这样的话需要写一个自定义函数,然后SQL中调用得到结果。但是感觉这个方法估计很耗时,毕竟每个字符都要比较,所以没有去实现。突然想到Oracle有一个编码转换的函数叫Convert,如果一个字符串编码转换前后不一样就表示字符串里面含有非ASCII字符,这样就得到结果。最后写出来测试了一下,确实可行,5500万记录10秒钟就扫描结束。以下是测试用例:

SQL> select *
  2    from (select 'abcd' c1 from dual
  3          union all
  4          select 'ab测试cd' c1 from dual)
  5   where c1 <> CONVERT(c1, 'US7ASCII', 'ZHS16GBK');
 
C1
--------
ab测试cd

CONVERT函数说明:

CONVERT(inputstring,dest_charset,source_charset)

inputstring:要转换的字符串

dest_charset:目标字符集

source_charset:原字符集

posted @ 2013-02-06 16:02 youngturk 阅读(626) | 评论 (0)编辑 收藏

javascrip与页面执行顺序

2、延迟脚本
HTML4.0为<script>标签定义了defer的属性。这个属性的用途是表明脚本在执行时不会影响页面的构造。也就是说,脚本会延迟到整个页面都解析完毕后在执行。因此,在<script>元素中设置defer属性(如下面的例子),实际上与上面介绍的把<script>元素放在页面底部的效果是一样的。
<html>
<head>
  <title> New Document </title>
  <script type="text/javascript" defer="defer" src="example1.js"></script>
  <script type="text/javascript" defer="defer" src="example2.js"></script>
</head>
<body>
  <!--这里放内容-->
</body>
</html>
这个例子中,虽然我们把<script>元素放在了文档的<head>元素中,但其中包含的脚本将延迟到浏览器遇到</html>标签后在执行。
不过,问题是并非所有浏览器都支持defer属性,IE和firefox3.0是目前唯一支持defer属性的主流浏览器。其他浏览器则会忽略这个属性,不延迟脚本的执行

posted @ 2013-02-06 15:57 youngturk 阅读(406) | 评论 (0)编辑 收藏

从request获取各种路径总结 request.getRealPath("url"); // 虚拟目录映射为实际目录 request.getRealPat

从request获取各种路径总结 
request.getRealPath(
"url"); // 虚拟目录映射为实际目录 


request.getRealPath(
"./");    // 网页所在的目录 

request.getRealPath(
"../"); // 网页所在目录的上一层目录 

request.getContextPath();    
// 应用的web目录的名称 


如http:
//localhost:7001/bookStore/ 
/bookStore/ => [contextPath] (request.getContextPath()) 

获取Web项目的全路径 
String strDirPath 
= request.getSession().getServletContext().getRealPath("/"); 

以工程名为TEST为例: 

(
1)得到包含工程名的当前页面全路径:request.getRequestURI() 
结果:
/TEST/test.jsp 


(
2)得到工程名:request.getContextPath() 
结果:
/TEST 


(
3)得到当前页面所在目录下全名称:request.getServletPath() 
结果:如果页面在jsp目录下 
/TEST/jsp/test.jsp 


(
4)得到页面所在服务器的全路径:application.getRealPath("页面.jsp"
结果:D:\resin\webapps\TEST\test.jsp 


(
5)得到页面所在服务器的绝对路径:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent(); 
结果:D:\resin\webapps\TEST 

2.在类中取得路径: 

(
1)类的绝对路径:Class.class.getClass().getResource("/").getPath() 
结果:
/D:/TEST/WebRoot/WEB-INF/classes/pack/ 


(
2)得到工程的路径:System.getProperty("user.dir"
结果:D:\TEST 

3.在Servlet中取得路径: 

(
1)得到工程目录:request.getSession().getServletContext().getRealPath("") 参数可具体到包名。 
结果:E:\Tomcat\webapps\TEST 


(
2)得到IE地址栏地址:request.getRequestURL() 
结果:http:
//localhost:8080/TEST/test 


(
3)得到相对地址:request.getRequestURI() 
结果:
/TEST/test 

posted @ 2013-01-23 09:01 youngturk 阅读(9006) | 评论 (0)编辑 收藏

仅列出标题
共33页: First 上一页 3 4 5 6 7 8 9 10 11 下一页 Last 
<2024年6月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

导航

统计

公告

this year :
1 jQuery
2 freemarker
3 框架结构
4 口语英语

常用链接

留言簿(6)

随笔分类

随笔档案

文章分类

文章档案

相册

EJB学习

Flex学习

learn English

oracle

spring MVC web service

SQL

Struts

生活保健

解析文件

搜索

最新评论

阅读排行榜

评论排行榜