我爱电脑技术论坛's Archiver

不和人说话 发表于 2008-6-13 16:09

web.xml文件配置详解

欢迎页
W Tp/n](^ <welcome-file-list>mu3IEH!b
        <welcome-file>/login.jsp</welcome-file>J-r5X$fQ Z3ptY A8VS*i
</welcome-file-list>
KVX3wP},ki8VO J#L`NX2p gN
g8vU.E8c M
错误代码   
}G t+Cov`1\     <error-page>
xlP/W `R5f7bf)n         <error-code>404</error-code>6}!\3B}oS)X]j
        <location>/foundHtml.html</location>/IQD$mG\h)`.R^(Q0x
    </error-page>
P].Jg7i     <error-page>
K3W_|;@3W UjL$e#`         <error-code>500</error-code>
/Uv})\ B R(t         <location>/serverHtml.html</location>
;A ^ Ue,]u F^-|`#p     </error-page>5Gy%\SHE` Y!}

4cP/lUA"q
#p1]l(~ Xp%R$@0n X 异常    Ee_/Ec v"iq
    <error-page>        <exception-type>java.lang.NullPointException</exception-type>2u0Lp~%yA${
        <location>/serverHtml.html</location>
v z8g(mz-GA"Qc     </error-page>2R[u5Pb(E0]-BY
mrp1U a4S?'deF

a#aT s1t%X$p Q 所有session超时
H!rc+diP dQ#a     <session-config>
6jnB JiH         <session-timeout>1</session-timeout><!--分鐘-->7BOT#{2p5W St|
    </session-config>fM#i~f$s,~ b_
n)CxH5Mo+A.c
s5{%D:O$_&fE)e
获取Servlet初始化参数F)^bq|:sl

Fm_$mF SxX ServletConfig对象读取初始化参数E/f.R&bs+@5X
ServletConfig config = getServletConfig();;D;a S0v2au
String aa = config.getInitParameter("a");~9j$b`,~'N)U
Y*WY)riu0] l
  <servlet>
g$| ^e#r     <servlet-name>te</servlet-name>`.zD cIGNZ
    <servlet-class>com.gao.te</servlet-class>H3w a6BA?
    <init-param>6Fa:~ow$?:]0D-c{
        <param-name>a</param-name>B4L?8{]+@
        <param-value>11</param-value>
_+M%Jc@o m@(x     </init-param>
$XH%P0J0t(T;X H   </servlet>6[(\0V2v)z4dFU$H
  <servlet-mapping>B,_:O~'qzt?c
    <servlet-name>te</servlet-name>-|@ P oo{
    <url-pattern>/te</url-pattern>%vM`BY2JHdS
  </servlet-mapping>-l y)^.N.o ~+L-k
k A?(V5Q7A!|0C-l;}|$d
ohk[ E
获取ServletContext初始化参数(全局,所有servlet都有效)
Jf i{"OU9[6f
+~7I]8n:U <context-param>
r7M3v:cN1~g6D2I         <param-name>aa</param-name>,WY2[f5m ^
        <param-value>111</param-value>Flx%F.h#Zk
</context-param>*]1r5cTg-S"d
#K/i&I2}Gs
ServletContext context = this.getServletContext();Jl dT6Z
context.getInitParameter("aa");Dc{lkf-Y

:FV1I9{"im
1Y'J-Ar+C A)C 获取工程别名及主版本号与次版本号
9f'Xi }S{Z I_ <description> 0JG c%|vc
        My JSP/Servlet Examples.
8seq/{3l8};t     </description>
X(eEb,P+l#p"l     <display-name>JSP/Servlet Examples</display-name>'XSN+oa!\ y+u
Z rb}~oFi
out.println("Server: " +  application.getServerInfo() + "<br>");              //取得servlet容器的名字
*c$u6|o&p out.println(application.getMajorVersion() + "." + application.getMinorVersion() + "<br>");//主版本号与次版本号 ,`(mzC?$z
out.println("Servlet Context Name: " + application.getServletContextName());         //<display-name>标签的内容
s_R2f"hn 執行的結果如下:
WQ]*J-\"P s Server: Apache Tomcat/5.0.182B:R hkc(e{
Servlet API: 2.4
mv-pZC6p Servlet Context Name: JSP/Servlet Examples ,RTDQ:i'k9N'?0j
(akZfz

+`&vmD6{)Q*N9K;M 过滤器
d#H6G8P[/h|X/x <filter> |"k'`J0XaG#\
    <filter-name>te</servlet-name>-t k.@-F!sg
    <filter-class>com.gao.te</servlet-class>
Q&dz.l({     <init-param>~4\lU8o2Q uov ?-Vt
        <param-name>a</param-name>3xf^2fm6S
        <param-value>11</param-value>
U(]!]b,V~5m     </init-param>;r$P8s TFm{N
  </filter>YG'_!Ur"v*d

l s&j7lILHA4?   <filter-mapping>
%nY$ol[ tA$QB     <filter-name>te</servlet-name>ii,?"x m~-z!t
    <url-pattern>/admin/*</url-pattern>        只有admin文件下才经过过滤器5[3c)aB@9B&[
  </filter-mapping>
w;fX)tk
i%aBw*G5?_
&^#`&c SlSU a*T| 這可以在web.xml中加以設定,觸發Filter的方式有FORWARD、 INCLUDE、REQUEST與ERROR,即轉發、包含、請求與錯誤網頁請求時,預設的觸發方式是REQUEST,您可以使用< dispatcher>標籤來加以設定,例如:IJ6F6WgA{1G
u1]m;y$ql~3IG
<filter-mapping>
;`&{-KfV q-Ux&G   <filter-name>SomeFilter</filter-name> W j2H7W,}5|`"X2Q
  <url-pattern>/somePage.jsp</url-mapping>
{5Q tC S*Xy0@   <dispatcher>REQUEST</dispatcher>
3f/u$H Qc z{"nhM%~6Ak   <dispatcher>INCLUDE</dispatcher> 'W U`9rU+O/B}
</filter-mapping>
$jw|9grx3{
%MsYYB$V0M
p5A hwQ$fH#}F 服务器启动時載入Servlet,可以在web.xml的<servlet>定義時,加入<load-on- startup>值越低优先级越高$o7g b5MY;@
<servlet>
.dH[G]:[5kJ'o     <servlet-name>Servletname1</servlet-name> &D5C["U*Vi5x
    <servlet-class>demo.servlet.SomeServlet1</servlet-class>
wYJ2\-a1F*c     <load-on-startup>10</load-on-startup> O5V)j*W3^8pTZ I
</servlet>
S_4Tj9]5_ <servlet>
C hAA&ddq     <servlet-name>Servletname2</servlet-name>
H m-{/rh X U     <servlet-class>demo.servlet.SomeServlet2</servlet-class>
%A dol*p%V     <load-on-startup>20</load-on-startup> FOz/_|:H*Y!pX8G&Y
</servlet>
`$aiF:h
s1?.ARtnU,x1@
M"[&Fu!Ov*?x 瀏覽器發出請求至Servlet的執行順序是: M0H%j.[ s-?/? vE|
0q#o]3B,^Mn e
瀏覽器 -> Web 伺服器 -> Servlet 容器 -> service()J&igM4NW8QO
(R$y Wl8s
如果是HttpServlet則會依請求的方法,在service()之後呼叫對應的doXXX()方法。
-LNV d%qO^:E
8D)Iro0~;IFy*GW ctPr G['Z4p
配置监听器 (BPF?aN3J3L*r
<listener>
1p3?k9p~K7o-H*e-S0L     <listener-class>com.gao.AListener</listener-class>g(\q.LN0X
</listener>

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.