锘??xml version="1.0" encoding="utf-8" standalone="yes"?> web.xml閲岄潰鍙互瀹氫箟涓ょ鍙傛暟錛?br />
(1)application鑼冨洿鍐呯殑鍙傛暟錛屽瓨鏀懼湪servletcontext涓紝鍦╳eb.xml涓厤緗涓嬶細 <context-param> <param-name>name1</param-name> <servlet> package com.wes.controller; import javax.servlet.ServletException; public class MainServlet extends HttpServlet ...{ public MainServlet() ...{ 絎?
涓縐嶅弬鏁板湪servlet閲岄潰鍙互閫氳繃getServletContext().getInitParameter("context/param")寰?
鍒?(鍦╯ervlet鐨刬nit()鏂規硶涓氳繃this.getInitParameter("param1")鍙栧緱) --------------------------------------------------------------------- 閰嶇疆鍙傛暟涓鑸瓨鏀懼湪context-param鍏冪礌涓紝姣忎竴涓猚ontext-param鍏冪礌浠h〃浜嗕竴涓敭鍊煎銆?/span> 鎴?
浠彲浠ラ氳繃瀹炵幇ServletContextListener鎺ュ彛璇誨彇璇ラ敭鍊煎涓殑鍊鹼紝鍦╳eb搴旂敤紼嬪簭鍒濆鍖栫殑鏃跺欙紝璋冪敤
ServletContextListener鐨刢ontextInitialized()鏂規硶錛屾墍浠ユ垜浠垜浠彲浠ラ噸鍐欒鏂規硶錛屽疄鐜拌鍙栨搷浣溿傚彲浠ヨ繖鏍峰疄
鐜幫細 public class AppListener implements ServletContextListener { //鐩稿簲鐨勯敭鍊煎瀛樺埌map涓?br />
config.addKeyValue(parameter, sc.getInitParameter(parameter)); public void contextDestroyed(ServletContextEvent arg0) { } MyConfig綾伙細(Singleton Config) import java.util.Collection; /** public class MyConfig{ public static HashMap getConfig() { public HashMap addKeyTValue(String name,String value){ 鎺ョ潃錛屽繀欏誨湪web.xml涓厤緗浉搴旂殑鐩戝惉綾伙紝鎵嶈兘鍦ㄥ垵濮嬪寲鐨勬椂鍊欙紝鑷姩璋冪敤璇ユ柟娉曘傚錛?/span> <listener> 榪欐牱灝卞彲浠ュ湪浠諱綍涓涓狫SP欏甸潰錛岄氳繃EL琛ㄨ揪寮忔垨JSTL璇誨埌context-param涓殑鍐呭銆?/span> 鏈夌殑緗戝弸璇村湪web.xml鍐呭畾涔?lt;listener>鍏冪礌鏃跺緱娉ㄦ剰涓嬪垪涓ょ偣錛?br />
<listener>鍏冪礌蹇呴』鍑虹幇鍦ㄤ換浣旵ontext璧峰鍙傛暟錛堢敱<context-param>鍏冪礌鎵瀹氫箟錛変箣鍚庛?br />
<listener>鍏冪礌蹇呴』鍑虹幇鍦ㄤ換浣昐ervlet瀹炰綋錛堢敱<servlet>鍏冪礌鎵瀹氫箟錛変箣鍓嶃?/span> 浣嗘槸鎴戝湪TOMCAT5.5 +銆J2EE 5涓嬮厤緗畐eb.xml騫舵病鏈夋寜鐓т笂榪扮殑涓ユ牸闄愬埗涔熻兘鎴愬姛璇誨彇淇℃伅銆?/span> 闅鵑亾鏄増鏈殑闂鍚椼?/span> 鍦⊿truts 1.X涓嬶紝閫氳繃涓涓嚜瀹氫箟鐨凷ingleton Config綾伙紝鍙互璁﹚eb.xml涓殑閰嶇疆鍙傛暟鍦ㄦ暣涓簲鐢ㄧ▼搴忛噷閮借兘琚叡浜?/span> 棣栧厛鍙互鑲畾鐨勬槸錛屽姞杞介『搴忎笌瀹冧滑鍦?web.xml 鏂囦歡涓殑鍏堝悗欏哄簭鏃犲叧銆傚嵆涓嶄細鍥犱負 filter 鍐欏湪 listener 鐨勫墠闈㈣屼細鍏堝姞杞?filter銆傛渶緇堝緱鍑虹殑緇撹鏄細listener -> filter -> servlet 鍚屾椂榪樺瓨鍦ㄧ潃榪欐牱涓縐嶉厤緗妭錛歝ontext-param錛屽畠鐢ㄤ簬鍚?ServletContext
鎻愪緵閿煎錛屽嵆搴旂敤紼嬪簭涓婁笅鏂囦俊鎭傛垜浠殑 listener, filter 絳夊湪鍒濆鍖栨椂浼氱敤鍒拌繖浜涗笂涓嬫枃涓殑淇℃伅錛岄偅涔?
context-param 閰嶇疆鑺傛槸涓嶆槸搴旇鍐欏湪 listener 閰嶇疆鑺傚墠鍛紵瀹為檯涓?context-param 閰嶇疆鑺傚彲鍐欏湪浠繪剰浣嶇疆錛屽洜姝?strong>鐪熸鐨勫姞杞介『搴忎負錛歝ontext-param -> listener -> filter -> servlet 瀵逛簬鏌愮被閰嶇疆鑺傝岃█錛屼笌瀹冧滑鍑虹幇鐨勯『搴忔槸鏈夊叧鐨勩備互 filter 涓轟緥錛寃eb.xml 涓綋鐒跺彲浠ュ畾涔夊涓?filter錛屼笌
filter 鐩稿叧鐨勪竴涓厤緗妭鏄?filter-mapping錛岃繖閲屼竴瀹氳娉ㄦ剰錛屽浜庢嫢鏈夌浉鍚?filter-name 鐨?filter 鍜?
filter-mapping 閰嶇疆鑺傝岃█錛宖ilter-mapping 蹇呴』鍑虹幇鍦?filter 涔嬪悗錛屽惁鍒欏綋瑙f瀽鍒?
filter-mapping 鏃訛紝瀹冩墍瀵瑰簲鐨?filter-name 榪樻湭瀹氫箟銆倃eb 瀹瑰櫒鍚姩鏃跺垵濮嬪寲姣忎釜 filter 鏃訛紝鏄寜鐓?
filter 閰嶇疆鑺傚嚭鐜扮殑欏哄簭鏉ュ垵濮嬪寲鐨勶紝褰撹姹傝祫婧愬尮閰嶅涓?filter-mapping 鏃訛紝filter 鎷︽埅璧勬簮鏄寜鐓?filter-mapping 閰嶇疆鑺傚嚭鐜扮殑欏哄簭鏉ヤ緷嬈¤皟鐢?/strong> doFilter() 鏂規硶鐨勩? servlet 鍚?filter 綾諱技錛屾澶勪笉鍐嶈禈榪般? 鐢辨錛屽彲浠ョ湅鍑猴紝web.xml 鐨勫姞杞介『搴忔槸錛?strong>context-param -> listener -> filter -> servlet 錛岃屽悓涓被鍨嬩箣闂寸殑瀹為檯紼嬪簭璋冪敤鐨勬椂鍊欑殑欏哄簭鏄牴鎹搴旂殑 mapping 鐨勯『搴忚繘琛岃皟鐢ㄧ殑銆?/p>
web.xml鏂囦歡璇﹁В
<param-name>context/param</param-name>
<param-value>avalible during application</param-value>
<param-value>value1</param-value>
</context-param>
(2)servlet鑼冨洿鍐呯殑鍙傛暟錛屽彧鑳藉湪servlet鐨刬nit()鏂規硶涓彇寰楋紝鍦╳eb.xml涓厤緗涓嬶細
<servlet-name>MainServlet</servlet-name>
<servlet-class>com.wes.controller.MainServlet</servlet-class>
<init-param>
<param-name>param1</param-name>
<param-value>avalible in servlet init()</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
鍦╯ervlet涓彲浠ラ氳繃浠g爜鍒嗗埆鍙栫敤錛?/span>
import javax.servlet.http.HttpServlet;
super();
}
public void init() throws ServletException ...{
System.out.println("涓嬮潰鐨勪袱涓弬鏁皃aram1鏄湪servlet涓瓨鏀劇殑");
System.out.println(this.getInitParameter("param1"));
System.out.println("涓嬮潰鐨勫弬鏁版槸瀛樻斁鍦╯ervletcontext涓殑");
System.out.println(getServletContext().getInitParameter("context/param"));
}
}
絎簩縐嶅弬鏁板彧鑳藉湪servlet鐨刬nit()鏂規硶涓氳繃this.getInitParameter("param1")鍙栧緱
ServletContextListener瀹炵幇璇誨彇web.xml涓璫ontext-param淇℃伅 2009騫?3鏈?7鏃?鏄熸湡浜?22:37
鐢ㄩ儴緗叉枃浠舵潵瀛樺偍閰嶇疆鍙傛暟鍦↗ava涓槸涓縐嶅緢嫻佽鐨勫仛娉曘?/span>
public void contextInitialized(ServletContextEvent sce) {
try {
MyConfig config = new MyConfig();//瀛樻斁閰嶇疆淇℃伅錛岀敤Map瀹炵幇
Enumeration parameters = sce.getServletContext().getInitParameterNames();
while(parameters.hasMoreElements()){
String name = (String) parameters.nextElement();
config.addKeyTValue(name, sce.getServletContext().getInitParameter(name));
}
}
} catch(Exception e) {
System.out.println("com.shou error:" + e.getMessage());
}
}
}
package com.myapp;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
*
* @author Administrator
*/
public static MyConfig myconfig;
public static HashMap config = new HashMap();
return config;
}
public static MyConfig getInstance(){
if(myconfig==null){
myconfig = new MyConfig();
}
return myconfig;
}
public static void setConfig(HashMap config) {
MyConfig.config = config;
}
this.config.put(name, value);
return this.config;
}
}
<listener-class>com.myapp.MyListener</listener-class>
</listener>
]]>
]]>
<?xml version="1.0" encoding="GB2312"?> <!--
Web.xml渚濇瀹氳浜嗗涓嬪厓绱狅細
<web-app>
<display-name></display-name> 瀹氫箟浜哤EB搴旂敤鐨勫悕瀛?
<description></description> 澹版槑WEB搴旂敤鐨勬弿榪頒俊鎭?
<filter></filter>
<filter-mapping></filter-mapping>
<servlet></servlet>
<servlet-mapping></servlet-mapping>
<session-config></session-config>
<welcome-file-list></welcome-file-list>
<taglib></taglib>
<resource-ref></resource-ref>
<security-constraint></security-constraint>
<login-config></login-config>
</web-app>
鍦╳eb.xml涓厓绱犲畾涔夌殑鍏堝悗欏哄簭涓嶈兘棰犲掞紝鍚﹀垯Tomcat鏈嶅姟鍣ㄥ彲鑳戒細鎶涘嚭SAXParseException.
-->
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems,Inc.//DTD Web Application 2.3//EN" "
<web-app>
<display-name>Sample Application</display-name>
<description>
This is a Sample Application
</description>
<!--
filter 閰嶇疆Servlet榪囨護鍣?
filter-name 瀹氫箟榪囨護鍣ㄧ殑鍚嶅瓧銆傚綋鏈夊涓繃婊ゅ櫒鏃訛紝涓嶈兘鍚屽悕
filter-class 鎸囧畾瀹炵幇榪欎竴榪囨護鐨勭被錛岃繖涓被璐熻矗鍏蜂綋鐨勮繃婊や簨鍔?
-->
<filter>
<filter-name>SampleFilter</filter-name>
<filter-class>mypack.SampleFilter</filter-class>
</filter>
<!--
filter-mapping 璁懼畾榪囨護鍣ㄨ礋璐h繃婊ょ殑URL
filter-name 榪囨護鍣ㄥ悕銆傝繖閲岀殑鍚嶅瓧涓瀹氳鍜宖ilter涓殑榪囨護鍣ㄥ悕鍖歸厤
url-pattern 鎸囧畾榪囨護鍣ㄨ礋璐h繃婊ょ殑URL
-->
<filter-mapping>
<filter-name>SampleFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<!--
servlet 閰嶇疆Servlet.
servlet-name 瀹氫箟Servlet鐨勫悕瀛?
servlet-class 鎸囧畾瀹炵幇榪欎釜servlet鐨勭被
init-param 瀹氫箟Servlet鐨勫垵濮嬪寲鍙傛暟鍜屽弬鏁板鹼紝鍙湁澶氫釜init-param銆傚湪servlet綾諱腑閫氳繃getInitParamenter(String name)鏂規硶璁塊棶鍒濆鍖栧弬鏁?
load-on-startup 鎸囧畾褰揥eb搴旂敤鍚姩鏃訛紝瑁呰澆Servlet鐨勬搴忋?
褰撳間負姝f暟鎴栭浂鏃訛細Servlet瀹瑰櫒鍏堝姞杞芥暟鍊煎皬鐨剆ervlet錛屽啀渚濇鍔犺澆鍏朵粬鏁板煎ぇ鐨剆ervlet.
褰撳間負璐熸垨鏈畾涔夛細Servlet瀹瑰櫒灝嗗湪Web瀹㈡埛棣栨璁塊棶榪欎釜servlet鏃跺姞杞藉畠
-->
<servlet>
<servlet-name>SampleServlet</servlet-name>
<servlet-class>mypack.SampleServlet</servlet-class>
<init-param>
<param-name>initParam1</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!--
閰嶇疆servlet鏄犲皠錛堜笅闈唬鐮佷負SampleServlet鎸囧畾鐨勭浉瀵筓RL涓?/sample":
servlet-name 鎸囧畾servlet鐨勫悕瀛楋紝榪欓噷鐨勫悕瀛楀簲璇ュ拰<Servlet>鍏冪礌涓畾涔夌殑鍚嶅瓧鍖歸厤銆?
url-pattern 鎸囧畾璁塊棶榪欎釜servlet鐨刄RL銆傚彧闇緇欏嚭鐩稿璺緞銆?
-->
<servlet-mapping>
<servlet-name>SampleServlet</servlet-name>
<url-pattern>/sample</url-pattern>
</servlet-mapping>
<!--閰嶇疆session session鐢ㄦ潵璁懼畾HttpSession鐨勭敓鍛藉懆鏈熴傚崟浣嶏紙縐掞級-->
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<!--閰嶇疆Wel0come0鏂囦歡娓呭崟-->
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>
<!--
閰嶇疆Tag Library
taglib-uri 璁懼畾Tag Library鐨勫敮涓鏍囪瘑絎︼紝鍦╓eb搴旂敤涓皢鏍規嵁榪欎竴鏍囪瘑絎︽潵寮曠敤Tag Library
taglib-location 鎸囧畾鍜孴ag Library瀵瑰簲鐨凾LD鏂囦歡鐨勪綅緗?
-->
<taglib>
<taglib-uri>/mytaglib</taglib-uri>
<taglib-location>/WEB-INF/mytaglib.tld</taglib-location>
</taglib>
<!--
閰嶇疆璧勬簮寮曠敤
description 瀵規墍寮曠敤鐨勮祫婧愮殑璇存槑
res-ref-name 鎸囧畾鎵寮曠敤璧勬簮鐨凧NDI鍚嶅瓧
res-type 鎸囧畾鎵寮曠敤璧勬簮鐨勭被鍚嶅瓧
res-auth 鎸囧畾綆$悊鎵寮曠敤璧勬簮鐨凪anager,瀹冩湁涓や釜鍙夊鹼細
Container錛氱敱瀹瑰櫒鏉ュ垱寤哄拰綆$悊resource
Application:鍚學EB搴旂敤鏉ュ垱寤哄拰綆$悊Resource
-->
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/sampleDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<!--
閰嶇疆瀹夊叏綰︽潫錛堜互涓嬩唬鐮佹寚瀹氬綋鐢ㄦ埛璁塊棶璇EB搴旂敤涓嬬殑鎵鏈夎祫婧愭椂錛屽繀欏誨叿澶噂uest瑙掕壊錛?
web-resource-collection 澹版槑鍙椾繚鎶ょ殑WEB璧勬簮
auth-constraint 澹版槑鍙互璁塊棶鍙椾繚鎶よ祫婧愮殑瑙掕壊錛屽彲浠ュ寘鍚涓?lt;role-name>瀛愬厓绱?
web-resource-name 鏍囪瘑鍙椾繚鎶ょ殑WEB璧勬簮
url-pattern 鎸囧畾鍙椾繚鎶ょ殑URL璺緞
-->
<Security-constraint>
<web-resource-collection>
<web-resource-name>sample appliction</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>guest</role-name>
</auth-constraint>
</Security-constraint>
<!--
閰嶇疆瀹夊叏楠岃瘉鐧誨綍鐣岄潰錛氭寚瀹氬綋WEB瀹㈡埛璁塊棶鍙椾繚鎶ょ殑WEB璧勬簮鏃訛紝緋葷粺寮瑰嚭鐨勭櫥褰曞璇濇鐨勭被鍨嬨?
auth-method 鎸囧畾楠岃瘉鏂規硶錛屽畠鏈変笁涓彲閫夊鹼細BASIC(鍩烘湰楠岃瘉)銆丏IGEST(鎽樿楠岃瘉)銆丗ORM(琛ㄥ崟楠岃瘉)
realm-name 璁懼畾瀹夊叏鍩熺殑鍚嶇О
form-login-config 褰撻獙璇佹柟娉曚負FORM鏃訛紝閰嶇疆楠岃瘉緗戦〉鍜屽嚭閿欑綉欏?
form-login-page 褰撻獙璇佹柟娉曚負FORM鏃訛紝璁懼畾楠岃瘉緗戦〉
form-error-page 褰撻獙璇佹柟娉曚負FORM鏃訛紝璁懼畾鍑洪敊緗戦〉
-->
<login-config>
<auth-method>FORM</auth-method>
<realm-name>
Tomcat Server Configuration form-Based Authentication Area
</realm-name>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/error.jsp</form-error-page>
</form-login-config>
</login-config>
<!--閰嶇疆瀵瑰畨鍏ㄩ獙璇佽鑹茬殑寮曠敤-->
<security-role>
<description>
The role that is required to log into the sample application
</description>
<role-name>guest</role-name>
</security-role>
</web-app>