<web-app>
<!-- ... -->
<servlet>
<servlet-name>PageName</servlet-name>
<jsp-file>/TestPage.jsp</jsp-file>
</servlet>
<!-- ... -->
<servlet-mapping>
<servlet-name> PageName </servlet-name>
<url-pattern>/UrlTest2/*</url-pattern>
</servlet-mapping>
<!-- ... -->
</web-app>
轉(zhuǎn)自:http://lizzyostrich.blog.sohu.com/83686972.html
posted @
2008-04-06 17:36 阿偉 閱讀(262) |
評論 (0) |
編輯 收藏
web.xml的元素
首先注意 xml是大小寫敏感的
1、 web.xml的頭和根元素
必須以一個XML頭開始。這個頭聲明可以使用的XML版本并給出文件的字符編碼。
DOCYTPE聲明必須立即出現(xiàn)在此頭之后。這個聲明告訴服務(wù)器適用的servlet規(guī)范的版本(如2.2或2.3)并指定管理此文件其余部分內(nèi)容的語法的DTD(Document Type Definition,文檔類型定義)。
所有部署描述符文件的頂層(根)元素為web-app。
例(紅色部分是可選項):
--------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app id="WebApp">
</web-app>
--------------------------------------------------------------------------------------------------------------------------
2、元素
以下元素幾乎都是可選項,不過要注意它們是有順序的。雖然有些服務(wù)器要求寬松些,但某些服務(wù)器會拒絕執(zhí)行順序不正確的web應(yīng)用。所以還是按順序?qū)懞?/p>
--------------------------------------------------------------------------------------------------------------------------
· icon icon元素指出IDE和GUI工具用來表示W(wǎng)eb應(yīng)用的一個和兩個圖像文件的位置。
· display-name display-name元素提供GUI工具可能會用來標(biāo)記這個特定的Web應(yīng)用的一個名稱。
· description description元素給出與此有關(guān)的說明性文本。
· context-param context-param元素聲明應(yīng)用范圍內(nèi)的初始化參數(shù)。
· filter 過濾器元素將一個名字與一個實現(xiàn)javax.servlet.Filter接口的類相關(guān)聯(lián)。
· filter-mapping 一旦命名了一個過濾器,就要利用filter-mapping元素把它與一個或多個servlet或JSP頁面相關(guān)聯(lián)。
· listener servlet API的版本2.3增加了對事件監(jiān)聽程序的支持,事件監(jiān)聽程序在建立、修改和刪除會話或servlet環(huán)境時得到通知。Listener元素指出事件監(jiān)聽程序類。
· servlet 在向servlet或JSP頁面制定初始化參數(shù)或定制URL時,必須首先命名servlet或JSP頁面。Servlet元素就是用來完成此項任務(wù)的。
· servlet-mapping服務(wù)器一般為servlet提供一個缺省的URL:http://host/webAppPrefix/servlet/ServletName。但是,常常會更改這個URL,以便servlet可以訪問初始化參數(shù)或更容易地處理相對URL。在更改缺省URL時,使用servlet-mapping元素。
·session-config如果某個會話在一定時間內(nèi)未被訪問,服務(wù)器可以拋棄它以節(jié)省內(nèi)存。可通過使用HttpSession的setMaxInactiveInterval方法明確設(shè)置單個會話對象的超時值,或者可利用session-config元素制定缺省超時值。
· mime-mapping 如果Web應(yīng)用具有想到特殊的文件,希望能保證給他們分配特定的MIME類型,則mime-mapping元素提供這種保證。
· welcom-file-list welcome-file-list元素指示服務(wù)器在收到引用一個目錄名而不是文件名的URL時,使用哪個文件。
· error-page error-page元素使得在返回特定HTTP狀態(tài)代碼時,或者特定類型的異常被拋出時,能夠制定將要顯示的頁面。
· taglib taglib元素對標(biāo)記庫描述符文件(Tag Libraryu Descriptor file)指定別名。此功能使你能夠更改TLD文件的位置,而不用編輯使用這些文件的JSP頁面。
· resource-env-ref resource-env-ref元素聲明與資源相關(guān)的一個管理對象。
· resource-ref resource-ref元素聲明一個資源工廠使用的外部資源。
· security-constraint security-constraint元素制定應(yīng)該保護(hù)的URL。它與login-config元素聯(lián)合使用
· login-config 用login-config元素來指定服務(wù)器應(yīng)該怎樣給試圖訪問受保護(hù)頁面的用戶授權(quán)。它與sercurity-constraint元素聯(lián)合使用。
· security-role security-role元素給出安全角色的一個列表,這些角色將出現(xiàn)在servlet元素內(nèi)的security-role-ref元素的role-name子元素中。分別地聲明角色可使高級IDE處理安全信息更為容易。
· env-entry env-entry元素聲明Web應(yīng)用的環(huán)境項。
· ejb-ref ejb-ref元素聲明一個EJB的主目錄的引用。
· ejb-local-ref ejb-local-ref元素聲明一個EJB的本地主目錄的應(yīng)用。
該文章的原文地址為:http://www.tkk7.com/fastzch/archive/2007/08/28/140607.html
posted @
2008-04-06 17:34 阿偉 閱讀(233) |
評論 (0) |
編輯 收藏
Spring與weblogic jndi集成
雖然spring本身是可以直接使用jndi來進(jìn)行獲取一些對象,但是在和weblogic集成的時候往往還是容易出
現(xiàn)問題(在web應(yīng)用的時候出現(xiàn)問題的可能性不大,因為container已經(jīng)做了很多事情了.)但是在ide或者其
他的應(yīng)用環(huán)境下(不同的jvm的時候),通常找不到provider_url等屬性造成無法找到jndi.
修改配置文件如下:
<!-- 通過jndi的方式來調(diào)用datasource,即使不一定是在j2ee環(huán)境中也可以正常使用默認(rèn)情況下,如果
沒有指定,"java:comp/env/"將放在后面jndi名稱前面
-->
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>jdbc/myDatasource</value>
</property>
<!-- 如果你不想使用 'java:comp/env/'前綴的話請設(shè)置下面的值為true, 默認(rèn)值為false -->
<property name="resourceRef">
<value>false</value>
</property>
<property name="jndiEnvironment">
<props>
Spring連接weblogic-DataSource錯誤
<!-- The value of Context.PROVIDER_URL -->
<prop key="java.naming.provider.url">t3://localhost:7001</prop>
<prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory
</prop>
</props>
</property>
</bean>
注意在設(shè)置的時候由于不在同一個jvm里面,所以一定要設(shè)置provider.url和factory.initial的屬性值,否
則會出現(xiàn)NoInitialContextException的異常出現(xiàn).
此外如果和其他的應(yīng)用服務(wù)器集成的話可能不只是要設(shè)置上面的兩個屬性,還要設(shè)置相關(guān)的其他屬性。詳
細(xì)情況參考:javax.naming.Context類的說明文檔。
http://java.sun.com/j2se/1.4.2/docs/api/javax/naming/Context.html
其中設(shè)置的:
<property name="jndiEnvironment">
<props>
<!-- The value of Context.PROVIDER_URL -->
<prop key="java.naming.provider.url">t3://localhost:7001</prop>
<prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory
</prop>
</props>
</property> 實際上就是設(shè)置Context初始化的時候設(shè)置的Properties屬性。
http://java.mblogger.cn/layout/posts/11849.aspx
=====================================================================
=====================================================================
各種應(yīng)用服務(wù)器的不同的properties集合:
websphere:
java.naming.provider.url->iiop://websphere.machine.domain.com:900
java.naming.factory.initial ->com.ibm.websphere.naming.WsnInitialContextFactory
java.naming.factory.url.pkgs ->com.ibm.ws.naming
org.omg.CORBA.ORBClass->com.ibm.rmi.iiop.ORB
org.omg.CORBA.ORBSingletonClass->com.ibm.rmi.corba.ORBSingleton
javax.rmi.CORBA.UtilClass->com.ibm.rmi.javax.rmi.CORBA.Util
javax.rmi.CORBA.StubClass->com.ibm.rmi.javax.rmi.CORBA.StubDelegateImpl
javax.rmi.CORBA.PortableRemoteObjectClass->com.ibm.rmi.javax.rmi.PortableRemoteObject
weblogic:
java.naming.factory.initial -> weblogic.jndi.WLInitialContextFactory
java.naming.provider.url -> t3://localhost:7001
jboss:
ava.naming.factory.initial ->org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs->org.jboss.naming.client
java.naming.provider.url ->jnp://10.0.0.18:1099
sunone IMQ ldap:
java.naming.provider.url -> ldap://localhost:389/dc=yusong,dc=com
java.naming.factory.initial -> com.sun.jndi.ldap.LdapCtxFactory
sunone Application Server:
java.naming.provider.url -> iiop://192.168.0.34:3700
java.naming.factory.initial -> com.sun.jndi.cosnaming.CNCtxFactory
oracle oc4j:
java.naming.factory.initial->com.evermind.server.ApplicationClientInitialContextFactory
java.naming.provider.url->ormi://localhost/bmpapp
posted @
2008-03-01 01:01 阿偉 閱讀(3493) |
評論 (0) |
編輯 收藏
配置WEB.XML ,讓SESSION在頁面中一直打開.
<!-- spring中對hibernate的一個session支持,直到頁面執(zhí)行完后才能關(guān)閉 -->
<filter>
<filter-name>opensession</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
<!-- 當(dāng)遇到所有的.do文件都要按照此設(shè)置 -->
</filter>
<filter-mapping>
<filter-name>opensession</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
posted @
2008-02-26 23:02 阿偉 閱讀(927) |
評論 (0) |
編輯 收藏
1.在weblogic目錄下的serverlib下添加mysql驅(qū)動
mysql-connector-java-3.1.11-bin.jar
2.在weblogic目錄下的commonbin下找到commEnv.cmd打開
找到set weblogic_classpath= 后邊加上mysql驅(qū)動的路徑
例:%WL_HOME%\server\lib\mysql-connector-java-3.1.11-bin.jar
(@rem set up WebLogic Server's class path
set WEBLOGIC_CLASSPATH=%PATCH_CLASSPATH%;%JAVA_HOME%\lib\tools.jar;%WL_HOME%\server\lib\weblogic_sp.jar;%WL_HOME%\server\lib\weblogic.jar;%WL_HOME%\server\lib\webservices.jar;%WL_HOME%\server\lib\MySQL5.0 driver.zip)
3.創(chuàng)建domain
4.在開始菜單打開start AdminServer for weblogic Server domain
等到running狀態(tài)
5.打開console 輸入用戶名密碼。
6.點開Service->JDBC->Data Source
7.JDBC Data Source Properties 頁面
Name和JNDI Name可以一樣 我起名為MySQLJDBCDataSource
Database Type:選擇MySQL
Database Driver:選擇第一個com包下的驅(qū)動就可以 Next.
8.Transaction Options
選擇倒數(shù)第二個Emulate Two-Phase Commit Next.
9.Connection Properties
Database Name :自己的數(shù)據(jù)庫名 例如:test
Host Name :主機(jī)名 例如:localhost或192.168.1.117
Port :3306 (mysql默認(rèn))
Database User Name:數(shù)據(jù)庫用戶名
Password :數(shù)據(jù)庫密碼
Confirm Password :同上 Next
10.Test Database Connection
可以點擊Test Configuration 測試一下數(shù)據(jù)庫連接。Next
11.Select Targets
選擇發(fā)布到哪個AdminServer的JNDI樹上。Next
12.點擊左上的Activate Changes 如果沒有異常就OK了哦。
友情提示:
1) 如果你直接在weblogic下配連接池而不在weblogic下的domain下配置,可以跳過1,2步。
2) 如果配置成功后你可以在console下的Environment->Servers頁面點擊你的AdminServer(admin),然后View JNDI Tree中看到你剛配置的JNDI名。
posted @
2008-02-26 10:11 阿偉 閱讀(373) |
評論 (0) |
編輯 收藏
Weblogic9.0圖解安裝 (詳細(xì)可參考BEA官方網(wǎng)站:http://e-docs.bea.com/wlp/docs92/index.html)
posted @
2008-02-25 16:58 阿偉 閱讀(1856) |
評論 (0) |
編輯 收藏
Java系統(tǒng)中內(nèi)存泄漏測試方法的研究
posted @
2008-02-24 18:23 阿偉 閱讀(304) |
評論 (0) |
編輯 收藏
1.將數(shù)據(jù)庫驅(qū)動程序的JAR文件放在Tomcat的 common/lib 中;
2.在server.xml中設(shè)置數(shù)據(jù)源,以MySQL數(shù)據(jù)庫為例,如下:
在<GlobalNamingResources> </GlobalNamingResources>節(jié)點中加入,
<Resource
name="jdbc/DBPool"
type="javax.sql.DataSource"
password="root"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="5000"
username="root"
url="jdbc:mysql://127.0.0.1:3306/test"
maxActive="4"/>
屬性說明:name,數(shù)據(jù)源名稱,通常取”jdbc/XXX”的格式;
type,”javax.sql.DataSource”;
password,數(shù)據(jù)庫用戶密碼;
driveClassName,數(shù)據(jù)庫驅(qū)動;
maxIdle,最大空閑數(shù),數(shù)據(jù)庫連接的最大空閑時間。超過空閑時間,數(shù)據(jù)庫連
接將被標(biāo)記為不可用,然后被釋放。設(shè)為0表示無限制。
MaxActive,連接池的最大數(shù)據(jù)庫連接數(shù)。設(shè)為0表示無限制。
maxWait ,最大建立連接等待時間。如果超過此時間將接到異常。設(shè)為-1表示
無限制。
3.在你的web應(yīng)用程序的web.xml中設(shè)置數(shù)據(jù)源參考,如下:
在<web-app></web-app>節(jié)點中加入,
<resource-ref>
<description>MySQL DB Connection Pool</description>
<res-ref-name>jdbc/DBPool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
子節(jié)點說明: description,描述信息;
res-ref-name,參考數(shù)據(jù)源名字,同上一步的屬性name;
res-type,資源類型,”javax.sql.DataSource”;
res-auth,”Container”;
res-sharing-scope,”Shareable”;
4.在web應(yīng)用程序的context.xml中設(shè)置數(shù)據(jù)源鏈接,如下:
在<Context></Context>節(jié)點中加入,
<ResourceLink
name="jdbc/DBPool"
type="javax.sql.DataSource"
global="jdbc/DBPool"/>
屬性說明:name,同第2步和第3步的屬性name值,和子節(jié)點res-ref-name值;
type,同樣取”javax.sql.DataSource”;
global,同name值。
至此,設(shè)置完成,下面是如何使用數(shù)據(jù)庫連接池。
1.建立一個連接池類,DBPool.java,用來創(chuàng)建連接池,代碼如下:
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class DBPool {
private static DataSource pool;
static {
Context env = null;
try {
env = (Context) new InitialContext().lookup("java:comp/env");
pool = (DataSource)env.lookup("jdbc/DBPool");
if(pool==null)
System.err.println("'DBPool' is an unknown DataSource");
} catch(NamingException ne) {
ne.printStackTrace();
}
}
public static DataSource getPool() {
return pool;
}
}
2.在要用到數(shù)據(jù)庫操作的類或jsp頁面中,用DBPool.getPool().getConnection(),獲得一個Connection對象,就可以進(jìn)行數(shù)據(jù)庫操作,最后別忘了對Connection對象調(diào)用close()方法,注意:這里不會關(guān)閉這個Connection,而是將這個Connection放回數(shù)據(jù)庫連接池。
posted @
2008-02-19 15:47 阿偉 閱讀(222) |
評論 (0) |
編輯 收藏
substr 方法
返回一個從指定位置開始的指定長度的子字符串。
stringvar.substr(start [, length ])
參數(shù)
stringvar
必選項。要提取子字符串的字符串文字或 String 對象。
start
必選項。所需的子字符串的起始位置。字符串中的第一個字符的索引為 0。
length
可選項。在返回的子字符串中應(yīng)包括的字符個數(shù)。
說明
如果 length 為 0 或負(fù)數(shù),將返回一個空字符串。如果沒有指定該參數(shù),則子字符串將延續(xù)到 stringvar 的最后。
示例
下面的示例演示了substr 方法的用法。
function SubstrDemo(){
var s, ss; // 聲明變量。
var s = "The rain in Spain falls mainly in the plain.";
ss = s.substr(12, 5); // 獲取子字符串。
return(ss); // 返回 "Spain"。
}
substring 方法
返回位于 String 對象中指定位置的子字符串。
strVariable.substring(start, end)
"String Literal".substring(start, end)
參數(shù)
start
指明子字符串的起始位置,該索引從 0 開始起算。
end
指明子字符串的結(jié)束位置,該索引從 0 開始起算。
說明
substring 方法將返回一個包含從 start 到最后(不包含 end )的子字符串的字符串。
substring 方法使用 start 和 end 兩者中的較小值作為子字符串的起始點。例如, strvar.substring(0, 3) 和 strvar.substring(3, 0) 將返回相同的子字符串。
如果 start 或 end 為 NaN 或者負(fù)數(shù),那么將其替換為0。
子字符串的長度等于 start 和 end 之差的絕對值。例如,在 strvar.substring(0, 3) 和 strvar.substring(3, 0) 返回的子字符串的的長度是 3。
示例
下面的示例演示了 substring 方法的用法。
function SubstringDemo(){
var ss; // 聲明變量。
var s = "The rain in Spain falls mainly in the plain..";
ss = s.substring(12, 17); // 取子字符串。
return(ss); // 返回子字符串。
}
posted @
2008-01-23 16:45 阿偉 閱讀(717) |
評論 (0) |
編輯 收藏
轉(zhuǎn)自: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1967495
第一句話是:優(yōu)秀是一種習(xí)慣。
這句話是古希臘哲學(xué)家亞里士多德說的。如果說優(yōu)秀是一種習(xí)慣,那么懶惰也是一種習(xí)慣。人出生的時候,除了脾氣會因為天性而有所不同,其他的東西基本都是后天形成的,是家庭影響和教育的結(jié)果。所以,我們的一言一行都是日積月累養(yǎng)成的習(xí)慣。我們有的人形成了很好的習(xí)慣,有的人形成了很壞的習(xí)慣。所以我們從現(xiàn)在起就要把優(yōu)秀變成一種習(xí)慣,使我們的優(yōu)秀行為習(xí)以為常,變成我們的第二天性。讓我們習(xí)慣性地去創(chuàng)造性思考,習(xí)慣性地去認(rèn)真做事情,習(xí)慣性地對別人友好,習(xí)慣性地欣賞大自然。
注解:要會“裝”,要持續(xù)的、不間斷的“裝”,裝久了就成了真的了,就成了習(xí)慣了,比如準(zhǔn)時到會,每次都按時到會,你裝裝看,你裝30年看看,裝的時間長了就形成了習(xí)慣。:)
第二句話是:生命是一種過程。
事情的結(jié)果盡管重要,但是做事情的過程更加重要,因為結(jié)果好了我們會更加快樂,但過程使我們的生命充實。人的生命最后的結(jié)果一定是死亡,我們不能因此說我們的生命沒有意義。世界上很少有永恒。大學(xué)生談戀愛,每天都在信誓旦旦地說我會愛你一輩子,這實際上是不真實的。統(tǒng)計數(shù)據(jù)表明,大學(xué)生談戀愛的 100對里有 90對最后會分手,最后結(jié)婚了的還有一半會離婚。你說愛情能永恒嗎?所以最真實的說法是:“我今天,此時此刻正在真心地愛著你。”明天也許你會失戀,失戀后我們會體驗到失戀的痛苦。這種體驗也是豐富你生命的一個過程。
注解:生命本身其實是沒有任何意義的,只是你自己賦予你的生命一種你希望實現(xiàn)的意義,因此享受生命的過程就是一種意義所在。
第三句話是:兩點之間最短的距離并不一定是直線。
在人與人的關(guān)系以及做事情的過程中,我們很難直截了當(dāng)就把事情做好。我們有時需要等待,有時需要合作,有時需要技巧。我們做事情會碰到很多困難和障礙,有時候我們并不一定要硬挺、硬沖,我們可以選擇有困難繞過去,有障礙繞過去,也許這樣做事情更加順利。大家想一想,我們和別人說話還得想想哪句話更好聽呢。尤其在中國這個比較復(fù)雜的社會中,大家要學(xué)會想辦法諒解別人,要讓人覺得你這個人很成熟,很不錯,你才能把事情做成。
注解:如果你在考數(shù)學(xué)試題,一定要答兩點之間直線段最短,如果你在走路,從A到B,明明可以直接過去,但所有人都不走,你最好別走,因為有陷阱。在中國辦事情,直線性思維在很多地方要碰壁,這是中國特色的中國處事方式。
第四句話是:只有知道如何停止的人才知道如何加快速度。
我在滑雪的時候,最大的體會就是停不下來。我剛開始學(xué)滑雪時沒有請教練,看著別人滑雪,覺得很容易,不就是從山頂滑到山下嗎?于是我穿上滑雪板,哧溜一下就滑下去了,結(jié)果我從山頂滑到山下,實際上是滾到山下,摔了很多個跟斗。我發(fā)現(xiàn)根本就不知道怎么停止、怎么保持平衡。最后我反復(fù)練習(xí)怎么在雪地上、斜坡上停下來。練了一個星期,我終于學(xué)會了在任何坡上停止、滑行、再停止。這個時候我就發(fā)現(xiàn)自己會滑雪了,就敢從山頂高速地往山坡下沖。因為我知道只要我想停,一轉(zhuǎn)身就能停下來。只要你能停下來,你就不會撞上樹、撞上石頭、撞上人,你就不會被撞死。因此,只有知道如何停止的人,才知道如何高速前進(jìn)。
注解:用汽車來比喻,寶馬可以上200公里,奇瑞卻只能上120公里,為什么?發(fā)動機(jī)估計不相上下,差距在剎車系統(tǒng),上了200公里剎不了車,呵呵,我的天!
第五句話是:放棄是一種智慧,缺陷是一種恩惠。
當(dāng)你擁有六個蘋果的時候,千萬不要把它們都吃掉,因為你把六個蘋果全都吃掉,你也只吃到了六個蘋果,只吃到了一種味道,那就是蘋果的味道。如果你把六個蘋果中的五個拿出來給別人吃,盡管表面上你丟了五個蘋果,但實際上你卻得到了其他五個人的友情和好感。以后你還能得到更多,當(dāng)別人有了別的水果的時候,也一定會和你分享,你會從這個人手里得到一個橘子,那個人手里得到一個梨,最后你可能就得到了六種不同的水果,六種不同的味道,六種不同的顏色,六個人的友誼。人一定要學(xué)會用你擁有的東西去換取對你來說更加重要和豐富的東西。所以說,放棄是一種智慧。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1967495
posted @
2008-01-23 13:26 阿偉 閱讀(192) |
評論 (0) |
編輯 收藏