2009年10月25日 #
1、SQL Server名稱或IP地址拼寫(xiě)有誤;
2、服務(wù)器端網(wǎng)絡(luò)配置有誤;
3、客戶端網(wǎng)絡(luò)配置有誤。
要解決這個(gè)問(wèn)題,我們一般要遵循以下的步驟來(lái)一步步找出導(dǎo)致錯(cuò)誤的原因。
首先,檢查網(wǎng)絡(luò)物理連接:
ping <服務(wù)器IP地址>
或者
ping <服務(wù)器名稱>
如果 ping <服務(wù)器IP地址> 失敗,說(shuō)明物理連接有問(wèn)題,這時(shí)候要檢查硬件設(shè)備,如網(wǎng)卡、HUB、路由器等。還有一種可能是由于客戶端和服務(wù)器之間安裝有防火墻軟件造成的,比如 ISA Server。防火墻軟件可能會(huì)屏蔽對(duì) ping、telnet 等的響應(yīng),因此在檢查連接問(wèn)題的時(shí)候,我們要先把防火墻軟件暫時(shí)關(guān)閉,或者打開(kāi)所有被封閉的端口。
如果ping <服務(wù)器IP地址> 成功而 ping <服務(wù)器名稱> 失敗,則說(shuō)明名字解析有問(wèn)題,這時(shí)候要檢查 DNS 服務(wù)是否正常。有時(shí)候客戶端和服務(wù)器不在同一個(gè)局域網(wǎng)里面,這時(shí)候很可能無(wú)法直接使用服務(wù)器名稱來(lái)標(biāo)識(shí)該服務(wù)器,這時(shí)候我們可以使用HOSTS文件來(lái)進(jìn)行名字解析,具體的方法是:
1、使用記事本打開(kāi)HOSTS文件(一般情況下位于C:\WINNT\system32\drivers\etc).
2、添加一條IP地址與服務(wù)器名稱的對(duì)應(yīng)記錄,如:
172.168.10.24 myserver
也可以在 SQL Server 的客戶端網(wǎng)絡(luò)實(shí)用工具里面進(jìn)行配置,后面會(huì)有詳細(xì)說(shuō)明。
其次,使用 telnet 命令檢查SQL Server服務(wù)器工作狀態(tài):
telnet <服務(wù)器IP地址> 1433
如果命令執(zhí)行成功,可以看到屏幕一閃之后光標(biāo)在左上角不停閃動(dòng),這說(shuō)明 SQL Server 服務(wù)器工作正常,并且正在監(jiān)聽(tīng)1433端口的 TCP/IP 連接;如果命令返回"無(wú)法打開(kāi)連接"的錯(cuò)誤信息,則說(shuō)明服務(wù)器端沒(méi)有啟動(dòng) SQL Server 服務(wù),也可能服務(wù)器端沒(méi)啟用 TCP/IP 協(xié)議,或者服務(wù)器端沒(méi)有在 SQL Server 默認(rèn)的端口1433上監(jiān)聽(tīng)。
接著,我們要到服務(wù)器上檢查服務(wù)器端的網(wǎng)絡(luò)配置,檢查是否啟用了命名管道,是否啟用了 TCP/IP 協(xié)議等等。我們可以利用 SQL Server 自帶的服務(wù)器網(wǎng)絡(luò)使用工具來(lái)進(jìn)行檢查。
點(diǎn)擊:程序 -> Microsoft SQL Server -> 服務(wù)器網(wǎng)絡(luò)使用工具,打開(kāi)該工具后看到的畫(huà)面如下圖所示:
從這里我們可以看到服務(wù)器啟用了哪些協(xié)議。一般而言,我們啟用命名管道以及 TCP/IP 協(xié)議。
點(diǎn)中 TCP/IP 協(xié)議,選擇"屬性",我們可以來(lái)檢查 SQK Server 服務(wù)默認(rèn)端口的設(shè)置,如下圖所示:
一般而言,我們使用 SQL Server 默認(rèn)的1433端口。如果選中"隱藏服務(wù)器",則意味著客戶端無(wú)法通過(guò)枚舉服務(wù)器來(lái)看到這臺(tái)服務(wù)器,起到了保護(hù)的作用,但不影響連接。
檢查完了服務(wù)器端的網(wǎng)絡(luò)配置,接下來(lái)我們要到客戶端檢查客戶端的網(wǎng)絡(luò)配置。我們同樣可以利用 SQL Server 自帶的客戶端網(wǎng)絡(luò)使用工具來(lái)進(jìn)行檢查,所不同的是這次是在客戶端來(lái)運(yùn)行這個(gè)工具。
點(diǎn)擊:程序 -> Microsoft SQL Server -> 客戶端網(wǎng)絡(luò)使用工具, 打開(kāi)該工具后看到的畫(huà)面如下圖所示:
從這里我們可以看到客戶端啟用了哪些協(xié)議。一般而言,我們同樣需要啟用命名管道以及 TCP/IP 協(xié)議。
點(diǎn)擊 TCP/IP 協(xié)議,選擇"屬性",可以檢查客戶端默認(rèn)連接端口的設(shè)置,如下圖所示。
該端口必須與服務(wù)器一致。
單擊"別名"選項(xiàng)卡,還可以為服務(wù)器配置別名。服務(wù)器的別名是用來(lái)連接的名稱,連接參數(shù)中的服務(wù)器是真正的服務(wù)器名稱,兩者可以相同或不同。如下圖中,我們可以使用myserver來(lái)代替真正的服務(wù)器名稱sql2kcn-02,并且使用網(wǎng)絡(luò)庫(kù) Named Pipes。別名的設(shè)置與使用HOSTS文件有相似之處。
通過(guò)以上幾個(gè)方面的檢查,錯(cuò)誤 1 發(fā)生的原因基本上可以被排除。下面我們?cè)僭敿?xì)描述如何來(lái)解決錯(cuò)誤 2。
當(dāng)用戶嘗試在查詢分析器里面使用sa來(lái)連接SQL Server,或者在企業(yè)管理器里面使用sa來(lái)新建一個(gè)SQL Server注冊(cè)時(shí),經(jīng)常會(huì)遇到如圖 2 所示的錯(cuò)誤信息。該錯(cuò)誤產(chǎn)生的原因是由于SQL Server使用了"僅 Windows"的身份驗(yàn)證方式,因此用戶無(wú)法使用SQL Server的登錄帳戶(如 sa )進(jìn)行連接。解決方法如下所示:
1、 在服務(wù)器端使用企業(yè)管理器,并且選擇"使用 Windows 身份驗(yàn)證"連接上 SQL Server;
2、 展開(kāi)"SQL Server組",鼠標(biāo)右鍵點(diǎn)擊SQL Server服務(wù)器的名稱,選擇"屬性",再選擇"安全性"選項(xiàng)卡;
3、 在"身份驗(yàn)證"下,選擇"SQL Server和 Windows "。
4、 重新啟動(dòng)SQL Server服務(wù)。
在以上解決方法中,如果在第 1 步中使用"使用 Windows 身份驗(yàn)證"連接 SQL Server 失敗,那么我們將遇到一個(gè)兩難的境地:首先,服務(wù)器只允許了 Windows 的身份驗(yàn)證;其次,即使使用了 Windows 身份驗(yàn)證仍然無(wú)法連接上服務(wù)器。這種情形被形象地稱之為"自己把自己鎖在了門(mén)外",因?yàn)闊o(wú)論用何種方式,用戶均無(wú)法使用進(jìn)行連接。實(shí)際上,我們可以通過(guò)修改一個(gè)注冊(cè)表鍵值來(lái)將身份驗(yàn)證方式改為 SQL Server 和 Windows 混合驗(yàn)證,步驟如下所示:
1、點(diǎn)擊"開(kāi)始"-"運(yùn)行",輸入regedit,回車進(jìn)入注冊(cè)表編輯器;
2、依次展開(kāi)注冊(cè)表項(xiàng),瀏覽到以下注冊(cè)表鍵:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer]
3、在屏幕右方找到名稱"LoginMode",雙擊編輯雙字節(jié)值;
4、將原值從1改為2,點(diǎn)擊"確定";
5、關(guān)閉注冊(cè)表編輯器;
6、重新啟動(dòng)SQL Server服務(wù)。
此時(shí),用戶可以成功地使用sa在企業(yè)管理器中新建SQL Server注冊(cè),但是仍然無(wú)法使用Windows身份驗(yàn)證模式來(lái)連接SQL Server。這是因?yàn)樵?SQL Server 中有兩個(gè)缺省的登錄帳戶:BUILTIN\Administrators 以及 <機(jī)器名>\Administrator 被刪除。要恢復(fù)這兩個(gè)帳戶,可以使用以下的方法:
1、打開(kāi)企業(yè)管理器,展開(kāi)服務(wù)器組,然后展開(kāi)服務(wù)器;
2、展開(kāi)"安全性",右擊"登錄",然后單擊"新建登錄";
3、在"名稱"框中,輸入 BUILTIN\Administrators;
4、在"服務(wù)器角色"選項(xiàng)卡中,選擇"System Administrators" ;
5、點(diǎn)擊"確定"退出;
6、使用同樣方法添加 <機(jī)器名>\Administrator 登錄。
以下注冊(cè)表鍵
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode
的值決定了SQL Server將采取何種身份驗(yàn)證模式。該值為1,表示使用Windows 身份驗(yàn)證模式;該值為2,表示使用混合模式(Windows 身份驗(yàn)證和 SQL Server 身份驗(yàn)證)。
看完如何解決前兩個(gè)錯(cuò)誤的方法之后,讓我們來(lái)看一下如圖 3 所示的第三個(gè)錯(cuò)誤。
如果遇到第三個(gè)錯(cuò)誤,一般而言表示客戶端已經(jīng)找到了這臺(tái)服務(wù)器,并且可以進(jìn)行連接,不過(guò)是由于連接的時(shí)間大于允許的時(shí)間而導(dǎo)致出錯(cuò)。這種情況一般會(huì)發(fā)生在當(dāng)用戶在Internet上運(yùn)行企業(yè)管理器來(lái)注冊(cè)另外一臺(tái)同樣在Internet上的服務(wù)器,并且是慢速連接時(shí),有可能會(huì)導(dǎo)致以上的超時(shí)錯(cuò)誤。有些情況下,由于局域網(wǎng)的網(wǎng)絡(luò)問(wèn)題,也會(huì)導(dǎo)致這樣的錯(cuò)誤。
要解決這樣的錯(cuò)誤,可以修改客戶端的連接超時(shí)設(shè)置。默認(rèn)情況下,通過(guò)企業(yè)管理器注冊(cè)另外一臺(tái)SQL Server的超時(shí)設(shè)置是 4 秒,而查詢分析器是 15 秒(這也是為什么在企業(yè)管理器里發(fā)生錯(cuò)誤的可能性比較大的原因)。具體步驟為:
1、在企業(yè)管理器中,選擇菜單上的"工具",再選擇"選項(xiàng)";
2、在彈出的"SQL Server企業(yè)管理器屬性"窗口中,點(diǎn)擊"高級(jí)"選項(xiàng)卡;
3、在"連接設(shè)置"下的"登錄超時(shí)(秒)"右邊的框中輸入一個(gè)比較大的數(shù)字,如 20。
查詢分析器中也可以在同樣位置進(jìn)行設(shè)置。
在windows控制面版-->管理工具-->服務(wù)-->MSSQLSERVER-->屬性-->改為你的新的操作系統(tǒng)密碼!
或
在windows控制面版-->管理工具-->服務(wù)-->MSSQLSERVER-->屬性-->改為本地登陸!
URL為要開(kāi)啟的網(wǎng)頁(yè)名字。
dialogArgments為設(shè)定好傳遞給新視窗網(wǎng)頁(yè)的參數(shù),可以為任意數(shù)據(jù)類型。
feature 與open()的類似,都是格式方面的設(shè)定。調(diào)用格式為featureName1:featureValue1:(分號(hào))featureName2:featureValue2:
關(guān)于feature具體的參數(shù)我就不詳細(xì)寫(xiě)了,看名字就應(yīng)該知道什么用處了吧。
certer , dialogHeight, dialogLeft,dialogTop,dialogWidth,help(是否顯示help按鈕,下同),status,resizeable
值=1為yes,0為no.
我認(rèn)為最重要的是dialogArgments,可以傳遞值到新的窗口。
第二重要就是 它的返回值 window.returnValue.可以在showModalDialog開(kāi)啟的窗口關(guān)閉后前,回傳一個(gè)任意類型的值。
dialogArgments 可以傳入一個(gè)變量,但是 我認(rèn)為最好是傳入一個(gè)window 這樣的話,不光你可以調(diào)用你前面定義的變量names 和a 等等,還可以取到前一個(gè)頁(yè)面上任何元素的值.如下面的代碼所示:








在WebFromB.aspx頁(yè)面 我們可以取到 names 和a 的值還可以取到WebFromA的值.,還可以給它賦值.
整體的代碼如下:
WebFromA.aspx




































WebFormB.aspx 如下:






























在WebFormB.aspx中 window.returnValue是用于 返回給WebFromA.aspx的值.
在WebFromA.aspx中,可以用一個(gè)變量來(lái)接收這個(gè)值 temp= window.showModalDialog("WebFormB.aspx",window);
create sequence seq_a minvalue 1000 maxvalue 99999999 start with 1000 increment by 1 nocache;
查詢序列
select seq_a.nextval from dual;
為每張表生成對(duì)應(yīng)的序列
--創(chuàng)建存儲(chǔ)過(guò)程
create or replace procedure p_createseq(tablename in varchar2)
is
strsql varchar2(500);
begin
strsql:='create sequence seq_'||tablename||' minvalue 1000 maxvalue 99999999 start with 1000 increment by 1 nocache';
execute immediate strsql;
end p_createseq;
/
--創(chuàng)建序列
exec p_createseq('t_power');
exec p_createseq('t_roler');
exec p_createseq('t_roler_power');
exec p_createseq('t_department');
exec p_createseq('t_quarters');
exec p_createseq('t_quarters_roler');
exec p_createseq('t_emp');
exec p_createseq('t_require_plan');
exec p_createseq('t_require_minutia');
exec p_createseq('t_require_audit');
exec p_createseq('t_engage');
exec p_createseq('t_home');
exec p_createseq('t_education');
exec p_createseq('t_works');
exec p_createseq('t_skill');
exec p_createseq('t_account');
exec p_createseq('t_licence');
exec p_createseq('t_title');
exec p_createseq('t_remove');
exec p_createseq('t_train');
exec p_createseq('t_pact');
exec p_createseq('t_assess');
exec p_createseq('t_attendance');
exec p_createseq('t_reward_punish');
exec p_createseq('t_dimission');
exec p_createseq('t_emp_roler');
exec p_createseq('t_code');
獲取顯示的漢字
document.getElementById("bigclass").options[window.document.getElementById("bigclass").selectedIndex].text
獲取數(shù)據(jù)庫(kù)中的id
window.document.getElementById("bigclass").value
獲取select組分配的索引id
window.document.getElementById("bigclass").selectedIndex
例子:
<select name="bigclass" id="bigclass" onChange="javascript:updatePage2();">
<option value="" selected="selected">ajax實(shí)驗(yàn)</option>
<option value="4">我適宜市哈</option>
</select>
使用
document.getElementById("bigclass").options[window.document.getElementById("bigclass").selectedIndex].text
的結(jié)果是:我適宜市哈
使用
window.document.getElementById("bigclass").value
的結(jié)果是:4
使用
window.document.getElementById("bigclass").selectedIndex
的結(jié)果是:1
三元預(yù)算表達(dá)式: Condition ? doSomething : doOtherThing ;
1. 同所有語(yǔ)言的三元運(yùn)算一樣,Javascript的三元運(yùn)算同樣支持Condition為Boolean類型的情況。當(dāng)Condition為T(mén)rue的時(shí)候,執(zhí)行doSomething,為False的時(shí)候執(zhí)行doOtherThing。
2. 支持Condition為字符串。當(dāng)Condition=“”的時(shí)候,等同于False,執(zhí)行doOtherThing;當(dāng)Condition!=“”的時(shí)候,等同于True,執(zhí)行doSomething。
3. 支持Condition為對(duì)象。當(dāng)Condition=undefined或者null的時(shí)候,等同于False,執(zhí)行doOtherThing;當(dāng)Condition!=undefined和null的時(shí)候,等同于True,執(zhí)行doSomething。
目前我的總結(jié)就是發(fā)現(xiàn)了這3中使用方式,是否還有其他的使用方式還不知道。呵呵,不過(guò)就算是這樣也讓我減少了不少看Javascript代碼時(shí)的疑惑!
自從用了IE8 整個(gè)世界都變了形.
呵呵,問(wèn)題沒(méi)那么嚴(yán)重,如果你的網(wǎng)站還來(lái)不及修改以適合IE8訪問(wèn)的時(shí)候,咱們可以通過(guò)非常簡(jiǎn)單的方法,加幾行代碼就可以讓訪問(wèn)的IE8自動(dòng)調(diào)用IE7的渲染模式,這樣可以保證最大的兼容性,方法如下:
只需要在頁(yè)面中加入如下HTTP meta-tag:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
只要IE8一讀到這個(gè)標(biāo)簽,它就會(huì)自動(dòng)啟動(dòng)IE7兼容模式,保證頁(yè)面完整展示.
還有一種方法是針對(duì)整個(gè)網(wǎng)站的,在IIS中加入如下描述符就可以有相同的效果,當(dāng)然這么做范圍更廣.
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <httpProtocol> <customHeaders> <add name="X-UA-Compatible" value="IE=EmulateIE7"> </customHeaders> </httpProtocol> </system.webServer> </configuration>
或者你還可以使用IIS admin tool來(lái)定義,更為簡(jiǎn)單.
var tempArr = tempStr.split(",");
var a = tempArr[0];
var b = tempArr[1];
var c = tempArr[2];
var d = tempArr[3];
var o = tempArr[4];
摘要:
通過(guò)下拉框里各個(gè)語(yǔ)言(中文,日本語(yǔ),English)的選擇,切換jsp頁(yè)面文字。
tyrone1979 發(fā)表于 2005-08-26 13:27:19
作者:tyrone1979 來(lái)源:blog.csdn.net/tyrone1979
1 準(zhǔn)備資源文件。
資源文件命名格式:filename_language_country.properties.
中文文件名為index_zh_CN.properties。
日文文件名為 index_ja_JP.properties。
英文文件名為 index_en.properties。
英文文件內(nèi)容:
index.jsp.welcome=Colimas Library Management System
index.jsp.name=Name
index.jsp.userid=User ID
index.jsp.pass=Password
中文文件內(nèi)容:
index.jsp.welcome=\u4f60\u597d
index.jsp.name=\u59d3\u540d
index.jsp.userid=\u7528\u6237\u540d
index.jsp.pass=\u5bc6\u7801
日文文件內(nèi)容:
index.jsp.welcome=\u3044\u3089\u3063\u3057\u3083\u3044\u307e\u305b
index.jsp.name=\u59d3\u540d
index.jsp.userid=\u30e6\u30fc\u30b6\u30fcID
index.jsp.pass=\u30d1\u30b9\u30ef\u30fc\u30c9
\uxxxx是中文被轉(zhuǎn)換后的ASCII碼。可以使用native2ascii.exe工具轉(zhuǎn)換。
2 struts-config.xml里配置資源文件
<message-resources parameter="resources.config.index" />
resources.config.index是classes目錄下的resources/config子目錄的index__xx_xx.properties文件.
struts根據(jù)你的瀏覽器的語(yǔ)言設(shè)置調(diào)用不同語(yǔ)言的資源文件。
例如:如果你的IE默認(rèn)語(yǔ)言為中文則。Struts將使用index_zh_CN.properties。而在struts-config.xml里只需寫(xiě)出“index”即可
ActionMapping
<form-beans>
<!--1 Multi-Lanuage support formbean-->
<form-bean
name="SelectLanguageForm"
type="com.nova.colimas.web.form.SelectLanguageForm"/>
</form-beans>
<!-- =========================================== Global Forward Definitions -->
<global-forwards>
<!-- Default forward to "Welcome" action -->
<!-- Demonstrates using index.jsp to forward -->
<forward
name="index"
path="/pages/index.jsp"/>
</global-forwards>
<!-- =========================================== Action Mapping Definitions -->
<action-mappings>
<!-- 1 select language action -->
<action path="/SelectLanguageAction"
type="com.nova.colimas.web.action.SelectLanguageAction"
name="SelectLanguageForm"
scope="request">
</action>
…
</action-mappings>
3 jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="/tags/struts-bean" divfix="bean"%>
<%@ taglib uri="/tags/struts-html" divfix="html"%>
<%@ taglib uri="/tags/struts-logic" divfix="logic"%>
<html:html>
<Title><bean:message key="index.jsp.welcome"/></Title>
<body>
<logic:divsent name="user">
<H3>Welcome <bean:write name="LoginForm" property="userID" />!</H3>
</logic:divsent>
<logic:notPresent scope="session" name="user">
<H3>Welcome Colimas!</H3>
</logic:notPresent>
<html:errors />
<html:form action="/SelectLanguageAction.do">
<html:select property="language">
<html:option value="0">中文</html:option>
<html:option value="1">日本語(yǔ)</html:option>
<html:option value="2">English</html:option>
</html:select>
<html:submit>Select</html:submit>
</html:form>
<html:form action="/LoginAction.do">
<p><bean:message key="index.jsp.userid"/><input type="text" name="userID" value="tyrone1979" /><br>
<bean:message key="index.jsp.pass"/><input type="password" name="password" value="197913"/><br>
<html:submit><bean:message key="index.jsp.login"/></html:submit>
</p>
</html:form>
</body>
</html:html>
<bean:message key="index.jsp.welcome"/>引用資源文件的index.jsp.welcome屬性
SelectLanguageAction.do調(diào)用Action實(shí)現(xiàn)語(yǔ)言轉(zhuǎn)換。
4 Action
package com.nova.colimas.web.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessages;
//import org.apache.struts.upload.FormFile;
import com.nova.colimas.web.form.SelectLanguageForm;
import org.apache.struts.Globals;
import java.util.Locale;
public class SelectLanguageAction extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception{
SelectLanguageForm myform=(SelectLanguageForm)form;
String lan=myform.getLanguage();
switch((new Integer(lan)).intValue()){
case 0 :
request.getSession().setAttribute(Globals.LOCALE_KEY,Locale.CHINA);
break;
case 1:
request.getSession().setAttribute(Globals.LOCALE_KEY, Locale.JAPAN);
break;
case 2:
request.getSession().setAttribute(Globals.LOCALE_KEY, Locale.ENGLISH);
break;
default:
request.getSession().setAttribute(Globals.LOCALE_KEY, Locale.ENGLISH);
break;
}
return mapping.findForward("index");
}
}
Form
/*
* Created on 2005/06/18
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.nova.colimas.web.form;
import org.apache.struts.action.ActionForm;
/**
* @author tyrone
**/
public class SelectLanguageForm extends ActionForm {
private String language;
public void Reset() {
this.language="";
return;
}
/**
* @return Returns the Language.
*/
public String getLanguage() {
return language;
}
/**
* @param language The Language to set.
*/
public void setLanguage(String property1) {
this.language = property1;
}
}
結(jié)果
1 IE默認(rèn)語(yǔ)言為中文:
1、 下載
到Apache的官方網(wǎng)站,我們可以很容易找到Tomcat的下載地址,如:
http://tomcat.apache.org/download-60.cgi
在這里我們可以下載到Tomcat的6.0.16的zip、tar.gz和Windows Service Installer三種安裝包,
其中:
Zip 是Windows下的免安裝版本,只需要解壓后做一定的手動(dòng)配置就可以正常的使用;
tar.gz 是Linux下的安裝包;
Windows Service Installer 很明顯就是Windows下的Install程序,雙擊后就可以自動(dòng)安裝了。
在這里主要講一下如何使用Zip包來(lái)進(jìn)行解壓配置,那么我們就需要下載下來(lái)這個(gè)文件:apache-tomcat-6.0.20.zip
2、解壓與配置
在安裝Tomcat之前,我們首先要安裝的是JDK,Tomcat是在Java運(yùn)行環(huán)境的支持下運(yùn)行的,所以必須首先安裝并配置好JDK。JDK的安裝程序可以到sun公司的官方網(wǎng)站,在這里我們就詳細(xì)描述JDK的安裝了。
JDK安裝好后需要配置以下環(huán)境變量:
JAVA_HOME =JDK安裝目錄
Path =%JAVA_HOME%\bin;//原有內(nèi)容,且最好把此路徑放到最前。
ClassPath=.,%JAVA_HOME%\lib\rt.jar //這個(gè)可以沒(méi)有
將apache-tomcat-6.0.20.zip解壓 到C:\tomcat6文件夾中,這里就是我們的Tomcat了。
解壓后Tomcat以后我們同樣需要設(shè)置幾個(gè)環(huán)境變量:
CATALINA_HOME =Tomcat解壓目錄,我們這里就是CATALINA_HOME=C:\tomcat6
ClassPath =%CATALINA_HOME%\lib;原有內(nèi)容
環(huán)境變量配置的時(shí)候如果沒(méi)有這個(gè)關(guān)鍵字,就新加一項(xiàng),如果已經(jīng)有了,如Path ,就是在原有內(nèi)容值的基礎(chǔ)上添加新的內(nèi)容,新的內(nèi)容與原有的值以分號(hào)相隔。
配置好上面的這些內(nèi)容以后就可以重啟系統(tǒng)了。
3、運(yùn)行
重啟系統(tǒng)以后,我們可以進(jìn)入Tomcat解壓目錄下的bin目錄,找到startup.bat 文件,這個(gè)文件就是Tomcat的啟動(dòng)文件,雙擊這個(gè)文件,我們可以看到打開(kāi)了一個(gè)命令行窗口,一些Tomcat啟動(dòng)的加載信息就顯示出來(lái),最后一行應(yīng)該是:
信息:Server startup in xxx ms
這就是說(shuō)你的服務(wù)器已經(jīng)啟動(dòng)成功了,這是你可以打開(kāi)瀏覽器,在地址欄中輸入:
http://localhost:8080
看看是不是可以看到Tomcat的頁(yè)面了。
為了啟動(dòng)方便,我們可以將這個(gè)startup.bat文件創(chuàng)建一個(gè)快捷方式到桌面上,以后就可以直接使用這個(gè)快捷方式了。
需要特別注意的是,這種方式啟動(dòng)的Tomcat會(huì)有一個(gè)命令行窗口停留在你的面前,這就是啟動(dòng)著的服務(wù)器,千萬(wàn)不要將它關(guān)閉,如果把這個(gè)窗口關(guān)閉了,你的Tomcat服務(wù)器也就關(guān)閉了,切記,切記 。
在這里,我們配置的時(shí)候并沒(méi)有修改默認(rèn)的Tomcat服務(wù)器端口 ,所以就是8080。如果想修改這個(gè)端口,可以到tomcat安裝目錄的conf目錄下,找到server.xml這個(gè)配置文件,一定有這么一段:
< protocol="HTTP/1.1" port="8080 "
connectionTimeout="20000"
redirectPort="8443" />
這里面的port=”8080”就是服務(wù)器啟動(dòng)時(shí)的端口,你可以將這里修改成你想設(shè)置的端口,但注意不要與其它的軟件所使用的端口沖突,一旦發(fā)生了端口沖突,Tomcat就無(wú)法啟動(dòng)了。
我們還可以在這個(gè)配置文件中配置自己的虛擬目錄 ,找到下面這組代碼:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="/test" docBase="D:\test" reloadable="true" />
</Host>
虛擬目錄的配置信息就是寫(xiě)在server.xml配置文件的這對(duì)標(biāo)簽之間,配置代碼中的path是用來(lái)在瀏覽器中訪問(wèn)時(shí)使用的虛擬目錄的路徑名 ,如上面我們配置的信息path值是”/test”,這個(gè)值中的反斜杠”/”是必不可少的 ,配置了這個(gè)值以后,我們?cè)跒g覽器中訪問(wèn)這個(gè)虛擬目錄的地址路徑如下:
http://localhost:8080/test
另一個(gè)參數(shù)docBase是虛擬目錄實(shí)際的存放地址 ,上面的配置示例就是把D:\test目錄配置成了名稱為test的虛擬目錄。
4、安裝服務(wù)
如此配置的Tomcat每次都需要手動(dòng)啟動(dòng) ,如果你想讓這個(gè)Tomcat服務(wù)器在系統(tǒng)已啟動(dòng)的時(shí)候就自動(dòng)啟動(dòng),我們可以將其注冊(cè)成系統(tǒng)的服務(wù),注冊(cè)方式如下:
在運(yùn)行中執(zhí)行cmd 打開(kāi)命令行窗口 ,轉(zhuǎn)入Tomcat解壓目錄的Bin目錄 下,在這里我們轉(zhuǎn)到的就是c:\tomcat6\bin,然后執(zhí)行以下命令:service.bat install ,這樣就會(huì)將tomcat6.exe 文件注冊(cè)成系統(tǒng)的服務(wù)。
我們?cè)谶\(yùn)行services.msc ,打開(kāi)系統(tǒng)的服務(wù)查看,是不是多出來(lái)了一個(gè)”Apache Tomcat ”服務(wù)?
但這個(gè)服務(wù)的啟動(dòng)類型是手動(dòng) 的,我們可以將其修改為自動(dòng) ,那樣Tomcat服務(wù)器就會(huì)隨著系統(tǒng)的啟動(dòng)而自動(dòng)啟動(dòng)了。
如果想禁止 這個(gè)服務(wù)了,可以在命令行窗口中c:\tomcat6\bin下執(zhí)行:
c:\tomcat6\bin\service.bat remove
就可以移除此服務(wù)。
5、總結(jié)
按照以上步驟我們就可以輕松的實(shí)現(xiàn)Tomcat服務(wù)器的手動(dòng)配置了,相比其自動(dòng)安裝的安裝包,這種手動(dòng)方式也沒(méi)有顯得有多復(fù)雜,而且通過(guò)這種手動(dòng)方式也能更加了解Tomcat的配置情況,更可以隨自己的需要靈活的配置它,所以在開(kāi)發(fā)使用中,手動(dòng)的配置方式還是應(yīng)該掌握的。
· 配置Eclipse
- 下載JDK:
從sun的官網(wǎng)http://java.sun.com/javase/downloads/?intcmp=1281下載JDK,當(dāng)前最新版本是jdk-6u10-windows-i586-p.exe,這個(gè)是正式版的。
- 下載WTK:
同時(shí)在sun的網(wǎng)站http://java.sun.com/products/sjwtoolkit/zh_download-2_5_2.html下載WTK,當(dāng)前最新版本是sun_java_wireless_toolkit-2_5_2-ml-windows.exe。
- 安裝JDK和WTK:
先安裝JDK再安裝WTK,我的安裝路徑是:D:"Java"jdk1.6.0_10和D:"Java"WTK2.5.2
- 下載eclipse:
從eclipse的官網(wǎng) http://www.eclipse.org/downloads/下載eclipse,我用的是:eclipse-java-ganymede-SR1-win32.zip,解壓到:XX:"eclipse
- 下載eclipseme:
從eclipseme的官網(wǎng) http://sourceforge.net/project/showfiles.php?group_id=86829下載eclipseme.當(dāng)前最新版本是eclipseeclipseme.feature_1.7.9_site.zip
- 配置eclipse:
到 “首選項(xiàng)”找到,Java—>調(diào)試,將“發(fā)生未不捕獲到的異常時(shí)暫掛執(zhí)行”與“在發(fā)生編譯錯(cuò)誤時(shí)暫掛執(zhí)行”這兩個(gè)選項(xiàng)調(diào)為“未選中”狀態(tài),再把下面的調(diào)試器超時(shí)(毫秒)的右側(cè)數(shù)值設(shè)置為15000
- 配置eclipseME:
運(yùn)行eclipse,配置自己學(xué)習(xí)的工作路徑,選擇 幫助—>軟件更新—>查找并安裝—>搜索要安裝的新功能部件,選擇 新建已歸檔的站點(diǎn),選擇eclipseme.feature_1.7.9_site.zip文件,安裝,重啟eclipse
- 配置WTK:
選擇 首選項(xiàng)—>J2ME—>Device Management—>Import 在Specify search directory下,選擇你所裝的WTK模擬器的目錄;選擇 Refresh ,后按完成,使用DefaultColorPhone為默認(rèn)模式,這時(shí)已為eclipse配置上了模擬器
- 下載ProGuard:
需要使用插件ProGuard,從ProGuard的官網(wǎng)下載ProGuard,當(dāng)前的最新版本是:proguard4.3beta2.tar.gz,解壓到:XX:"proguard4.3
- 配置ProGuard:
到 Eclipse的“首選項(xiàng)”找到,J2ME—>Packaging—>obfuscation,在Proguard Root Directory右邊的框中,選擇剛才解壓的proguard4.3的文件夾(XX:"proguard4.3),點(diǎn)擊應(yīng)用,這時(shí)為eclipse配置上了混淆器
- 配置完畢
· 使用eclipse進(jìn)行J2ME開(kāi)發(fā)
- 新建 J2ME下的J2ME Midlet Suite,填寫(xiě)項(xiàng)目名,下一步,完成
- 新建 J2ME下的J2ME Midlet,填寫(xiě)名稱,完成
- 點(diǎn)擊運(yùn)行,新建一個(gè)Wireless Toolkit Emulator的運(yùn)行配置,運(yùn)行,出現(xiàn)手機(jī)樣式,運(yùn)行成功