分类目录
文章索引模板
java led dll - 十二月 25, 2009 by yippee

java 操作 dll JNative LEd – zjutsoft的专栏 – CSDN博客
http://blog.csdn.net/zjutsoft/archive/2009/09/10/4538943.aspx



java 操作 LED DLL 动态链接库 JNaitive – zjutsoft – JavaEye技术网站
http://zjutsoft.javaeye.com/blog/466250



java 操作 LED DLL 动态链接库 JNaitive
http://fuckb.net/article?v=2&u=java-operation-led-dll-dynamic-link-library-jnaitive#java%20%E6%93%8D%E4%BD%9C%20LED%20DLL%20%E5%8A%A8%E6%80%81%E9%93%BE%E6%8E%A5%E5%BA%93%20JNaitive
java 操作 LED DLL 动态链接库 JNaitive.主要是操作LDE。 java 来操作dll动态链接库。
包含 四个文件 JNative.jar. 动态链接库BxADLL.dll.
需要放到 c:\windows\system32目录下面的。 JNativeCpp.dll
源代码:
import org.xvolks.jnative.JNative;
import org.xvolks.jnative.Type;
import org.xvolks.jnative.exceptions.NativeException;
import org.xvolks.jnative.pointers.Pointer;
import org.xvolks.jnative.pointers.memory.HeapMemoryBlock;
import org.xvolks.jnative.pointers.memory.MemoryBlockFactory;
import org.xvolks.jnative.misc.basicStructures.INT64;
import org.xvolks.jnative.misc.basicStructures.LONG;
import org.xvolks.jnative.misc.basicStructures.HWND;
import org.xvolks.jnative.misc.basicStructures.LPARAM;
import org.xvolks.jnative.misc.basicStructures.HANDLE;
import org.xvolks.jnative.util.Callback;
public class catchDLL2 {
private static JNative v = null;
/**
* 加载的DLL
*/
private static final String DLL_LIB = “BxADLL.dll”;
// 强制关机
static void SetScreenState(int a){
int i=0;
try{
v = new JNative(DLL_LIB, “SetScreenState”);
Pointer p = new Pointer(MemoryBlockFactory.createMemoryBlock(100));
v.setParameter(i++,1);
v.setParameter(i++,a);
p.setStringAt(0,”ScreenStateData1″);
v.setParameter(i++,p);
v.invoke();
}catch(Exception e){
e.printStackTrace();
}
}
//设置亮度
static void SetScreenLight(int a){
int i=0;
try{
v = new JNative(DLL_LIB, “SetScreenLight”);
Pointer p = new Pointer(MemoryBlockFactory.createMemoryBlock(100));
v.setParameter(i++,1);
v.setParameter(i++,a);
p.setStringAt(0,”ScreenLight1″);
v.setParameter(i++,p);
v.invoke();
}catch(Exception e){
e.printStackTrace();
}
}
//设置显示屏参数
static void SetScreenParameter() throws NativeException, IllegalAccessException{
int i = 0;
v = new JNative(DLL_LIB, “SetScreenParameter”);
Pointer p3 = new Pointer(MemoryBlockFactory.createMemoryBlock(100));
p3.setStringAt(0,”ParametetData1″);
//设置参数
v.setParameter(i++,1);
v.setParameter(i++,64);
v.setParameter(i++,32);
v.setParameter(i++,2);
v.setParameter(i++,2);
v.setParameter(i++,0);
v.setParameter(i++,0);
v.setParameter(i++,p3);
//设置返回值类型
//v.setRetVal(Type.INT);
v.invoke();
}
//发送命令 参数是包含命令的文件
static int SendDataToComm(String pchar,int i){
int ret=1;
try{
v = new JNative(DLL_LIB, “SendDataToComm”);
System.out.println(v.getDLLName());
Pointer p = new Pointer(MemoryBlockFactory.createMemoryBlock(100));
Pointer p2 = new Pointer(MemoryBlockFactory.createMemoryBlock(100));
//设置参数
v.setParameter(0,1);
v.setParameter(1,i);
v.setParameter(2,64);
v.setParameter(3,32);
v.setParameter(4,2);
p.setStringAt(0,”Com1″);
v.setParameter(5,p);
v.setParameter(6,57600);
p2.setStringAt(0,pchar);
v.setParameter(7,p2);
//设置返回值类型
v.setRetVal(Type.LONG);
v.invoke();
//System.out.println(“LED设备=”+p2.getAsString());
ret = Integer.parseInt(v.getRetVal());
}catch(Exception e){
e.printStackTrace();
}
return ret;
}
//取得发送全部显示屏数据的数据头信息,在添加显示区域信息前添加。
static void GetAllDataHead(){
try{
int i = 0;
v = new JNative(DLL_LIB, “GetAllDataHead”);
/*Pointer p = new Pointer(MemoryBlockFactory.createMemoryBlock(100));
p.setStringAt(0,”SendAllDataHead1″);*/
//设置参数===================
//显示屏屏号
v.setParameter(i++,1);
//显示屏中区域的个数
v.setParameter(i++,2);
//字幕区域的宽度
v.setParameter(i++,64);
//字幕区域的高度
v.setParameter(i++,32);
//显示屏类型
v.setParameter(i++,2);
//字幕区域信息保存的文件名;
v.setParameter(i++,”SendAllDataHead1″);
//设置返回值类型
//v.setRetVal(Type.INT);
v.invoke();
}catch(Exception e){
e.printStackTrace();
}
}
//合并显示区域信息文件
static void UnionAreaDataToFile(int a,int b,String file,int c){
try{
int i = 0;
v = new JNative(DLL_LIB, “UnionAreaDataToFile”);
/*Pointer p = new Pointer(MemoryBlockFactory.createMemoryBlock(100));
Pointer p1 = new Pointer(MemoryBlockFactory.createMemoryBlock(100));
p.setStringAt(0,file);
p1.setStringAt(0,”SendAllData1″);*/
//设置参数===================
//pSourceFile是否是区域文件;1:区域文件;0:非区域文件;
v.setParameter(i++,a);
//区域序号;从1开始;
v.setParameter(i++,b);
//预合并信息文件名称
v.setParameter(i++,file);
//合并目标文件名称。
v.setParameter(i++,”SendAllData1″);
//0:在原文件下添加合并信息文件;1:删除原文件信息,重新创建合并信息文件
v.setParameter(i++,c);
//设置返回值类型
//v.setRetVal(Type.INT);
v.invoke();
}catch(Exception e){
e.printStackTrace();
}
}
//转换 字幕区域显示信息 SendDataTitle1 D1
static void SetScreenTitle(int nAreaOrdID,int x,int y,int hight,int big,String pTitle,int nStunt,int nRunSpeed,int nShowTime){
try{
int i = 0;
v = new JNative(DLL_LIB, “SetScreenTitle”);
Pointer p = new Pointer(MemoryBlockFactory.createMemoryBlock(100));
//Pointer p1 = new Pointer(MemoryBlockFactory.createMemoryBlock(100));
Pointer p2 = new Pointer(MemoryBlockFactory.createMemoryBlock(100));
p.setStringAt(0,”宋体”);
//p1.setStringAt(0,pTitle);
p2.setStringAt(0,”SendDataTitle1″);
//设置参数===================
//区域序号
v.setParameter(i++,nAreaOrdID);
//字幕区域的横坐标
v.setParameter(i++,x);
//字幕区域的纵坐标
v.setParameter(i++,y);
//字幕区域的长度
v.setParameter(i++,64);
//字幕区域的高度
v.setParameter(i++,hight);
//显示屏类型
v.setParameter(i++,2);
//点阵类型
v.setParameter(i++,1);
//字幕区域显示字体
v.setParameter(i++,p);
//字幕区域显示字号
v.setParameter(i++,big);
//字幕区域显示颜色; 1:红色;2:绿色;3:黄色
v.setParameter(i++,1);
//粗体;1:粗体;0正常
v.setParameter(i++,0);
//斜体;1:斜体;0正常
v.setParameter(i++,0);
//下划线;1:下划线;0正常
v.setParameter(i++,0);
//字幕区域显示的字幕滚动信息
v.setParameter(i++,pTitle);
//字幕区域显示特技;具体特技特征字见注1;
v.setParameter(i++,nStunt);
//字幕区域信息运行速度
v.setParameter(i++,nRunSpeed);
//字幕区域信息停留时间
v.setParameter(i++,nShowTime);
//字幕区域信息保存的文件名;
v.setParameter(i++,p2);
//设置返回值类型
//v.setRetVal(Type.INT);
v.invoke();
}catch(Exception e){
e.printStackTrace();
}
}
//设置亮度
static void setLight(int a){
//设置亮度 SetScreenLight(1–15) ScreenLight1
SetScreenLight(a);
int ret=SendDataToComm(“ScreenLight1″,0xc8);
if(ret==1) System.out.println(“亮度设置发送成功”);
else System.out.println(“亮度设置发送失败”);
}
//强制开关机
static void setState(int a){
//强制开关机 SetScreenState(1表示开机 0表示关闭); ScreenStateData1
SetScreenState(a);
int opendown=SendDataToComm(“ScreenStateData1″,0xC4);
if(opendown==1) System.out.println(“开关机发送成功”);
else System.out.println(“开关机发送失败”);
}
//设置屏参
static void setParameter() throws NativeException, IllegalAccessException{
//设置显示屏参数 SetScreenParameter(); ParametetData1
SetScreenParameter();
int par=SendDataToComm(“ParametetData1″,0xC1);
if(par==1) System.out.println(“显示屏参数发送成功”);
else System.out.println(“显示屏参数发送失败”);
}
// UnionAreaDataToFile 1:区域文件;0:非区域文件; 区域序号;从1开始;
//0:在原文件下添加合并信息文件;1:删除原文件信息,重新创建合并信息文件
//发送字幕 message1显示上面 message2显示下面
public static void SendMessage(String message1,String message2){
GetAllDataHead();
UnionAreaDataToFile(0,0,”SendAllDataHead1″,1);
//16是字幕显示高度 12是字体大小
SetScreenTitle(1,0,0,16,12,message1,1,1,2);
UnionAreaDataToFile(1,1,”SendDataTitle1″,0);
SetScreenTitle(2,0,16,16,12,message2,1,1,2);
UnionAreaDataToFile(1,2,”SendDataTitle1″,0);
//设置字幕 SetScreenTitle(); SendDataTitle1
//SetScreenTitle();
int title=SendDataToComm(“SendAllData1″,0xD1);
if(title==1) System.out.println(“向显示屏发送数据成功”);
else System.out.println(“向显示屏发送数据失败”);
}
// 发送字幕 message1显示上面 全屏显示
public static void SendOne(String message1){
GetAllDataHead();
UnionAreaDataToFile(0,0,”SendAllDataHead1″,1);
SetScreenTitle(1,0,0,32,24,message1,1,1,2);
UnionAreaDataToFile(1,1,”SendDataTitle1″,0);
//设置字幕 SetScreenTitle(); SendDataTitle1
//SetScreenTitle();
int title=SendDataToComm(“SendAllData1″,0xD1);
if(title==1) System.out.println(“向显示屏发送数据成功”);
else System.out.println(“向显示屏发送数据失败”);
}
public static void main(String[] args) {
try{
//1~15 亮度增加
//setLight(1);
//0关机 1 开机
//setState(1);
//设置屏参
//setParameter();
SendMessage(“浙A-T56865″,”杭州威玛计算机系统有限公司”);
//SendOne(“中国你好”);
}catch(Exception ne){
System.err.println(“listAllDevice NativeException!”);
//releaseCard();
ne.printStackTrace();
}
}
}


 

标签:,
Java从网络获取股票实时数据,2种方法webservice和javascript 收藏 - 十二月 8, 2009 by yippee

 Java从网络获取股票实时数据,2种方法webservice和javascript 收藏


两种方法:
1.http/javascript接口取数据
2.web-service接口
1. http/javascript接口取数据
1.1 Sina股票数据接口
以大秦铁路(股票代码:601006)为例,如果要获取它的最新行情,只需访问新浪的股票数据
接口:http://hq.sinajs.cn/list=sh601006 这个url会返回一串文本,例如:
var hq_str_sh601006=”大秦铁路, 27.55, 27.25, 26.91, 27.55, 26.20, 26.91, 26.92,
22114263, 589824680, 4695, 26.91, 57590, 26.90, 14700, 26.89, 14300,
 26.88, 15100, 26.87, 3100, 26.92, 8900, 26.93, 14230, 26.94, 25150, 26.95, 15220, 26.96, 2008-01-11, 15:05:32″;
这个字符串由许多数据拼接在一起,不同含义的数据用逗号隔开了,按照程序员的思路,顺序号从0开始。
0:”大秦铁路”,股票名字;
1:”27.55″,今日开盘价;
2:”27.25″,昨日收盘价;
3:”26.91″,当前价格;
4:”27.55″,今日最高价;
5:”26.20″,今日最低价;
6:”26.91″,竞买价,即“买一”报价;
7:”26.92″,竞卖价,即“卖一”报价;
8:”22114263″,成交的股票数,由于股票交易以一百股为基本单位,所以在使用时,通常把该值除以一百;
9:”589824680″,成交金额,单位为“元”,为了一目了然,通常以“万元”为成交金额的单位,所以通常把该值除以一万;
10:”4695″,“买一”申请4695股,即47手;
11:”26.91″,“买一”报价;
12:”57590″,“买二”
13:”26.90″,“买二”
14:”14700″,“买三”
15:”26.89″,“买三”
16:”14300″,“买四”
17:”26.88″,“买四”
18:”15100″,“买五”
19:”26.87″,“买五”
20:”3100″,“卖一”申报3100股,即31手;
21:”26.92″,“卖一”报价
(22, 23), (24, 25), (26,27), (28, 29)分别为“卖二”至“卖四的情况”
30:”2008-01-11″,日期;
31:”15:05:32″,时间;
这个接口对于JavaScript程序非常方便,通常的使用方式为,静态或动态地在页面中插入:
<script type=”text/javascript” src=”http://hq.sinajs.cn/list=sh601006” charset=”gb2312″>
</script>
 <script type=”text/javascript”>
 var elements=hq_str_sh601006.split(“,”);
document.write(“current price:”+elements[3]);
</script>
这段代码输出大秦铁路(股票代码:601006)的当前股价
current price:14.20
如果你要同时查询多个股票,那么在URL最后加上一个逗号,再加上股票代码就可以了;比如你要一次查询大秦铁路(601006)和大同煤业(601001)的行情,就这样使用URL:
http://hq.sinajs.cn/list=sh601003,sh601001
但如果你要查询大盘指数,情况会有不同,比如查询上证综合指数(000001),使用如下URL:
http://hq.sinajs.cn/list=s_sh000001 服务器返回的数据为:
var hq_str_s_sh000001=”上证指数,3094.668,-128.073,-3.97,436653,5458126″;
数据含义分别为:指数名称,当前点数,当前价格,涨跌率,成交量(手),成交额(万元);
查询深圳成指的URL为:
http://hq.sinajs.cn/list=s_sz399001
 
对于股票的K线图,日线图等的获取可以通过请求http://image.sinajs.cn/…./…/*.gif此URL获取,其中*代表股票代码,详见如下:
查看日K线图:
http://image.sinajs.cn/newchart/daily/n/sh601006.gif
分时线的查询:
http://image.sinajs.cn/newchart/min/n/sh000001.gif
日K线查询:
http://image.sinajs.cn/newchart/daily/n/sh000001.gif
周K线查询:
http://image.sinajs.cn/newchart/weekly/n/sh000001.gif
月K线查询:
http://image.sinajs.cn/newchart/monthly/n/sh000001.gif
 
2.   web-service接口
2.1  CHINAstock的web-service:
http://www.webxml.com.cn/WebServices/ChinaStockWebService.asmx
中国股票行情数据 WEB 服务(支持深圳和上海股市的全部基金、债券和股票),数据即时更新。输出GIF分时走势图、日/周/月 K 线图、及时行情数据(股票名称、行情时间、最新价、昨收盘、今开盘、涨跌额、最低、最高、涨跌幅、成交量、成交额、竞买价、竞卖价、委比、买一 – 买五、卖一 – 卖五)。此WEB服务提供了如下几个接口:
2.1.1  getStockImageByCode
GET 股票GIF分时走势图
INput:theStockCode = 股票代号,如:sh000001
POST /WebServices/ChinaStockWebService.asmx HTTP/1.1
Host: www.webxml.com.cn
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: http://WebXml.com.cn/getStockImageByCode
<?xml version=”1.0″ encoding=”utf-8″?>
<soap:Envelope xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns:soap=”http://schemas.xmlsoap.org/soap/envelope/“>
  <soap:Body>
    <getStockImageByCode xmlns=”http://WebXml.com.cn/“>
      <theStockCode>string</theStockCode>
    </getStockImageByCode>
  </soap:Body>
</soap:Envelope>
Output:
2.1.2 getStockImageByteByCode
获得中国股票GIF分时走势图字节数组
INput:theStockCode = 股票代号,如:sh000001
POST /WebServices/ChinaStockWebService.asmx HTTP/1.1Host: www.webxml.com.cnContent-Type: text/xml; charset=utf-8Content-Length: lengthSOAPAction: “http://WebXml.com.cn/getStockImageByteByCode” <?xml version=”1.0″ encoding=”utf-8″?><soap:Envelope xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns:soap=”http://schemas.xmlsoap.org/soap/envelope/“>  <soap:Body>    <getStockImageByteByCode xmlns=”http://WebXml.com.cn/“>      <theStockCode>string</theStockCode>    </getStockImageByteByCode>  </soap:Body></soap:Envelope>
返回的数据如下:
<?xml version=”1.0″ encoding=”utf-8″ ?>
  <base64Binary xmlns=”R0lGODlhIQIsAfcAAAAAAAwLBxkGBQ4ODhAQEBsSChUVFS4TDB8eGQkA9koPCDAAzy4mFVgAp2UYC0IqEUYuBVwiDEAsI1QnFX8AgDU1NUozFlgxD6cBWVY5FnIwEmQ4Gc0AMlhDHPEADlVJMEpKSm1IHOUBWpY3FZMyVY9IGXRWIEFmWGNYUmpdPXJgHQB8HK9EGGBgX4lXIACoAHhkMyt4m4VkJtstbv8A’>http://WebXml.com.cn/”>R0lGODlhIQIsAfcAAAAAAAwLBxkGBQ4ODhAQEBsSChUVFS4TDB8eGQkA9koPCDAAzy4mFVgAp2UYC0IqEUYuBVwiDEAsI1QnFX8AgDU1NUozFlgxD6cBWVY5FnIwEmQ4Gc0AMlhDHPEADlVJMEpKSm1IHOUBWpY3FZMyVY9IGXRWIEFmWGNYUmpdPXJgHQB8HK9EGGBgX4lXIACoAHhkMyt4m4VkJtstbv8A
 
2.1.5  getStockInfoByCode
获得中国股票及时行情
input:theStockCode = 股票代号
POST /WebServices/ChinaStockWebService.asmx HTTP/1.1Host: www.webxml.com.cnContent-Type: text/xml; charset=utf-8Content-Length: lengthSOAPAction: “http://WebXml.com.cn/getStockInfoByCode” <?xml version=”1.0″ encoding=”utf-8″?><soap:Envelope xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns:soap=”http://schemas.xmlsoap.org/soap/envelope/“>  <soap:Body>    <getStockInfoByCode xmlns=”http://WebXml.com.cn/“>      <theStockCode>string</theStockCode>    </getStockInfoByCode>  </soap:Body></soap:Envelope>返回的值一个一维字符串数组 String(24),结构为:String(0)股票代号、String(1)股票名称、String(2)行情时间、String(3)最新价(元)、String(4)昨收盘(元)、String(5)今开盘(元)、String(6)涨跌额(元)、String(7)最低(元)、 String(8)最高(元)、String(9)涨跌幅(%)、String(10)成交量(手)、String(11)成交额(万元)、String (12)竞买价(元)、String(13)竞卖价(元)、String(14)委比(%)、String(15)-String(19)买一 – 买五(元)/手、String(20)-String(24)卖一 – 卖五(元)/手。
 
Web service的方法类似于现在concurrent项目的DBWS数据的获取,都是通过SOAP协议向DBWS服务器获取相关的数据。

标签:,
OPhone初步印象 - 九月 2, 2009 by yippee

今天转悠转悠,跑到了OPHONE网站去了。
首先去的是:http://www.mmarket.com/
然后进入了开发者社区:http://dev.chinamobile.com/cmdn/supesite/
里面的资料还有些,看了看OPHONE SDK的一点编程资料
从DEMO又调到了:http://www.ophonesdn.com/documentation/ophone/gettingstarted/hello_ophone.html
这是一个源码:
http://www.ophonesdn.com/documentation/ophone/samples/ophoneapps/HomeAPIDemo/src/oms/samples/home/HomeAPIDemoActivity.java.html

  • /**
  • * This demo implement 3 functions:
  • * 1. Add/Remove symbol to shortcut.
  • *    For example: In Feiton, if you received messages, you can show the
  • *    message count on the shortcut. While user read the message, remove
  • *    the symbol from Fetion shortcut.
  • * 2. Add shortcut on Home Screen.
  • *    If you install an application, you can use Home Screen API
  • *    to add shortcut on Home Screen.
  • *    If you want to delete the shortcut, you should delete it manually.
  • *    Long press the shortcut item, and select ’delete’ item.
  • * 3. Register a broadcast receiver, so you can know when the Home Screen
  • *    load complete or when the shortcut is added.
  • * For more detail, see the following demo code.
  • * */
  • 感觉还是太复杂了

  • TextPaint textPaint = new TextPaint();
  • textPaint.setColor(Color.WHITE);
  • textPaint.setAntiAlias(true);
  • textPaint.setTextAlign(Align.CENTER);
  • textPaint.setTextSize(14f);
  • textPaint.setFakeBoldText(true);
  • canvas.drawBitmap(bg, 0, 0, null);
  • canvas.drawText(Integer.toString(mUnreadMessageCount), bg
  • .getWidth() / 2, 14, textPaint);
  • 看来没有可视化界面编程,如果做复杂界面程序,估计是个痛苦的事情
    至于编程也是大同小异。
    也是NEW,然后设置属性,最后画出来
    不过CANVAS好像很强悍的样子
    画图,画文本

    标签:,
    20080520 asp.net c# java - 一月 30, 2009 by yippee

    20080520 asp.net c# java
    http://www.yippeesoft.com

    http://www.cnblogs.com/teddyma/archive/2008/01/09/1031975.html
    NBearLite PetShop 4.0示例源码

    http://www.cnblogs.com/jessezhao/archive/2007/10/12/922804.html
    SdaiBuy 山建大校内购物网开源发布(提供下载)

    http://www.cnblogs.com/teddyma/archive/2007/07/26/831646.html
    再续NBear性能测试:ADO.NET, NBearV3, NHibernateV1, NBearLite, NBearLite+NBearMapping性能比较[2008/1/3修订:NBearLite更新至v1.0.1.0整合NBearMapping 版地测试结果]

    http://www.cnblogs.com/teddyma/archive/2007/05/18/nbearsolution.html
    基于NBear的快速开发解决方案

    http://nbear.org/Modules/Articles/Detail.aspx?i=67
    基于NBearV4构架的开发流程图

    http://www.builder.com.cn/2007/0821/462646.shtml
    [图]超微型开源web框架Camping

    http://studyasp.info/dot-net-sql/xml-scripts-tutorial/access-form-code-352.html
    C# AOP微型框架实现(一)

    http://tech.it168.com/j/n/2007-05-09/200705091133359_5.shtml
     四、在MSIL世界建立起强大的AOP帝国

    http://tech.it168.com/msoft/2007-12-12/200712120909676.shtml
    用.NET实现AOP框架

    http://bbs.dotnettools.org/newsdetail.asp?id=5315&page=1&lp=2
    AOP框架叫Sophus

    http://www.dotnettools.org/Blog/article.asp?id=88
    比Aspect#更快的.NET AOP框架-Sophus Beta

    http://www.alixixi.com/Dev/Web/ASPNET/aspnet2/2007/200702066538.html
    基于.Net的AOP实现技术

    http://www.cnblogs.com/wayfarer/archive/2007/08/23/866499.html
    基于.NET的AOP开源框架PostSharp 1.0 beta发布

    http://hi.baidu.com/vmusicworm/blog/item/95872acb87f1df1dbf09e663.html
    asp.net web安装程序

    http://topic.csdn.net/t/20031002/12/2321095.html
    asp.net.Web应用程序怎么生成setup.exe安装程序呢?在线等!!!

    http://dev.yesky.com/msdn/348/2014848.shtml
    ASP.NET 2.0中WEB应用程序的部署

    http://www.javaeye.com/news/1893
    回复:Java已经输掉了web之战

    http://www.javaeye.com/news/5
    原创新闻 点评Java full-stack框架

    http://www.cstengel.de/tutorial/trails_firebird_tutorial/
    Getting started with Trails and Firebird

    http://blog.sina.com.cn/s/reader_4dd66f5501007pvh.html
    ibatis

    http://www.java-docs.com/java/jiaocheng_90/wendang_2/2575/javaarticle_1.html
    在ibatis的入门例子中就被卡住了

    http://blog.csdn.net/fenglibing/archive/2007/08/08/1732911.aspx
    初学iBATIS的朋友,如果你不看我这篇文章,你一定后悔,因为它官方文档里面的示例少一个")"

    http://blog.csdn.net/myloon/archive/2007/11/08/1873652.aspx
    Hibernate+Spring+Struts2+ExtJS开发CRUD功能

    http://blog.csdn.net/clearwater21cn/archive/2005/11/18/532148.aspx
    修改AppFuse

    http://www.ibm.com/developerworks/cn/java/j-appfuse/
    使用 AppFuse 的七个理由

    http://hi.baidu.com/cheney_home/blog/item/a036fd16df655819972b43f0.html
    C#开发应用程序框架

    http://wayfarer.cnblogs.com/articles/28537.html
    C# 插件构架实战(Jack H Hansen )

    http://www.boogu.com/caiContent_22430.html
    Java EE 架构指导:AppFuse

    http://www.cnblogs.com/guanjinke/archive/2007/02/14/650792.html
    构建插件式的应用程序框架(二)----订立契约

    http://www-128.ibm.com/developerworks/cn/java/j-tapestry2/
    了解 Tapestry,第 2 部分

    http://hi.baidu.com/honfei/blog/item/edafe2896f2955b60f244484.html
    ASP.NET生成静态页面和分页主要的原理就是替换模板里的特殊字符。

    http://hi.baidu.com/ayifa/blog/item/552ff81f41ed8c67f724e437.html
    ASP.NET的模板实现(c#)

    http://blog.csdn.net/arfayr/archive/2006/04/30/697699.aspx
    OrFlying For VB.NET 使用说明

    http://9host.cn/asp.net/2007421123406.html
    用c#开发程序应用框架

    http://www.qqread.com/dotnet/u722882000.html
    .NET代码生成器有助于快速应用程序开发

    http://hi.baidu.com/wlyln/blog/item/b7e033b34bbc0aa3d8335a29.html
    Asp.net里实现分页浏览方法大总结

    http://www.xuancheng.org/archiver/?tid-146832.html
    ext js配合dwr在java中的用法

    http://www.cnblogs.com/server-you/archive/2006/09/20/509945.aspx
    Sql中LEN函数处理汉字长度问题(sql、len、字节)

    http://www.iusesvn.com/html/90/t-1790.html
    使用STATSVN统计代码开发情况入门

    http://www.chinardm.com/blog/user1/dracula/archives/2007/701.html
    软件开发管理规范流程图

    ASP.NET 缓存:方法和最佳实践
    http://www.microsoft.com/china/MSDN/library/WebServices/ASP.NET/ASP.NETCaching-TechniquesandBestPractiCEs.mspx?mfr=true

    http://msdn.microsoft.com/zh-cn/library/y5y3c2c5(VS.80).aspx
    ASP.NET 状态管理

    标签:, , , ,

    20080411 java err masterpage j avascript - 一月 7, 2009 by yippee

    20080411 java err masterpage javascript
    http://www.yippeesoft.com

    Error registering bean with name \’dataSource\’ defined in class path resource [TobaccoServer.xml]: Could not resolve placeholder \’hibernate.connection.driver_url\’

    =[WARN ] 2008-04-10 21:02:50,046 method:org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:71)
    SQL Error: 17433, SQLState: null
    =[ERROR] 2008-04-10 21:02:50,046 method:org.logicalcobwebs.proxool.Prototyper.sweep(Prototyper.java:105)
    Prototype

    不知道什么时候才可以不出这么弱的Bug。

    Spring 的 DriverManager 在获得 SpringConfig.xml 文件中的数据时(如下格式)

    <property name="url">
      <value>jdbc:mysql://192.168.48.82:3306/iouyou?useUnicode=true&characterEncoding=UTF-8</value>
    </property>

    居然没有用 string.trim()。
    情况是这样的:当在Eclipse中使用 Ctrl+F 布局config.xml 文件后,上面的格式会变化为:
    <property name="url">
      <value>
         jdbc:mysql://192.168.48.82:3306/iouyou?useUnicode=true&characterEncoding=UTF-8
      </value>
    </property>

    此时,Eclipse 做了XML格式的调整。当Spring DriverManager 获取变量的时候。获得的字段是
    "  jdbc:mysql://192.168.48.82:3306/iouyou?useUnicode=true&characterEncoding=UTF-8  "
    (注意包含了前后的空格)因此,导致框架获得数据源出错。错误提示如下:

    No suitable driver 。

    安装Microsoft office xp 很长时间了,今天才发现有个Microsoft Script Editor。Microsoft Script Editor是Microsoft office xp的一个组件。在offic安装Microsoft office xp 很长时间了,今天才发现有个Microsoft Script Editor。Microsoft Script Editor是Microsoft office xp的一个组件。在office工具->宏->Microsoft 脚本编译器进行安装。都安好后,打开IE,在工具->internet选项->高级中,把禁用脚本调试(Internet Explorer)和禁用脚本调试(其他)前面的钩钩去掉。然后重新启动IE,当有JS错误的时候一路点是就会进入调试页面!

    DB2的SQL1032N错误:SQL1032N 未发出启动数据库管理器的命令。 SQLSTATE=57019。

           我遇到的情况是在WSAD中需要数据库联接时,提示启动速据库错误,有的时候是WSAD运行环境的错误,重启WSAD可以解决。也有很难解决的时候,找到的原因和解决方案如下:

           原因一:DB2服务没有启动,在控制面板-管理工具-服务中启动DB2 – DB2-0服务;

           原因二:启动错误,用户名密码在修改之后,WINDOWS将无法用旧的密码启动服务,因此,启动时修改用户名和密码,保证其正常启动。

           原因三:许可证过期,这个错误是在网上搜到的,我没有遇到过,因为我的DB2 是永久版的,嘿嘿。 查看事件管理器,有这样的记录:DB2-DB2-0服务因4294959296服务性错误而停止.来源SERVICE CONTROL 事件ID:7024 。在db2cmd界面下运行db2licm -l,可以很明显的看到许可证已经过期了。

           原因四:也不是自己遇到的情况:DB2的客户端连接不上server,提示如下:
    C:\\Documents and Settings\\Administrator>db2 connect to fjdldw user install using install3211
    SQL30081N  检测到通信错误。正在使用的通信协议:"TCP/IP"。正在使用的通信API:
    "SOCKETS"。检测到错误的位置:"10.142.12.1"。检测到错误的通信函数:"connect"。协
    议特定的错误代码:"10061"、"*"、"*"。  SQLSTATE=08001。

            这个并不是TCP/IP协议的问题,到服务器上检查,会发现DB2实例未起来。
    将任务管理器里的db2fmp进程全部杀掉,然后重新启动实例。db2start,OK!
    小结:后来查了一查,db2fmp进程用于执行受保护的存储过程,或者自定义函数。出错的原因,尚不清楚。出了错误,多查查db2diag.log文件

    Aspx页面套上了MasterPage后,使用Javascript使用无法读取服务器控件的值。  
     请教各位有什么好的办法吗?  

    服务器控件.ClientID,而不是直接使用服务器控件ID

    masterpage里的元素ID前面全加上了ctl00$ContentPlaceHolder1$,好像是masterpage变成了一个控件,然后控件里面板里嵌套了html,如果这样就好理解了

    <script language=javascript>
    <!–
       function CheckTextBox()
       &leftsign;
           var txtAgenNumber=document.getElementById("ctl00$ContentPlaceHolder1$txtAgenNumber");
           var txtAgenName=document.getElementById("ctl00$ContentPlaceHolder1$txtAgenName");
           var txtAgenPwd=document.getElementById("ctl00$ContentPlaceHolder1$txtAgenPwd");
           var txtAgenPwd2=document.getElementById("ctl00$ContentPlaceHolder1$txtAgenPwd2");
         
           if(txtAgenNumber.value=="")
           &leftsign;
             
               alert("代理账号不能为空!");
               txtAgenNumber.focus();
               return false;
           &rightsign;
           if(isNaN(txtAgenNumber.value))
           &leftsign;
             
               alert(\’代理账号必须是数字\’);
               txtAgenNumber.focus();
               return false;
           &rightsign;
           if(txtAgenName.value=="")
           &leftsign;
               alert("姓名不能为空!");
               txtAgenName.focus();
                return false;
           &rightsign;
           if(txtAgenPwd.value==""&line;&line;txtAgenPwd2.value=="")
           &leftsign;
               alert("密码不能为空!");
               txtAgenPwd.focus();
                return false;
           &rightsign;
         
       &rightsign;
       –>
    </script>

    if   you   use   strong-type,   like    
     
     <%@   MasterType     virtualPath="~/MasterPage.master"%>  
     
     you   can   call   the   method   directly!  
     
     Master.YourMethod1();

    标签:, , , ,
    20080412 java HTTP server - 一月 4, 2009 by yippee

    20080412 java HTTP server
    http://www.yippeesoft.com

    http://users.skynet.be/pascalbotte/rcx-ws-doc/xmlpost.htm
    1.5. Java HTTP post for XML SOAP message.

    http://www.devdaily.com/java/jwarehouse/jakarta-tomcat-3.3.2-src/src/share/org/apache/tomcat/util/test/HttpRequest.java.shtml
    This file is included in the DevDaily.com  "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example"

    http://docs.huihoo.com/java/se/jdk6/docs/guide/net/httpserver/spec/com/sun/net/httpserver/Headers.html#size()
    com.sun.net.httpserver
    Class Headers

    http://docs.huihoo.com/java/se/jdk6/docs/guide/net/httpserver/spec/com/sun/net/httpserver/HttpExchange.html
    com.sun.net.httpserver
    Class HttpExchange

    http://blogs.sun.com/sandoz/
    Jersey Client API

    import java.io.IOException;
    import java.net.InetSocketAddress;
    import java.io.BufferedOutputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    import com.sun.net.httpserver.Headers;
    import com.sun.net.httpserver.HttpExchange;
    import com.sun.net.httpserver.HttpHandler;
    import com.sun.net.httpserver.HttpServer;

    public class Test &leftsign;

    public static void main(String[] args) throws IOException &leftsign;
    HttpServer httpServer;
    httpServer = HttpServer.create(new InetSocketAddress(81), 5);
    httpServer.createContext("/", new Handler());

    httpServer.start();

    &rightsign;

    static class Handler implements HttpHandler &leftsign;

    public void handle(HttpExchange exchange) throws IOException &leftsign;
    Headers requestHeaders = exchange.getRequestHeaders();
    Headers responseHeaders = exchange.getResponseHeaders();
    responseHeaders.set("Content-Type", "text/plain");

    exchange.sendResponseHeaders(200, 0L);

    OutputStream responseBody = new BufferedOutputStream(exchange.getResponseBody(), 64*1024);

    responseBody.write("Hello!".getBytes());

    responseBody.close();
    exchange.close();
    &rightsign;
    &rightsign;

    &rightsign;

    http://excalibur.apache.org/download.cgi

    http://httpdbase4j.berlios.de/
    HttpdBase4J is an embeddable Java web server framework that supports HTTP, HTTPS, templated content and serving content from inside an archive. The classes are easy to extend as they utilize the Hollywood \’don\’t call us, we\’ll call you\’ principle to allow the user to overide the framework behaviour during all the different phases of the HTTP transaction. Note:HttpdBase4J uses the Java 6 com.sun.net.httpserver classes so it won\’t currently work under earlier versions of Java.
    HttpdBase4J是一个可嵌入的java web服务器架构,支持http , https协议,模板内容等.实现的类都易于继承,无论在http传输的哪个阶段,开发者可自由重写其框架行为.

    http://www.jguru.com/forums/view.jsp?EID=1333689
    How to server HTML in Java6 com.sun.net.httpserver?

    最近在研究Http   Server,在google上搜索到   com.sun.net.HttpServer   package
    http://excalibur.apache.org/download.cgi 
      excalibur-instrument包中也有你需要的方法,这里是Apache的开源项目,而你找到的是sun公司的一个项目 
      如下是API页面http://excalibur.apache.org/apidocs/org/apache/excalibur/instrument/manager/http/server/HTTPServer.html

      http://cindy.sourceforge.net/
       Cindy is a robust, scalable and efficient asynchronous I/O framework, supports TCP, SSL over TCP, UDP and Pipe. It\’s released under the Apache 2.0 License.

    indy 3.0b1 released
    下载地址:http://cindy.sourceforge.net
     
    修改记录:

        * 添加了hello world示例
        * 添加了简单的tcp/ip服务示例(echo/discard/daytime/chargen)
        * 添加了telnet示例(tcp/udp)
        * 更新了http server示例,支持列表目录
        * 为DefaultPacket添加了两种构造函数:DefaultPacket(ByteBuffer)/DefaultPacket(byte[])
        * 添加了SessionType类,并为Session/SessionAcceptor接口添加了getSessionType方法返回Session类型
        * 为Configuration类添加了set方法
        * 在SessionFactory类中加入了createSession(SessionType)和 createSessionAcceptor(SessionType)两个方法,原来的 createSocketSession/createDatagramSession/createSocketSessionAcceptor方法被 deprecated
        * 修正DirectDispatcher.block中的bug,原实现在判断是否为核心线程方面存在Bug

        http://www.mortbay.org/
        Jetty is an open-source, standards-based, full-featured web server implemented entirely in Java. It is released under the Apache 2.0 licence  and is therefore free for commercial use and distribution. First created in 1995, Jetty has benefitted from input from a vast user community and consistent and focused development by a stable core of lead developers. There are many more examples of Jetty in action on the Jetty Powered Page that has selections from among the tens of thousands of production Jetty instances. However, as Jetty aims to be as unobtrusive as possible, countless websites and products are based around Jetty, but Jetty is invisible!

    Full commercial support, training and development services for Jetty and Jetty-based projects are available from Webtide .

    http://www.onjava.com/pub/a/onjava/2003/04/23/java_webserver.html
    How Java Web Servers Work

    http://java.sun.com/javase/6/docs/jre/api/net/httpserver/spec/com/sun/net/httpserver/package-summary.html
    Package com.sun.net.httpserver

    Mina、Cindy和QuickServer

    http://dev.csdn.net/author/calvinxiu/e28cd84b9ddc4e88a34afce45eed8f68.html
    QuickServer–在吵闹的环境里快速搭建自己的TcpServer(Pragmatic系列)

    http://www.blogdriver.com/zeroliu/1242606.html
    循证架构:QuickServer/Cindy/Mina- -

    http://blog.csdn.net/numenZQ/archive/2007/05/22/1621482.aspx
    项目组织的最佳实践

    设置文件夹结构并按照类型划分数据库对象。

    http://blog.csdn.net/zhangliulin/archive/2007/10/16/1826707.aspx
    设计一个美好的服务器–MINA、CXF、Mule、JBoss/Geronimo

    http://blog.csdn.net/zhangliulin/archive/2007/10/16/1826710.aspx
     轻的,谁都会写的Service方案–REST与JSON 

     最近研究了Java 通讯框架,感觉很不错,由于NETTY2的停止开发,Netty2的作者转而开发了MINA这个Framework,到是也不错,不过我建议有工夫的话,各位不妨也看看咱们国产的Cindy ,呵呵,这可不是抵制日货才说的,这个Framework 到还不错,推荐给大家啊,实在没时间写 Cindy ,Jive Messenger 的相关资料,各位自己有空去研究一下吧,且作者最近的Cindy2.4我开也不错,下面有他的BLOG连接,自己去看吧!

    Cindy blog  :  http://spaces.msn.com/members/crmky/

    Java Eye Cindy : http://www.javaeye.com/viewtopic.php?t=11185&start=15

    SourceForge : http://sourceforge.net/projects/cindy/

    Cindy:http://cindy.sourceforge.net

    Netty2:http://gleamynode.net/dev/

    MINA:http://www.apache.org/~trustin/mina-20050207/index.html

    http://www.javaeye.com/topic/33992
    NIO框架Cindy中HTTP范例的一个BUG及修改

    http://svn.apache.org/viewvc/mina/branches/1.0/example/src/main/java/org/apache/mina/example/httpserver/codec/
    /mina/branches/1.0/example/src/main/java/org/apache/mina/example/httpserver/codec

    http://docs.safehaus.org/display/ASYNCWEB/Home
    AsyncWeb is a high-throughput, non blocking Java HTTP engine – designed throughout to support asynchronous request processing

    http://mina.apache.org/documentation.html
    Apache MINA – The High Performance Protocol Construction Toolkit (ApacheCon US 2007)

    Can MINA handle text protocols such as HTTP?

    Yes. Please take a look at the Reversed and HTTP server examples. AsyncWeb is a HTTP server implementation based on MINA.

    http://hi.baidu.com/jabber/
        *  Java中目前有2种选择,一种是基于Apache MINA框架的,稍复杂但适合用在大场合;一种是基于Java Web容器自己提供的支持,如Jetty和Tomcat,适合comet只是应用中一小部分场合。
        * Mina只是个网络层(相当socket层)的框架,如果用mina需要自己实现HTTP协议。好消息是这个工作已经有开源做了,一个叫Asyncweb项目在mina的基础上实现了HTTP协议层的封装。而且asyncweb正在被mina合并,将加入到mina的发行版中。

    用asyncweb编程很简单,只需实现一个接口,实际上只需要实现 handleRequest, 在 request 返回结果。

    public interface HttpService
    &leftsign;
        void handleRequest( HttpServiceContext context ) throws Exception;

        void start();

        void stop();
    &rightsign;

    AsyncWeb是一个高性能,非阻塞(non-blocking ),可内嵌在应用程序中使用的Java HTTP引擎。它始终围绕支持异步请求处理而设计。AsyncWeb还能与Spring框架集成。

    http://www.blogjava.net/hengheng123456789/archive/2007/09/03/142325.html
    MINA Beginning

    http://hi.baidu.com/zeorliu/blog/item/80d2b26e3b3e10de80cb4a62.html
    使用Apache-MINA开发高性能网络应用程序(转)

    http://www.w3.org/Jigsaw/User/api/w3c.www.http.HttpRequestMessage.html
     Class w3c.www.http.HttpRequestMessage

     NanoHTTPD

     A free, simple, tiny (1 java file!), nicely embeddable HTTP server in Java.
    Getting the software:

    nanohttpd is currently a pre-alpha software. This means that no stable version is available. Thus, to make sure you get the freshest version, you should use CVS:

    cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/nanohttpd login 
    cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/nanohttpd co nanohttpd

     http://nanohttpd.sourceforge.net/example.html

    The Fizmez Web Server is a small Web server written in Java. Its source code can serve as a useful learning tool for those who wish to learn about Java server sockets.
    http://freshmeat.net/projects/fizmezwebserver/

    http://javenstudio.org/blog/?page_id=25
    SOCKET的封装(Java中Socket类的C++实现)

    http://blog.csdn.net/jackfor001/archive/2007/12/14/1936594.aspx
    Mina 应用开发—新手入门

    pygmy
    最近做得p2p项目要用到pygmy这个微型http server。pygmy的用法非常简单,首先是一份properties文件,可以是这个样子:

    https://sourceforge.net/project/showfiles.php?group_id=87807
    Pygmy is a 40KB portable http stack written in Java. It is ideal for PDA and resource limited devices, as well as desktop applications and server applications. Pygmy provides a plug-in architecture so features can be added and removed easily.

    http://www.open-open.com/30.htm

    http://cucme.blog.163.com/blog/static/6804543200792411039843/
    java代码框架示例……socket通信(server)

    http://hi.baidu.com/ofbase/blog/item/29fe2e24f2c8e72ad50742de.html
    Apache MINA 线程模型配置

    http://www.zeali.net/entry/70
    Http协议客户端的JAVA简单实现

    http://dev.csdn.net/article/7/7991.shtm
    用Java实现Web服务器

    http://tech.163.com/tm/030531/030531_95888.html
    实战Java Web服务器--使用HTTP协议和JAVA类实现

    标签:, ,

    20080410 java JadClipse eclipse - 一月 3, 2009 by yippee

    20080410 java JadClipse eclipse
    http://www.yippeesoft.com

    在使用Java编写复杂一些的程序时,你会不会常常对一层层的继承关系和一次次方法的调用感到迷惘呢?幸亏我们有了Eclipse这么好的IDE可以帮我们理清头绪--这就要使用Eclipse强大的代码追踪功能。

    1、用Open Declaration可以查看类、方法和变量的声明。这是最常用的一个功能了,如果在要追踪的对象上点右键,选择Open Declaration,可以跳转到其声明的地方。这个功能有个快捷键是F3,当然你也可以按住Ctrl键,鼠标移过去会变成一个小手,单击就可以了。

    2、用Open Type Hierarchy可以查看类的继承关系,可以在Hierarchy窗口看到继承层次的导航。在方法或类名上点击右键,选择Open Type Hierarchy即可,快捷键是F4。

    3、 用Open Call Hierarchy可以查看方法的调用层次。如果想知道一个方法在别的什么地方被调用了,这个功能就很好用了,实际中也很常用,比如要重构一个方法时,想知道他对其它什么地方可能有影响,就可以用这个功能。在方法名上点击右键,选择Open Type Hierarchy即可,快捷键是Ctrl+Alt+H。可以在Call Hierarchy窗口看到方法的调用层次的导航。

    4、用Open Super Implemention可以查看当前方法在父类中的实现或接口中的声明(前提是该方法是对父类或接口中相应方法的重写),在方法名上点击右键,选择Open Super Implemention即可。

    5、最后介绍一个超级好用的功能,叫Open Implemention,就是可以跳转到某个调用的方法的具体实现的地方去。为什么说这个是超级好用呢?用过Spring的人都知道,现在都提倡面向接口编程,所以,如果使用Open Declaration来追踪一个方法的调用的话,只会看到该方法在接口中的声明,而看不该方法在具体类中的实现,当然,可以使用Call Hierarchy先得到该方法的整个的调用层次,然后再导航到具体的实现处,但操作有些麻烦了。有了Open Implemention,就可以直接看到实现的代码了,在方法名上点击右键,选择Open Implemention就可以了

    Ctrl+T 可以方便的在接口和类之间跳转

    Content-Length比如“宋体”,它的GB2312编码生成字节序列 0xcb,0xce,0xcc,0xe5,

    http://www.kpdus.com/jad.html#download
    Jad – the fast JAva Decompiler

    http://jadclipse.sourceforge.net/wiki/index.php/Main_Page
    JadClipse is a plug-in that seamlessly integrates Jad (the fast Java decompiler) with Eclipse.

    Normally, when opening a class file the Class File Viewer will show a brief API outline of the class. If you install this plug-in, however, the Class File Viewer will be replaced with the JadClipse Class File Viewer that shows the decompiled source of the class. This task is accomplished by decompiling the corresponding class file in the background using Jad. Normal Java syntax highlighting as well as the Outline View are supported.

    jadclips插件网站:http://jadclipse.sourceforge.net/
    一、下载:
    下载插件:
    下载jadclipse_3.1.0.jar版本,该版本支持eclipse3.1M6以上
    下载jadclipse_3.2.0.jar版本,该版本支持eclipse3.2M3和eclipse3.2M4。
    下载jadclipse_3.2.2.jar版本,该版本支持eclipse3.2M5以上。
    下载Jad反编译工具:
    http://www.kpdus.com/jad.html#download,在该页中找到适合自己操作系统平台的jad下载。下载后解压,然后将解压后的jad.exe文件复制到%JAVA_HOME%\\BIN目录下面(可以将jad.exe随便放到哪,只要记住路径就好,下面要用到)。
    二、安装:
    方法1、直接将jadclipse_3.1.0.jar复制到%ECLIPSE_HOME%\\plugins目录下。
    方法2、使用link方式安装,建立E:\\eclipse3.1plugins\\jadclipse3.1.0\\eclipse\\plugins的目录结构,将jadclipse_3.1.0.jar放到plugins目录下面(注:其中E:\\eclipse3.1plugins为你自己定义的一个专门放置插件的目录)。再在%ECLIPSE_HOME%\\links目录下面建立一个jadclipse3.1.0.link文件(该文件名随便取,保证后缀为.link就OK).文件里面内容为:path=E:\\\\eclipse3.1plugins\\\\jadclipse3.1.0。
    启动eclipse,打开Window->Preferences->Java->JadClipse,如果没有找到 JadClipse,检查插件安装的版本是否与你安装的eclipse版本对应。我安装的eclipse是:eclipse3.1.2
    三、设置参数:
    启动eclipse,打开:Window->Preferences->Java->JadClipse。
    1、Path to decompiler,这里设置反编译工具jad的全路径名,比如:%JAVA_HOME%\\bin\\jad.exe。
    2、Directory for temporary files,这里设置临时文件路径。
    至于Window->Preferences->Java->JadClipse目录下的Debug,Directives,Formatting,Misc目录中的参数设置,就不罗嗦。
    四、 安装完成后,eclipse自动将JadClipse Class File Viewer设置成class文件的缺省打开方式。如果没有默认,可以在Eclipse的Windows–> Perference–>General->Editors->File Associations中修改“*.class”默认关联的编辑器为“JadClipse Class File Viewer”。设置完成后,双击*.class文件,eclipse将自动反编译

    标签:, ,

    20080410 Eclipse java 开发 1 - 一月 2, 2009 by yippee

    20080410 Eclipse java 开发 1
    http://www.yippeesoft.com

    先进入cmd并进入到文件所在目录
    输入dir /a-d /b *.mp3>1.txt
    这样将这个目录下的所有文件都导入到了1.txt文件中
    其中可能有我们不需要改名的文件的名字,只需要对1.txt做相应的修改就可以了。
    再打开1.txt用记事本的替换功能去除B2U2,另存为2.txt保存在当前目录。即2.txt保存了目的文件名。
    现在开始写批处理
    @for /f %%a in (1.txt) do (
    if exist %%a for /f %%b in (2.txt) do (
    rename %%a %%b))
    保存在后缀名为bat的文件,也放在当前目录。
    这样就可以了

    使用eclipse怎样打开已有工程 

            在开始使用Eclipse的时候,会发现一个问题,那就是如何打开一个现有的Eclipse工程,开始在菜单中找了好久也没找到。
      其实,Eclipse生成的结果不像VC,Jcreator那样可以直接打开,若要打开非workspace文件夹下的其他已有工程,可以打开菜单 file->import→general→existing project into space.在select root directory中选中要打开的文件夹即可。此时如果选择copy existing project into workspace就会同时将文件拷贝到workspace下。这里首先要保证要保证Eclipse两个文件.classpath和.project还在,不然无法导入,就是说Eclipse的import只认自己家的东西。
      如果要打开的工程与Eclipse的配置不同,在运行时会产生问题。解决方法是:
      打开菜单project→properties修改。主要需要修改的是java build path项。

    也可以先把要导入的工程直接放在eclipse的工作区目录下,然后用eclipse新建一个工程,名字和导入的工程名字一样,就会自动把整个工程导入进去了。

    http://lizemin314.blog.163.com/blog/static/111285122007102843758784/
    Eclipse 插件安装、升级和卸载的方法(转)

    http://www.bc-cn.net/Article/sjk/mysql/jszl/200601/3436.html
    Eclipse+JBoss+MySQL开发环境设置全攻略

    http://hi.baidu.com/damoqingquan/blog/item/9a405ada25cfd4dfb6fd48e9.html
    eclipse插件安装

    Severity and Description Path Resource Location Creation Time Id
    ArrayList is a raw type. References to generic type ArrayList<E> should be parameterized  jdbc/core   line 27 1207725182750 36

    9. Eclipse下的Svn配置

    版本控制软件SVN的eclipse插件Subclipse,下载地址:http://subclipse.tigris.org/

    添加方式:打开MyEclipse,Help—Software Updates—Find and Install…– Search for new features     to install. 下一步,New Remote site,在弹出框中,name写“svn”,URL写http://subclipse.tigris.org/update_1.2.x,一路确定下去。

           Windows->Preferences->Team检查是否有SVN节点,点击SVN即可看到该插件的设置界面。右击项目名-> Team->Share Project…打开项目共享对话框,对话框有两个选择,一是Eclipse内置的对CVS的支持,还有另外一个就是我们刚装上的SVN。选择SVN进入服务器设置界面,输入svn服务路径,用户名,密码,确认下去,到此完成。

           Could not save encoding settings.
    Exception occurred while saving project preferences: /.settings/org.eclipse.core.resources.prefs.

    问题:当导入html文件出现乱码怎么办!
    解决办法:文件--》 右键 --》属性 改文件的编码和网页中所有的编码一致即可!

    举例:针对我前面一篇讲如何使mysql,php页面和html页面不出现乱码问题可以有一下解决方案!(现在公认要用utf比较好,所以一律按照utf-8来处理)

    1.参照http://blog.csdn.net/bingyupiaoyao/archive/2008/02/06/2085439.aspx我这篇文章解决相关乱码问题!
    2将html文件用convertz802转化成utf-8编码(如果已经是就不改)
    3.文件--》 右键 --》属性 改文件的编码为utf-8,这样就使得mysql,php,html都没有乱码了!

    在eclipse中,报错:
    Resource is out of sync with the file system
    查阅资料后发现这是文件系统不同步的问题,是因为在eclipse之外对工程中的resource进行修改引起的;但是,有时没有在eclipse之外进行修改,也会报类似的错误。
    解决办法:需要手动刷新一下资源管理器。
    (1)在eclipse中,工程目录右键,选择F5(refresh)
    (2)设置eclipse自动刷新。
               通过Window->Preferences->General->Workspace,选中Refresh automatically。

    另外今天突然发现以前RCP应用程序启动出错,查看日志,起初以为是RCP导出问题,后来发现即使是HelloWorld的程序系统都运行报错 java.lang.UnsupportedClassVersionError: cn/com/datamanager/Application (Unsupported major.minor version 49.0)。
    java -version查看才知机子上还有jre1.4。
    原来是装Oracle数据库的时候自动安装的(Sybase比Oracle人性化很多,嘿嘿)。

    Tiger的泛型功能使得编译器对类型的安全性进行检查,特别是Java集合,如下面的例子:

           public void nonGenericsMethod() &leftsign;

                  List wordList = new ArrayList(); // no typing information on the List

                  wordList.add("foo"); // causes error on list addition

           &rightsign;

    l         编译器会给出下面的警告信息:

    Type safety: The method add(Object) belongs to the raw type List. References to generic

     type List<E> should be parameterized

    l         这对于Tiger的代码是很有帮助的,但对于JDK1.4及以前版本,不断的收到无关的警告信息是很烦人的

    l         可以使用@SuppressWarnings来阻止指定类型的警告信息,如:

           @SuppressWarnings(value = &leftsign; "unchecked" &rightsign;)

           public void nonGenericsMethod() &leftsign;

                  List wordList = new ArrayList(); // no typing information on the List

                  wordList.add("foo"); // causes error on list addition

           &rightsign;

    l         传递给@SuppressWarnings的类型值是一个数组,因此可以同时阻止多种类型的警告信息

    Type safety: The method add(Object) belongs to the raw type List. References to generic type List should be parameterized

    example

    List    treenode = new ArrayList

    treenode.add(node);

    javadoc  中List这样定义 Public  interface List<E> extends Collection,Iterable
           注意这个<E>,它就是JavaTiger的类型安全标志,到这里可以给出在保证类型安全时例子中的List应该如何定义了: List<TreeNode> treenode = new ArrayList<TreeNode>();   TreeNode为自定义类型,当然可以其它类型了,不过统一使用一种类型就是安全的了,不会有这个警告。

    同理,map不加<>也会出现类似的警告

    Map<String,Integer> h=new HashMap<String,Integer>();

    Severity and Description Path Resource Location Creation Time Id
    No start tag (<a>).   line 202 1207726134734 4810

    http://www.cnblogs.com/sunywong/articles/666875.html
    转载:搭建Eclipse+MyEclipse+Tomcat开发环境

    配置jboss IDE :点run->debug->点中jboss4.x,在右边选择debug模式,然后新建一个configuration,取名JbossServer4,然后配置jboss安装目录以及运行模式default,保存,然后在window->preferences中选择JBOSS-IDE 下面的launcher,在右边的default server中填入:jboss 4.0.x:JbossServer4 , apply,关闭窗口,这时候菜单default server中的选项都可用了,选择start,就可以启动jboss服务器啦

    标签:, , ,
    20080409 java 表现层 oracle 远程  7wxAop - 十二月 30, 2008 by yippee

    20080409 java 表现层 oracle 远程  7wxAop
    http://www.yippeesoft.com

    ajax+web service?

    配置文件目录:oracle\\ora92\\network\\admin\\tnsnames.ora

    med113 =//本地服务名,随便命名
    (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)//协议(HOST = 192.168.0.113)//远程主机ID(PORT = 1521)//远程主机端口)
        )
        (CONNECT_DATA =
          (SERVER = DEDICATED)//默认不用管他
          (SERVICE_NAME = med)//远程服务名
        )
    )

    例子远程数据库:
    url:jdbc:oracle:thin:@192.168.0.113:1521:med
    username/password:med/med

    打开Oracle Net Configuration Assistant,可以看到四个选项,如图1所示:

      选择本地Net服务名配置,而不用配置监听程序,监听程序将自己机器上的服务提供给别人使用的。也就是服务器端才需要配置。
      再就是输入服务器端提供的服务名称,即创建数据库时给定的全局数据库名,然后是主机名,可以写IP,然后填写Net服务的名称,默认与服务器端提供的服务名称相同,不过可以改为自己认为更有意义的名称。

      配置完成以后就可以使用超好的Pl/SQL Developer工具连接服务器了。如图2:

      在Database处填 写刚才配置的Net服务的名称。

      另外由于我机器上装的是Oracle 10g Database以及客户端,要连接远程Oracle 9i的服务器,就需要配置一下PL/SQL Developer

      如上图所示,Oracle Home和OCI library需要配置一下。

    防火墙下面添加如下就可以用远程访问了:

    c:\\oracle\\ora92\\bin\\oracle.exe

    c:\\oracle\\ora92\\bin\\TNSLSNR.EXE

    在服务器端的sqlnet.ora应类似   
      sqlnet.authentication_services=   (nts)   
      names.directory_path=   (tnsnames,   onames,   hostname)   
      trace_level_client   =   16   
      注册表的home0加[hkey_local_machine]   
      use_shared_socket=true   
      
      [q]如何利用hostname方式连接数据库   
      host   name方式只支持tcp/ip协议的小局域网   
      修改listener.ora中的如下信息   
      (sid_desc   =   
                  (global_dbname   =   ur_hostname)   –你的机器名   
                  (oracle_home   =   e:\\oracle\\ora92)   –oracle   home   
                  (sid_name   =   orcl)   –sid   name   
              )   
      然后在客户端   
      的sqlnet.ora中,确保有   
      names.directory_path=   (hostname)   
      你就可以利用数据库服务器的名称访问数据库了    

      1.遠端數據庫LISTENER要開啟
    2.在客戶端要在TNSNAME.ORA中添加遠端數據的別名
    3.TNSPING命令,能PING通別名,那麼就可以連接了

    http://www.xjawa.org/xjawa/kontent/10024.html

    我在vs2008里面前台的javascript   函数加了断点,可是执行起来断点根本不起作用???   不是说VS2008支持直接调试了吗~~~

    IE--选项--高级--浏览--禁用脚本调试(去掉选择)

    很多时候程序员会为了解决一个问题而不断发现新的问题,从而陷入一种深渊,千万不要忘记你在做什么,你的目的,你的源头。

    CMS(Content Management System,内容管理系统)是一个内涵可大可小的概念.广义的说,只要是利用计算机系统对信息(Information)内容进行管理的系统,都可以称为内容管理系统(这就包含那些传统的文档管理系统,确实有些重量级CMS厂商最初做的就是文档管理系统);Kontent5 CMS系统实现的是Web下的CMS,即基于Web技术,管理各种Web下流行的信息类型(主要是HTML,图片)的内容,以Web信息发布为目的的内容管理系统,有些厂商也称之为 eb CMS,或WCM,这个概念也不包含Web流媒体服务系统,Web地理信息系统等需要专门技术支撑的"内容管理".

    http://www.xjawa.org/xjawa/kontent/80089.html
     2、极端体验:初学者10分钟实现完整的单表增删改查功能

     http://www.xjawa.org/content/bbs/article.page?id=23
     Web层框架的下一个王者,如果不是Ajax,将是业界的悲哀

     http://www.xjawa.org/system/studio/document.html
     7wxAop是一个基于Ajax概念的Web开发框架,由浏览器端的7WX框架和服务器端的AOP框架构成。“7WX”是 “XML”翻转过来的形状,其含义为“非XML的Ajax框架”,前端程序只依赖DOM和Javascript,不需要XML。“AOP”是Action Orient Programming的缩写(不同于Aspect Orient Programming的AOP),强调后端编程以Action(或者叫Request、Command、Service)为中心,把每个HTTP Request的处理过程都看做一个独立的业务逻辑Service。

     http://dev.21tx.com/2006/12/15/12683.html
     独立的思想 由AJAX应用引发的深思

     http://dev.yesky.com/497/2253497.shtml
     表现层框架Struts/Tapestry/JSF比较

     http://www.blogjava.net/qixiangnj/archive/2007/08/05/134474.html
     http://www.java120.com/article/show.asp?id=219
     J2EE核心模式之表现层设计考虑和不佳实践

     http://www.phome.net/e/DoPrint/?classid=8&id=2952
     J2EE表现层设计思考

     ajax、spring和struts结合实现无刷新验证用户名是否存在
     http://hi.baidu.com/fgfd0/blog/item/80230f4f98871e32afc3aba0.html

     对于Struts和Spring两种MVC框架的比较
     http://hi.baidu.com/ecgql/blog/item/8e692afa6129968d9f514633.html

     http://hi.baidu.com/cyrist/blog/item/804d902f16df74381e30896e.html
     Web框架比较:Struts、Spring MVC、WebWork、Tapestry和JSF(by Matt Raible)

     http://hi.baidu.com/shan12345/blog/item/1c9af5033962c4773912bb9e.html
     选择哪一个JDK版本

     表现层框架Struts/Tapestry/JSF比较
     http://www.hbjjrb.com/Jishu/jsp/200704/7570_3.html

     http://blog.sina.com.cn/s/blog_4848ca4e010006zx.html
     Struts,Tapestry,JSF三种MVC架构比较

     http://hi.baidu.com/shan12345/blog/item/7924ba385d6120c2d5622558.html
     struts Spring Hibernate tapestry jsf ejb 用哪一个

    适合c/s模式开发  Eclipse  IDE  for  Java  Developers      
    适合web应用程序开发    Eclipse  IDE  for  Java  EE  Developers  
    标准版    Eclipse  Classic       

    标签:, ,

    20080403 web 压力测试 java 反编译 - 十二月 28, 2008 by yippee

    20080403 web 压力测试 java 反编译
    http://www.yippeesoft.com

    http://download.csdn.net/sort/tag/JAVA%E5%8F%8D%E7%BC%96%E8%AF%91
    "JAVA反编译"相关的文件

    jad:反编译工具下载
    jad:反编译工具

    可以将class文件反编译成java文件

    假设将jad.exe安装在f:\\java\\jad目录下

    把要反编译的文件*.class复制到此目录下,接着接以下步骤,

    在命令行窗口环境中进入jad目录,

    然后运行:jad -s java *.class (附,*.class指要反编译的文件名)

    如果*.class文件和jad程序不在同一个目录,就要用到path环境变量,

    将jad 所在目录加到path路径中即可:set path=%path%;f:\\java\\jad

    若要了解jad更为详细的使用帮助信息,直接运行jad.exe查看

    一般的class用反编译能够看到其源代码,而且其反编译的源代码甚至可能好于本身源代码(尤其是对于逻辑处理和字符串处理)
    然而涉及到exception等东西的时候可能会有问题,但是你把它放到ide里面修改一下就可以了,生成的class文件也是可行的,但是关键的一点,编译环境最好与之前的编译环境一样,否则高版本的java生成的class也许在低版本中无法调用

     目前最好用的反编译工具是jad(http://www.kpdus.com/jad.html), 不过这个是一个命令行工具,如果需要反编译大量文件,可能不太方便使用。
    如果你使用eclipse,可以下载插件http://sourceforge.net/projects/jadclipse/,非常方便。
    使用jad反编译之后的代码,绝大多数情况是能够修改之后再次编译的,但是对于一些比较复杂尤其使用了反射机制的代码,不能保证。

    http://sillycat.spaces.live.com/blog/cns!5424bf520a0adc3!256.entry
    Java Service Wrapper注册WINDOWS服务

    Java Service Wrapper部署说明
    Java Service Wrapper是一个开源的软件,能够将Java程序发布到不同平台,并保证其JVM正常运行。

    http://www.diybl.com/course/3_program/java/javashl/2008125/97183_3.html
    java service wrapper 在linux下实现jar用服务启动

    Java Service Wrapper(http://wrapper.tanukisoftware.org/doc/english/introduction.html)major features including:

       1. 在windows平台的以服务运行,在Unix平台以后台Daemon运行;
       2. 提供应用的高可用性,通过监控JVM进程来实现,发现JVM进程crash或者挂起,就restart it;
       3. 针对各平台提供一致的应用启动脚本;
       4. 提供应用restart自身JVM的能力(Restart on-demand);
       5. 易于安装和管理,支持JMX

       ava Service Wrapper可以把Java应用程序安装成一个Windows NT服务或Unix Daemon.它同时还为应用程序提供日记功能,灵活的配置,可靠的运行性能,按需求重新启动,简化应用程序的安装等,

    该项目主页:http://wrapper.tanukisoftware.org

    http://tristones.viaspeip.com/archives/000297.html
    Siege:压力模拟/测试工具

    http://blog.twkang.net/2006/08/05/apache-benchmark-%e8%bb%9f%e9%ab%94/
    Apache Server Benchmark 測試

    http://my.huhoo.net/archives/2008/01/web.html
    Web压力测试工具介绍

    http://blog.csdn.net/yanhuohy/archive/2006/12/16/1445365.aspx
    web应用程序测试方法和测试技术详述[转]

    http://httpd.apache.org/docs/2.0/programs/ab.html
    ab – Apache HTTP server benchmarking tool

    http://www.acme.com/software/http_load/
    http_load – multiprocessing http test client

    http://www.blogjava.net/gf7/default.html?page=6
    Tomcat性能调整

    http://blog.csdn.net/ququhu/archive/2005/02/28/304800.aspx
    测试设计中需要考虑的22种测试类型

    http://blog.csdn.net/ququhu/archive/2005/02/28/304794.aspx
    做测试员报告BUG时,必须知道的事.    CSDN Blog推出文章指数概念,文章指数是对Blog文章综合评分后推算出的,综合评分项分别是该文章的点击量,回复次数,被网摘收录数量,文章长度和文章类型;满分100,每月更新一次。
    1. 是什么样的错误?
    2. 错误级别?
    3. 在哪个模块,在源程序哪一行或哪几行?
    4. 这个错误会对其它部分和整个系统造成什么影响?
    5. 为什么会出现这个错误?(程序当时是怎么想的)
    6. 修改建议,修改后又可能对系统造成影响(可能出现什么潜在错误)
    7. 如果这个错误没有被发现,到了市场会有什么负作用?
    8. 牛B如果知道了,会怎么利用这个BUG?(专门为此写了一段攻击代码,还现场演视了一下效果)
    9. 有什么方法可以 避免或减少此类错误?
    10.其它公司对此类错误是如何处理的?

    http://www.2qyou.com/viewthread.php?tid=357
    Web测试工具 http_load 一个httpd 压力测试工具

    标签:, , ,

    20080402 oracle java jboss - 十二月 26, 2008 by yippee

    20080402 oracle java jboss
    http://www.yippeesoft.com

    java.sql.SQLException: Connections could not be acquired from the underlying database!

    就是说在3.2版本中,如果hibernate.cache.use_second_level_cache被设定为true,那么我们需要自己设定一下hibernate.cache.provider_class的类名。因为现在的Hibernate已经不再有默认的hibernate.cache.provider_class了。

    http://www.hackhome.com/InfoView/Article_164669.html
    ORACLE建库过程与操作

    http://afy.itpub.net/post/1825/10216
    Oracle手工建库

    http://www.zxbc.cn/html/javajq/0413443843353.html
    spring下hibernate的连接池配置

    http://www.njhoo.com/csdn/knowledge.php/54-5414-5124769.html
    TOMCAT 连接池连oracle连不上

    http://www.23book.net/softwaredev/java/34673.htm
    异常java.sql.sqlexception: io exception:the network adapter could not establish connection
    PROBLEM
        You are attempting to connect to an Oracle instance using JDBC and you are receiving the following error.
        java.sql.SQLException: Io exception:
        The Network Adapter could not establish connection
        SQLException: SQLState (null) vendor code (17002)
       
        Any or all of the following conditions may also apply:
       
        1) You are able to establish a SQL*Plus connection from the same
        client to the same Oracle instance.
       
        2) You are able to establish a JDBC OCI connection, but not a Thin
        connection from the same client to the same Oracle instance.
       
        3) The same JDBC application is able to connect from a different
        client to the same Oracle instance.
       
        4) The same behavior applies whether the initial JDBC connection
        string specifies a hostname or an IP address.
       
       
       
        REDISCOVERY
        To verify whether you are hitting this problem, verify whether the Oracle instance is configured for Multithreaded Server (MTS). If the Oracle instance is not configured for MTS, you are probably encountering a different problem. Otherwise, continue. Try forcing the JDBC connection to use a dedicated server instead of a shared server. This can be accomplished in several ways. For JDBC OCI or Thin, this can be done by reconfiguring the server for dedicated connections only. This approach, however, may not be feasible in many cases. In such cases, the following options apply: For JDBC OCI:
       
        1) Add the (SERVER=DEDICATED) property to the TNS connect string
        stored in the tnsnames.ora file on the client.
       
        2) Set the user_dedicated_server=ON in sqlnet.ora on the client.

    http://blog.csdn.net/mark_ma_lj/archive/2007/08/17/1747512.aspx
    异常java.sql.SQLException: Io exception:The Network Adapter could not establish connection

    http://www.aaa-nnn.cn/soft/p146/A14617929.shtml
     请教spring1.2.1+hibernate3.05的配置

     http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=46313&messageID=275170
      weblogic10和spring2.0的兼容问题

      http://www.javaeye.com/post/492412
      Struts+Spring+Hibernate的sessionfactory找不到该怎么解决?

      http://www.blogjava.net/blameswood/articles/189085.html
      Spring+Hibernate+Struts

      http://blog.csdn.net/qiuxiao1981/archive/2007/08/28/1761507.aspx
      Error creating bean with name \’sessionFactory\’ defined in ServletContext resource 

        
       
    Error creating bean with name \’sessionFactory\’ defined in ServletContext resource
    http://www.boogu.com/caiContent_5067.html

    http://book.csdn.net/bookfiles/440/10044015613.shtml
     Eclipse Web开发从入门到精通(实例版)

     http://www.51testing.com/index.php?action/viewspace/itemid/69335
     Jboss运行就报错了

     oracle默认的用户名和密码是什么?
     SYSTEM
    manager

    http://hi.baidu.com/laolian1226/blog/item/11f420f09b4497aba50f5256.html
    oracle 10g默认用户名、密码解锁

     赞同 sqlplus / as sysdba 这是以SYSDBA这个角色登陆SQLPLUS,SYSDBA只是个角色,它本身并没有密码

    用sysdba进入的时候,就可以改密码了
    alter user username account unlock identifed by password

    username是用户名
    password是你想要的密码

    微软于2008年3月推出了未来操作系统Singularity模型的开发包 Singularity Research Development Kit (RDK) 1.1。通过字典可以看到是“唯一、罕有、突出的意思”属于概念型操作系统,目前还出于研究阶段。通过发布的RDK可以下载到研究中的模型的实验性代码,该开发板同时以开源方式发布到CodePlex网站。

    该系统主要由基于C#的扩展语言Sing#构建。包括软件独立进程(SIP)、基于契约(Contract)的信道、基于清单(Manifest)的应用程序。

    有关更多singularity的消息可以在微软MSDN Channel9上查到,同时可以在微软官方介绍页上了解更多消息 访问介绍页 http://research.microsoft.com/os/singularity/
    有一篇关于这个系统的详细介绍的论文:Singularity: Rethinking the Software Stack,在这里可以下载http://www.research.microsoft.com/os/singularity/publications/OSR2007_RethinkingSoftwareStack.pdf

    http://shangducms.cn/articls/net/webservice/ns2244.aspx
    Java与.NET 的Web Services相互调用

    http://shangducms.cn/articls/net/dotnet/ns2249.aspx
    MVC: 不带 Web 窗体的 Web 应用程序

    http://www.windbi.com/showtopic-153-1.aspx#301
    SQLServer2005里怎样对使用with encryption选项创建的存储过程解密

    http://topic.csdn.net/u/20070128/01/e2ad65e5-a2f2-4290-b03d-e5f4713c0f78.html
    sql server2005存储过程是否还可以象2000一样解密?  

    http://www.readygo.com.cn/it-492549.html
    关于存储过程解密的!

    http://www.cnblogs.com/rock_chen/archive/2005/05/15/155674.html
    sqlserver2000存储过程解密(转贴)

    http://hi.baidu.com/xeonwell/blog/item/b4414533e30523f91a4cff01.html
    ASP链接MSSQL2005的链接字符串如下:
    Provider=SQLNCLI;Server=.\\SQLEXPRESS;Database=master;Uid=xeonwell;Pwd=xxxx;

    下面是一个完整的连接字符串
    Provider=SQLNCLI.1;Password=pass;Persist   Security   Info=True;
    User   ID=sa;Initial   Catalog=ct;Data   Source=mydb\\db2005    

    http://help.powereasy.net/help/SiteWeaver/1097.html
    在sql2005上还原 sql2000 的备份数据库

    标签:, ,

    20071218 javacript form asp.net 控件 css - 十月 4, 2008 by yippee

    20071218 javacript form asp.net 控件 css
    http://www.yippeesoft.com

    .btn_2k3 &leftsign;
    BORDER-RIGHT: #002D96 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #002D96 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 12px; FILTER: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#FFFFFF, EndColorStr=#9DBCEA); BORDER-LEFT: #002D96 1px solid; CURSOR: hand; COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #002D96 1px solid
    &rightsign;

    </style></head><body>
    <script language="JavaScript">

    function removelst(e1, e2)
    &leftsign;
         Control = null;
        Control=eval("document.form1.ListBox1");
      
        var j=Control.length;
        if(j==0) return;
        for(j;j>0;j–)
        &leftsign;
         if(Control.options[j-1].selected==true)
         &leftsign;
           Control.remove(j-1);
         &rightsign;
         &rightsign;
                  &rightsign;
    function movelst(ControlName)
       &leftsign;
        Control = null;
        Control=eval("document.form1.ListBox1");
        Control1 = null;
        Control1=eval("document.form1.TextBox1");
        var j=Control1.length;
        if(j==0) return;
     
       Control.add(new Option(Control1.value,Control1.value));
        &rightsign;
    </script>
    <form id="form1" runat=server>
        <br />
        <div id="title">
            调查问卷</div>
    <div class="row"><label class="col1">
        启用问卷:&nbsp;</label>
    <span class="col2">
        <asp:CheckBox ID="CheckBox1" runat="server" /></span>
    </div>
    <div class="row"><label class="col1comment">
        问卷内容:&nbsp;</label>
    <span class="col2comment"><textarea cols="20" class="textarea" rows="4" name="comment" id="comment" tabindex="4"></textarea></span>
    </div>
     <div id="title">
            选择答案</div>
    <div class="row"><label class="col1">
        选择答案:&nbsp;</label>
    <span class="col2">
        <asp:TextBox ID="TextBox1" runat="server" Width="144px"></asp:TextBox></span>
    </div>
    <div class="row"><label class="col1comment">
        选择答案列表:<br />
        <!– <asp:Button ID="Button3"  Text="新增" CssClass="btn_2k3" OnClientClick="javascript:movelst(document.form1.TextBox1, document.form1.ListBox1)"  /> –>
        <input   alt="send" border="0" height="19" type="button" value="新增" width="52" class="btn_2k3" onclick="javascript:movelst(document.form1.TextBox1, document.form1.Select1)" /><br />
        <br />
        <input   alt="send" border="0" height="19" type="button" value="删除" width="52" class="btn_2k3" onclick="javascript:removelst(document.form1.TextBox1, document.form1.Select1)" /><br />
        <br /></label>
    <span class="col2comment">&nbsp;<asp:ListBox ID="ListBox1" runat="server" Height="96px" Width="144px"></asp:ListBox></span></div>
    <div class="submit" align="center">
        &nbsp;<asp:Button ID="Button1" runat="server" Text="提交调查问卷" CssClass="btn_2k3" /></div>
    </form>

    </body></html>

     使用Ajax实现DropDownList和ListBox的联动以及两个ListBox之间数据的移动  
     http://blog.csdn.net/zhanghongqiao/archive/2007/11/23/1899550.aspx

     ASP.NET ListBox刷新的问题
     http://topic.csdn.net/t/20060725/18/4904251.html

     http://singlepine.cnblogs.com/archive/2005/10/15/255353.html
     ListBox(上移,下移,左移,右移)

     js函数绑定到asp.net的控件上:
        用 控件.Attributes.Add(事件,函数) 就可以了,可我在往 CheckBox上加 OnCheckedChanged 事件的时候总是报错。

        在 asp.net 中访问 html 控件:
        一气之下,把所有控件都换成了 html 的,然后在控件上加上 runat=server 这样在 asp.net 中就可以引用了。用 (FindControl(控件id) as html控件类型).属性,如 (this.FindControl("ddlMonth") as HtmlSelect).SelectedIndex ……

        在html网页中读取asp.net的变量
        为了能够在js中读取asp.net中的数据,要保证asp.net中变量的类型js能够分辨,其实想办法变成string的就得了呗!
        其次,要把变量声明为 Public 的。
        在js中使用 变量="<%#asp.net变量名%>";  的形式即可得到变量的值,如 var id = "<%#userid%>"; (asp.net中Public string userid = "zhangsan";

        <script language="JavaScript">
    function checkform()&leftsign;
    if(document.form1.remark.value.length <0 &line;&line; document.form1.remark.value.length > 100)&leftsign;
    alert("长度应为0-100个字符,请重新输入!");
    document.form1.remark.focus();
    return false;
    &rightsign;
    &rightsign;
    </script>

    <form name=form1 method="post" action="****" onSubmit="return checkform()">
    </form>

    JavaScript添加下拉菜单项 
              var   oOption   =   document.createElement("OPTION"); 
              oOption.value=theArr[i-2]; 
              oOption.text=theArr[i-1]; 
              thisform.kind.options.add(oOption);  

       http://www.soojs.com/d/?textfield=1049

       http://veerle.duoh.com/index.php/blog/comments/styling_forms_in_css/

       http://www.picment.com/articles/css/funwithforms/

       http://www.alistapart.com/articles/taminglists/

       http://blog.d8in.com/posts/92.html
       以下是http://veerle.duoh.com收藏的css相关文章以及站点,分门别类非常的全,如果能把下面的所有链接里面的内容都精通的话,绝对就已经是顶级css高手了。

       http://hi.baidu.com/seowatch/blog/item/98eac919e68f6b79dbb4bd32.html
       Form styling with CSS

       Styling even more form controls
       http://www.456bereastreet.com/archive/200410/styling_even_more_form_controls/

       http://www.456bereastreet.com/lab/form_controls/select/
       Styled select boxes

       Styling form controls
       http://www.456bereastreet.com/archive/200409/styling_form_controls/

       http://www.soojs.com/t/?p=1049&wd=form+%C3%C0%BB%AF&cl=7
       表单form的美化(一系列的美化,都有了)

       Accessible CSS Forms: Using CSS to Create a Two-Column Layout
       http://www.websiteoptimization.com/speed/tweak/forms/

       Styling multiple selection menu controls (select elements) with CSS
       http://www.456bereastreet.com/lab/styling-form-controls-revisited/select-multiple/

       CSS Examples  Tableless forms using CSS

       Applying CSS to forms
       http://www.webcredible.co.uk/user-friendly-resources/css/css-forms.shtml

       HTML里select的CSS样式的改变
       http://www.ui163.com/w3c/second_1499.html

       用CSS设置下拉列表(select)的样式
       http://www.dayjs.com/html/net/css/20070712/6537.html

       用ASP.NET 2.0设计网络在线投票系统
       http://www.knowsky.com/339824.html

       表单制作-用CSS来美化表单
       http://hi.baidu.com/7833532/blog/item/d985721eda8d47f41bd576b9.html

       ASP.NET 2.0中的数据操作:使用两个DropDownList过滤的主/从报表
       http://hi.baidu.com/myaspdotnet/blog/item/44dea5313f7a78a95fdf0e73.html

       利用GridView显示主细表并添加删除、打开、关闭功能(续)

      
     GridView模版列嵌套GirdView显示主从表数据
     http://blog.csdn.net/jianzi1943/archive/2006/12/07/1434194.aspx

     http://eddie005.cnblogs.com/archive/2006/07/04/442845.html

     GridView的主从表编辑和新增
     http://www.cnitblog.com/hj627/archive/2007/04/30/26459.html#26460

     http://blog.csdn.net/lqscoke/archive/2007/06/02/1634974.aspx
     asp.net 2.0 所谓的吐血收藏

     GridView的主从表编辑和新增
     http://www.cnitblog.com/hj627/archive/2007/10/25/26459.html

     http://dotnet.aspx.cc/SearchDoc.aspx?k=gridview

    利用GridView显示主细表并一次编辑明细表所有数据的例子
    利用GridView显示主细表并添加删除、打开、关闭功能(续)
    利用GridView显示主细表并添加打开、关闭功能
    一次编辑   GridView   的所有行

    private UInt32 UnixStamp()
     &leftsign;
             TimeSpan ts = DateTime.Now – TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
             return Convert.ToUInt32(ts.TotalSeconds);
     &rightsign;
    写成函数了.

    使用 GUID 值来作为数据库行标识
    http://www.fish888.com/GUID-t166178

    在.net中创建使用全球唯一标识符

    利用GridView显示主细表并一次编辑明细表所有数据的例子

    .net 2.0中GridView无限级嵌套的实现
    http://overred.cnblogs.com/archive/2006/04/23/382992.html

    演练:创建嵌套的 GridView 控件
    http://msdn2.microsoft.com/zh-cn/aa992038(vs.80).aspx

    Nested GridViews with Skins in ASP.NET
    ExtGridView
    Drag and drop gridview item for ordering in ASP.Net 2.0
    Refresh a GridView control on the parent page, from a pop up window

    GridView inline Master/Detail record display

    Gridview Inside a GridView in ASP.NET 2.0

    ASP.NET 2.0中的数据操作 :: 跨页面的主/从报表
    Repeater嵌套使用 (正确)

    HOW TO:使用嵌套 Repeater 控件和 Visual C# .Net 显示分层数据

    使用嵌套的Repeater控件显示分级数据

    使用PagedDataSource类实现DataList和Repeater控件的分页显示功能

    在ASP.NET中利用皮肤对GridView控件进行嵌套
    ASP.NET2.0利用Gridview实现主从关系

    CONVERT(varchar(10),   @BeginDate,120)
    CURDATE( )1
    GETDATE( ) 或 DATE( )  以日期时间的格式返回当前日期。对于许多其它日期函数,该函数作为输入函数很有用,如计算距当天之前或之后的时间间隔。  

    SELECT order_id
    FROM orders
    WHERE order_date = GETDATE()

    Displays orders placed today.

               
          gridview固定列宽,超过内容让其显示省略号… 
          ridView控件——隐藏和显示列

    标签:, , , , , , , ,
    20071121 midp java midp invalid gcc 4 - 九月 5, 2008 by yippee

    20071121 midp java midp invalid
    http://www.yippeesoft.com

    sudo apt-get install build-essential libglib2.0-dev libgtk2.0-dev libxml-dev

      sudo apt-get install libvte-dev libstartup-notification0-dev alsa

      sudo apt-get install libhal-storage-dev libdbus-glib-1-dev python

      sudo apt-get install libxrender-dev libxdamage-dev libjpeg62-dev

      sudo apt-get install libxml++2.6-dev libice-dev libsm-dev libxpm-dev

      sudo apt-get build-dep xfce-mcs-manager

      sudo apt-get build-dep exo

    JAVA  虚拟机的移植需要KVM和MIDP两部分, KVM是实现Class文件的自节码的解析,先到SUN公司的网站下载CLDC和MIDP吧,MIDP把两个版本都下到工作目录,我的工作目录是 /home/ljq,CLDC用1.0的, CLDC1.1支持浮点,但是1.1的编译通不过,MIDP用2.0的,CLDC其实就是KVM

    解压这两个压文件.

    把其中的CLDC目录用mv命令改成为kvm, 否则编译midp的时候找不到该目录,这也是我的血泪摸索的啊

    mv cldc kvm

    可以先看看解压后的doc目录下的移植帮助

    1. 编译KVM

       cd kvm/build

       make

    2. 编译MIDP

    cd $HOME/midp2.0fcs/build/linux/kvm

    make

    3. 可以看到bin目录下生成了preverify等工具,然后运行下看看吧

    ./bin/midp

    看到一个JAVA手机的模拟器了吧

    上一章我实现了CLDC和MIDP在X11上的运行, 今天在LINUX下装了个Appatch 服务器, MIDP的模拟器件可以下载JAVA游戏行了.至于LINUX Appatch服务器怎么安装配置,我也是在网上查的, 当然弄个windows版本的也可以.只要http服务能在MIDP模拟器访问到就OK了.

          QT是用g++编译的, 而CLDC和MIDP是c写的, 所以CLDC和MIDP是不能拿gcc做成库的,因为它要调用QT中C++的函数,至于C中怎么调用C++中的代码,我在开帖说明.但是我觉得先有C后有C++,所以不修改C++代码是无法让C调用C++的函数的. 所以干脆让C文件就g++编译不就OK了.

        我修改了MIDP和CLDC中相关的Makefile,把里面的GCC改为g+, 把其中JRE的路径也改为JRE安装的路经. 还有原来MIDP中的Makefile还定了X11库的位置, 因为它调用了X11的库函数, 现在把Makefile中的这些连接的库都去掉,而是加上QT的库,我的QT库的位置在 -L($QTE_DIR) -lqte  -L($QTOPIA_DIR) -lqtopia

    当然你根据自己的情况把 $QTE_DIR用实际的qte库的路径代替.

    修改后编译MIDP和CLDC, CLDC可以编译通过,因为它调用的都是LINUX的系统函数.而MIDP这下编译通不过了,提示很多的X11的函数找不到.下部的工作就是把这些X11的函数用QT中的函数替换, 还有就是要把模拟器的壳子去掉

    顺便问下: 在VC++6.0中,若源文件的扩展名是.c,  怎么设置让它用c++编译器来设置.我暂时没有想到办法, 以前遇到VC工程中既有C又有cpp扩展名的源文件,要么把c把为cpp,   要么把c的文件编译成一个库

    静态函数的预先声明

    GCC 4.0不支持将一个静态函数的预先(forward)定义直接放到另一个函数的函数体内部。为了修正这个问题,可以将声明移到函数的外部(移到文件名字空间的级别上)。

    int foo(int i) &leftsign;

     

      static int bar(int j);  // ERROR: invalid storage class for function \’bar

     

      bar(i+5);

     

    &rightsign;

     

     

    static int bar(int j);  // OK

     

    int foo(int i) &leftsign;

     

      bar(i+5);

     

    &rightsign;

    标签:, , ,

    20071029 java cldc uclinux - 八月 2, 2008 by yippee

    20071029 java cldc uclinux
    http://www.yippeesoft.com

    移植KVM到arm-linux(1)
    http://jayya.com/?p=109

    KVM在嵌入式Linux上的移植 
    http://blog.csdn.net/zht_sir/archive/2007/06/03/1636342.aspx

    http://dev.csdn.net/author/fyzhao/3ee7494bceb94997bf418b42a8bd009a.html
    KVM本身只带有cldc1.1的类库,功能十分简单,不能满足用户的需求,本篇介绍如何对KVM进行扩展。

    对KVM进行扩展,在Java层十分简单,只要向在编译Java代码时多加一个文件就可以,没什么要说的,麻烦的是如果在加入的Java类中有本地操作该怎么办?本地的C语言代码放在哪里编译才能够供KVM调用?

    答案是KNI。下面就以KNI为主要内容介绍如何对KVM加以扩展,在最后附加一个具体的实现例子。

    1. KNI的特点:

    KNI(K Native Interface)是SUN的KVM(K Virtual Machine)所使用的本地方法调用机制。

    JNI(Java Native Interface)是已经为我们所熟悉的Java本地方法调用机制,JNI一般使用在J2SE或J2EE平台上,本地方法被编进动态链接库,在运行时由Java虚拟机载入。

    KVM中也需要本地调用,但JNI是“重量级”的本地调用方式,在使用时消耗的资源较多,所以针对KVM设计出了KNI,KNI被称为是JNI的一个简化版,是“轻量级”的本地调用方式。KVM不能加载动态链接库,所以在KNI机制下,本地方法不是写在库中,而是编入虚拟机内部。

    以下是KNI与JNI最重要的一些区别:

    KNI是“实现层”的API,即它是虚拟机实现的一部分,修改KNI的API就要重新编译虚拟机,这些API的细节对于Java程序员来说是不可见的;而JNI的API是在运行时动态加载进来的,它的修改与虚拟机无关,JNI的API对于Java程序员来说是可见的。

    KNI的函数建在虚拟机内部,只能为此虚拟机所独享;而JNI的函数放在动态链接库中,可以为多个虚拟机共用。

    由于在虚拟机内部,KNI的很多操作方式与虚拟机有关,在传递参数和控制对象的时候都要先经过一些特别的处理;JNI的调用方式比较直接,但可能会增加安全隐患。

    KNI是JNI的简化版,功能也会弱一些,它不能创建对象,也不能调用Java层的方法。

    总之,“在虚拟机内部”是KNI所有特点的根源,记得这一点,KNI的所有内容都非常容易理解。

    KVM Porting 指南
    4。KVM源码概览
    4.1目录结构概览
    解压KVM包后,在你的目录下生成如下子目录。(假定父目录为j2me_cldc1.0.3)
    目录j2me_cldc1.0.3:
    ■api-Java类库源码
    ■bin-可执行文件,编译的类库
    ■build-编译用的makefile
    ■docs-说明文件
    ■jam-JAM(Java Application Manager)源码
    ■kvm-KVM源码
    ■samples-试例程序源码
    ■tools-辅助工具的源码(如JavaCodeCompact, preverifier,kdp,palm tool等)
    目录j2me_cldc1.0.3kvm:
    ■VmCommon-所有公用的,平台无关的KVM源码都在该目录下
    ■VmExtra-公用的,可选的组件的源码
    ■VmUnix-针对Unix
    ■VmWin-针对Windows
    目录j2me_cldc1.0.3kvmVmCommon:(所有公用的,平台无关的KVM源码)
    ■h-include文件
    ■src-源码
    注:当你要port时,可以把你自己平台相关的源码置于kvm目录之中。例如我要port到W
    inCE我可以这样安排我的源码(kvmVmWinCEsrc-我的源码,kvmVmWinCEh-我的头

    文件,kvmVmWinCEuild-我的makefile)。
    4.2 KVM源码功能简述
    在j2me_cldc1.0.3kvmVmCommonsrc和j2me_cldc1.0.3kvmVmCommonh中包含了K
    VM所有公用的,平台无关的源码和头文件,如下表所示:
    ------------------------------------
    File Description
    ------------------------------------
    StartJVM.c VM的启动和命令行的读取
    bytecodes.c Java bytecodes的定义,自KVM1.0.2后,bytecode解释器被从新设
    计,这部分从interpret.c分离出来。你可以定制VM,使用这里定义的bytecode的子集或
    超集。
    cache.h 内联缓存(inlinecaching)的支持,用以加快方法检索(
    cache.c method lookup)的速度,并支持"fast" bytecodes.(注:关于m
    ethodlookup请参考JLS15.12.4)
    class.h 运行时java类的内部数据结构和操作
    class.c
    events.h 实现事件处理系统
    events.c
    execute.h 解释器的执行宏和操作
    execute.c
    fields.h 用以存储不同类型的域(field)的运行时内部结构。当一个
    fields.c 新类被载入VM时,就会生成一张由这些域组成的表。
    frame.h 定义栈帧(stack frame)和异常处理(exceptionhandling )的
    操作。
    frame.c
    garbage.h 垃圾处理器和内存管理。
    garbage.c
    collector.c
    collectorDebug.c
    global.h 大量全局变量的定义
    global.c
    hashtable.h 实现VM内部使用的哈希表
    hashtable.c
    interpret.h bytecode解释器。
    interpret.c
    loader.h 类载入器。
    loader.c
    log.h 记录并输出运行时VM的诊断信息
    log.c
    long.h 处理64bit运算的特殊的宏
    main.h 编译的选项及系统的预制设定。
    messages.h 错误与警告信息
    native.h JVM所需的native函数和核心native库,注意,KVM是不使用
    native.c JNI(Java Native Interface)的,JNI对小设备来说开销太大了。
    nativeCore.c
    pool.h 常量池(Constant pool)的管理。
    pool.c
    profiling.h 用以描述VM的执行的数据声明与操作
    profiling.c
    property.h 取得Java系统特性的操作。
    property.c

    rom.h ROMizer(JavaCodeCompact tool) 所需的宏.
    runtime.h 平台特有的操作的函数原型定义,注意这里定义的函数通过一个r
    untime_md.c来实现。这也就是说runtime_md.c是建立在你想要port的平台特性之上的。
    stackmap.c Stackmap操作用于支持额外的垃圾收集。
    thread.h 多线程的支持与java的线程管理。
    thread.c
    verifier.h 类文件审核器
    verifier.c

    增加KVM中的系统调用API
    http://kaober.spaces.live.com/

    在Palm开发JAVA程式的心得 
    http://bbs.ustc.edu.cn/cgi-bin/bbsanc?path=/groups/GROUP_4/Java/D900879D8/D7BE53F98/M.1933.A

    KVM Porting 指南⑵
    http://www.zixi.net/article/show.asp?id=37082&Page=2

    标签:, , , ,

    20071029 java cldc midp - 八月 1, 2008 by yippee

    20071029 java cldc midp
    http://www.yippeesoft.com

    何谓 Configuration与 Profile
    为了使J2ME平台可以良好地支持范围广泛 品种诸多的消费性电子设备 以及应对不断变化
    为未来应用提供可扩展的空间 对J2ME平台经行模块化的设计是必不可少的
    渐进中的设备技术
    configuration profile
    因此J2ME平台的设计师们提出了两个新的概念 分别为 配置 和描述
     
    并以它们为核心把J2ME进行了分层化 如图1-5所示

    Configuration
    configuration
    设备的配置 为这些设备定义了一个基本 J2ME运行环境 其中包括虚拟机 和
    核心的java类库 可以把配置理解为一个针对某一族设备的最小的Java平台 其中包括满足该族
    虚拟机 功能的最小子集和针对该族设备的Java类库的最小集合 要注意的是
    设备的Java VM
    configuration主要针对的是系统级的特性
    如基本 Java语言的特性 虚拟机的特性 以及系统
     
    级的java核心类库等
    Profile
    profile configuration
    描述 是构建在配置 层之上的一层类库 它比configuration的针对性
    更强 它提供configuration层中所缺失的功能以支持特定的设备 这些功能包括 对UI 对持续
    Profile层提供了应用程序级的接口
    应用程序就建立在Profile层上 一个
    性存储的支持等
    也就是说一个设备可以支持多个profile 请注意profile
    configuration可能会有好几个profile
    从功能划分的角度来说也是如此 例如 针对某些移动设备 可能会定义一个
    针对的更特定的设备
    这种功能就只能定义在profile中 而不能定义在
    SMS profile以提供收发短消息的功能
     
    configuration中 因为短消息这种功能是只针对手机等移动设备的
    上文抽象的介绍了一下configuration和profile这两个概念
    下面具体的介绍一下J2ME中的
     
    configuration和profile
    J2ME Configuration
    J2ME 配置 Configuration CDC CLDC
    包括两种 分别是连接设备配置 和连接受限设备配置
    J2ME所支持的设备主要分为两种
    正如前面提到过的 配置分别针对的是某一族系的设备 分别通
     
    过CDC和CLDC支持

    根据CLDC规范
    中实
    K虚拟机 K KB
    这就是我们常说的KVM 这个 来自英文Kilobyte 寓
    作了一个虚拟机
     
    意是该VM针对于内存以KB来计量单位的小型设备
    CLDC包含了一个基本 J2ME运行环境
    其中包括虚拟机 和核心的java类库 如果对CLDC所
    我们就会发现 由于CLDC专门针对于小型设备 它对J2SE类库进行了
    包含的类库进行一下考察
    1
    java.lang和
    其类库只保留了Java 规范中定义的最核心的3个包 即java.io
    大量的简化
    javax.microedition java.
    java.util
    并重新定义了一个新的包 这里 你可以通过前缀来区别
    javax.表示标准java扩展包 CLDC与J2SE之间的关系如图1-6所示 
    表示核心的java包
    这里要注意的是在CLDC中定义的javax.microedition包为javax.microedition.io
    用来支持通
    2
    GCF Generic connection framework CLDC中的包和所对应的功能如表1-1
    用连接框架

    3
    Java VM spec
    CLDC基于Java虚拟机规范
    定义了专门针对于小型消费电子设备 如前文所述
    的虚拟机 实质上CLDC在其严格的内存限制下达到了对Java虚拟机相当程度的兼容性 不过还是
     
    请注意下述列出了CLDC中缺失的或改变了的Java虚拟机特性
    有些需要特别指出的不同点

    根据CLDC规范
    中实
    K虚拟机 K KB
    这就是我们常说的KVM 这个 来自英文Kilobyte 寓
    作了一个虚拟机
     
    意是该VM针对于内存以KB来计量单位的小型设备
    CLDC包含了一个基本 J2ME运行环境
    其中包括虚拟机 和核心的java类库 如果对CLDC所
    我们就会发现 由于CLDC专门针对于小型设备 它对J2SE类库进行了
    包含的类库进行一下考察
    1
    java.lang和
    其类库只保留了Java 规范中定义的最核心的3个包 即java.io
    大量的简化
    javax.microedition java.
    java.util
    并重新定义了一个新的包 这里 你可以通过前缀来区别
    javax.表示标准java扩展包 CLDC与J2SE之间的关系如图1-6所示 
    表示核心的java包
    这里要注意的是在CLDC中定义的javax.microedition包为javax.microedition.io
    用来支持通
    2
    GCF Generic connection framework CLDC中的包和所对应的功能如表1-1
    用连接框架
     
    所示

    RMI Profile
    Remote Method Invoke
    位于CDC的Foundation profile 上层的profile 以支持RMI 远程
     
    方法调用
    MID Profile
    CLDC为那些资源受限
    不足以支持整个J2SE虚拟机环境以及J2SE核心类库的设备提供了运
    然而 作为一位应用程序开发者 如果您只能通过CLDC提供的API来进行编
    行Java程序的基础
    CLDC
    因为CLDC中并没有提供给我们与用户 存储设备 网络直接交互的工具
    程是几乎不可能的
    是一个基础层
    其上层可以架设一系列的描述(profiles)层来提供CLDC所缺失的功能 每一种
    Mobile Information Device
    而移动信息设备描述
    profile被设计成适应某种类型的设备的形式
    MIDP 
    Profile
    就是这些profile中的一种
    MIDP是位于CLDC上层的Profile
    是目前J2ME平台中发展相对最成熟 最广为人知的
    Mobile Information Device
    Profile 如同MIDP的名字所描述的 其针对的是移动信息设备
    MID
    这类设备通常指手机或是PDA 它们在屏幕 内存 处理器等硬件特性上有诸多限制 所
     
    以说在MID上开发应用程序必须要考虑一些技术上的特殊点

    Product Description
     
    Platform(s)
     
    Delivery Format
     
    Download Here
    Java 2 Platform, Micro Edition
    Connected Limited Device Configuration Version 1.1 Reference Implementation
     
    Solaris Operating System, SPARC[r] Platform Edition;
    Microsoft Windows 2000; and
    Linux
     
    Electronic Download
     
    Download
    Java 2 Platform, Micro Edition
    Connected Limited Device Configuration Version 1.0.4 Reference Implementation
     
    Solaris Operating System, SPARC[r] Platform Edition;
    Microsoft Windows 2000; and
    Linux
     
    Electronic Download
     
    Download

    MIDP Technology
     
     
     

    Each Java technology has an API specification, a reference implementation (RI), and a technology compatibility kit (TCK) associated to it.

    Specification:

        * MIDP 2.0 (JSR 118): MIDP 2.0 is a revised version of the MIDP 1.0 specification, and includes new features such as an enhanced user interface, multimedia and game functionality, greater connectivity, over-the-air (OTA) provisioning, and end-to-end security. MIDP 2.0 is backward compatible with MIDP 1.0, and continues to target mobile information devices such as mobile phones and PDAs.  » Read More
        * MIDP 1.0 (JSR 37)

    Reference Implementation:

        * MIDP RI 2.0: This version of the MIDP reference implementation is based on the MIDP 2.0 specification and supports the CLDC RI 1.0.4. The MIDP RI is targeted at device manufacturers who want to port this J2ME profile to another platform.

    Technology Compatibility Kit:
    The CLDC TCK can be licensed from Sun to certify a CLDC implementation on a particular platform. For more information about licensing terms, please contact Sun\’s Java Partner Engineering group.

    标签:, ,