Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
771 blopes 1
<?xml version="1.0" encoding="UTF-8"?>
2
<!--
3
  Licensed to the Apache Software Foundation (ASF) under one or more
4
  contributor license agreements.  See the NOTICE file distributed with
5
  this work for additional information regarding copyright ownership.
6
  The ASF licenses this file to You under the Apache License, Version 2.0
7
  (the "License"); you may not use this file except in compliance with
8
  the License.  You may obtain a copy of the License at
9
 
10
      http://www.apache.org/licenses/LICENSE-2.0
11
 
12
  Unless required by applicable law or agreed to in writing, software
13
  distributed under the License is distributed on an "AS IS" BASIS,
14
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
  See the License for the specific language governing permissions and
16
  limitations under the License.
17
-->
18
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
19
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
20
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
21
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
22
  version="4.0"
23
  metadata-complete="true">
24
 
25
    <description>
26
      Servlet and JSP Examples.
27
    </description>
28
    <display-name>Servlet and JSP Examples</display-name>
29
 
30
    <request-character-encoding>UTF-8</request-character-encoding>
31
 
32
    <!-- Define example filters -->
33
    <filter>
34
        <filter-name>Timing Filter</filter-name>
35
        <filter-class>filters.ExampleFilter</filter-class>
36
        <init-param>
37
            <param-name>attribute</param-name>
38
            <param-value>filters.ExampleFilter</param-value>
39
        </init-param>
40
    </filter>
41
 
42
    <filter>
43
        <filter-name>Request Dumper Filter</filter-name>
44
        <filter-class>org.apache.catalina.filters.RequestDumperFilter</filter-class>
45
    </filter>
46
 
47
    <filter>
48
        <filter-name>Compression Filter</filter-name>
49
        <filter-class>compressionFilters.CompressionFilter</filter-class>
50
        <init-param>
51
            <param-name>compressionThreshold</param-name>
52
            <param-value>128</param-value>
53
        </init-param>
54
        <init-param>
55
            <param-name>compressionBuffer</param-name>
56
            <param-value>8192</param-value>
57
        </init-param>
58
        <init-param>
59
            <param-name>compressionMimeTypes</param-name>
60
            <param-value>text/html,text/plain,text/xml</param-value>
61
        </init-param>
62
        <init-param>
63
          <param-name>debug</param-name>
64
          <param-value>0</param-value>
65
        </init-param>
66
    </filter>
67
 
68
    <!-- Configured to set X-FRAME-OPTIONS. Disable HSTS in case it          -->
69
    <!-- interferes with an existing setting. Keep X-Content-Type-Options    -->
70
    <!-- and X-XSS-Protection as they are page specific.                     -->
71
    <filter>
72
        <filter-name>HTTP header security filter</filter-name>
73
        <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
74
        <async-supported>true</async-supported>
75
        <init-param>
76
            <param-name>hstsEnabled</param-name>
77
            <param-value>false</param-value>
78
        </init-param>
79
    </filter>
80
 
81
    <!-- Define filter mappings for the timing filters -->
82
    <!--
83
    <filter-mapping>
84
        <filter-name>Timing Filter</filter-name>
85
        <url-pattern>/*</url-pattern>
86
    </filter-mapping>
87
    -->
88
 
89
<!--
90
    <filter-mapping>
91
      <filter-name>Compression Filter</filter-name>
92
      <url-pattern>/CompressionTest</url-pattern>
93
    </filter-mapping>
94
-->
95
 
96
<!--
97
    <filter-mapping>
98
        <filter-name>Request Dumper Filter</filter-name>
99
        <url-pattern>/*</url-pattern>
100
    </filter-mapping>
101
-->
102
 
103
    <!-- Enable header security filter for all requests -->
104
    <filter-mapping>
105
        <filter-name>HTTP header security filter</filter-name>
106
        <url-pattern>/*</url-pattern>
107
    </filter-mapping>
108
 
109
    <!-- Define example application events listeners -->
110
    <listener>
111
        <listener-class>listeners.ContextListener</listener-class>
112
    </listener>
113
    <listener>
114
        <listener-class>listeners.SessionListener</listener-class>
115
    </listener>
116
 
117
    <!-- Define listeners required by examples -->
118
    <listener>
119
        <listener-class>async.AsyncStockContextListener</listener-class>
120
    </listener>
121
 
122
    <!-- Define servlets that are included in the example application -->
123
 
124
    <servlet>
125
      <servlet-name>ServletToJsp</servlet-name>
126
      <servlet-class>ServletToJsp</servlet-class>
127
    </servlet>
128
    <servlet>
129
        <servlet-name>CompressionFilterTestServlet</servlet-name>
130
        <servlet-class>compressionFilters.CompressionFilterTestServlet</servlet-class>
131
    </servlet>
132
    <servlet>
133
        <servlet-name>HelloWorldExample</servlet-name>
134
        <servlet-class>HelloWorldExample</servlet-class>
135
    </servlet>
136
    <servlet>
137
        <servlet-name>RequestInfoExample</servlet-name>
138
        <servlet-class>RequestInfoExample</servlet-class>
139
    </servlet>
140
    <servlet>
141
        <servlet-name>RequestHeaderExample</servlet-name>
142
        <servlet-class>RequestHeaderExample</servlet-class>
143
    </servlet>
144
    <servlet>
145
        <servlet-name>RequestParamExample</servlet-name>
146
        <servlet-class>RequestParamExample</servlet-class>
147
    </servlet>
148
    <servlet>
149
        <servlet-name>CookieExample</servlet-name>
150
        <servlet-class>CookieExample</servlet-class>
151
    </servlet>
152
    <servlet>
153
        <servlet-name>SessionExample</servlet-name>
154
        <servlet-class>SessionExample</servlet-class>
155
    </servlet>
156
 
157
    <servlet-mapping>
158
        <servlet-name>CompressionFilterTestServlet</servlet-name>
159
        <url-pattern>/CompressionTest</url-pattern>
160
    </servlet-mapping>
161
    <servlet-mapping>
162
        <servlet-name>HelloWorldExample</servlet-name>
163
        <url-pattern>/servlets/servlet/HelloWorldExample</url-pattern>
164
    </servlet-mapping>
165
    <servlet-mapping>
166
        <servlet-name>RequestInfoExample</servlet-name>
167
        <url-pattern>/servlets/servlet/RequestInfoExample/*</url-pattern>
168
    </servlet-mapping>
169
    <servlet-mapping>
170
        <servlet-name>RequestHeaderExample</servlet-name>
171
        <url-pattern>/servlets/servlet/RequestHeaderExample</url-pattern>
172
    </servlet-mapping>
173
    <servlet-mapping>
174
        <servlet-name>RequestParamExample</servlet-name>
175
        <url-pattern>/servlets/servlet/RequestParamExample</url-pattern>
176
    </servlet-mapping>
177
    <servlet-mapping>
178
        <servlet-name>CookieExample</servlet-name>
179
        <url-pattern>/servlets/servlet/CookieExample</url-pattern>
180
    </servlet-mapping>
181
    <servlet-mapping>
182
        <servlet-name>SessionExample</servlet-name>
183
        <url-pattern>/servlets/servlet/SessionExample</url-pattern>
184
    </servlet-mapping>
185
    <servlet-mapping>
186
        <servlet-name>ServletToJsp</servlet-name>
187
        <url-pattern>/servletToJsp</url-pattern>
188
    </servlet-mapping>
189
 
190
    <jsp-config>
191
        <taglib>
192
            <taglib-uri>
193
               http://tomcat.apache.org/debug-taglib
194
            </taglib-uri>
195
            <taglib-location>
196
               /WEB-INF/jsp/debug-taglib.tld
197
            </taglib-location>
198
        </taglib>
199
 
200
        <taglib>
201
            <taglib-uri>
202
               http://tomcat.apache.org/example-taglib
203
            </taglib-uri>
204
            <taglib-location>
205
               /WEB-INF/jsp/example-taglib.tld
206
            </taglib-location>
207
        </taglib>
208
 
209
        <taglib>
210
            <taglib-uri>
211
               http://tomcat.apache.org/jsp2-example-taglib
212
            </taglib-uri>
213
            <taglib-location>
214
               /WEB-INF/jsp/jsp2-example-taglib.tld
215
            </taglib-location>
216
        </taglib>
217
 
218
        <jsp-property-group>
219
            <description>
220
                Special property group for JSP Configuration JSP example.
221
            </description>
222
            <display-name>JSPConfiguration</display-name>
223
            <url-pattern>/jsp/jsp2/misc/config.jsp</url-pattern>
224
            <el-ignored>true</el-ignored>
225
            <page-encoding>ISO-8859-1</page-encoding>
226
            <scripting-invalid>true</scripting-invalid>
227
            <include-prelude>/jsp/jsp2/misc/prelude.jspf</include-prelude>
228
            <include-coda>/jsp/jsp2/misc/coda.jspf</include-coda>
229
        </jsp-property-group>
230
    </jsp-config>
231
 
232
    <security-constraint>
233
      <display-name>Example Security Constraint - part 1</display-name>
234
      <web-resource-collection>
235
         <web-resource-name>Protected Area - Allow methods</web-resource-name>
236
         <!-- Define the context-relative URL(s) to be protected -->
237
         <url-pattern>/jsp/security/protected/*</url-pattern>
238
         <!-- If you list http methods, only those methods are protected so -->
239
         <!-- the constraint below ensures all other methods are denied     -->
240
         <http-method>DELETE</http-method>
241
         <http-method>GET</http-method>
242
         <http-method>POST</http-method>
243
         <http-method>PUT</http-method>
244
      </web-resource-collection>
245
      <auth-constraint>
246
         <!-- Anyone with one of the listed roles may access this area -->
247
         <role-name>tomcat</role-name>
248
         <role-name>role1</role-name>
249
      </auth-constraint>
250
    </security-constraint>
251
    <security-constraint>
252
      <display-name>Example Security Constraint - part 2</display-name>
253
      <web-resource-collection>
254
         <web-resource-name>Protected Area - Deny methods</web-resource-name>
255
         <!-- Define the context-relative URL(s) to be protected -->
256
         <url-pattern>/jsp/security/protected/*</url-pattern>
257
         <http-method-omission>DELETE</http-method-omission>
258
         <http-method-omission>GET</http-method-omission>
259
         <http-method-omission>POST</http-method-omission>
260
         <http-method-omission>PUT</http-method-omission>
261
      </web-resource-collection>
262
      <!-- An empty auth constraint denies access -->
263
      <auth-constraint />
264
    </security-constraint>
265
 
266
    <!-- Default login configuration uses form-based authentication -->
267
    <login-config>
268
      <auth-method>FORM</auth-method>
269
      <realm-name>Example Form-Based Authentication Area</realm-name>
270
      <form-login-config>
271
        <form-login-page>/jsp/security/protected/login.jsp</form-login-page>
272
        <form-error-page>/jsp/security/protected/error.jsp</form-error-page>
273
      </form-login-config>
274
    </login-config>
275
 
276
    <!-- Security roles referenced by this web application -->
277
    <security-role>
278
      <role-name>role1</role-name>
279
    </security-role>
280
    <security-role>
281
      <role-name>tomcat</role-name>
282
    </security-role>
283
 
284
    <!-- Environment entry examples -->
285
    <!--env-entry>
286
      <env-entry-description>
287
         The maximum number of tax exemptions allowed to be set.
288
      </env-entry-description>
289
      <env-entry-name>maxExemptions</env-entry-name>
290
      <env-entry-type>java.lang.Integer</env-entry-type>
291
      <env-entry-value>15</env-entry-value>
292
    </env-entry-->
293
    <env-entry>
294
      <env-entry-name>minExemptions</env-entry-name>
295
      <env-entry-type>java.lang.Integer</env-entry-type>
296
      <env-entry-value>1</env-entry-value>
297
    </env-entry>
298
    <env-entry>
299
      <env-entry-name>foo/name1</env-entry-name>
300
      <env-entry-type>java.lang.String</env-entry-type>
301
      <env-entry-value>value1</env-entry-value>
302
    </env-entry>
303
    <env-entry>
304
      <env-entry-name>foo/bar/name2</env-entry-name>
305
      <env-entry-type>java.lang.Boolean</env-entry-type>
306
      <env-entry-value>true</env-entry-value>
307
    </env-entry>
308
    <env-entry>
309
      <env-entry-name>name3</env-entry-name>
310
      <env-entry-type>java.lang.Integer</env-entry-type>
311
      <env-entry-value>1</env-entry-value>
312
    </env-entry>
313
    <env-entry>
314
      <env-entry-name>foo/name4</env-entry-name>
315
      <env-entry-type>java.lang.Integer</env-entry-type>
316
      <env-entry-value>10</env-entry-value>
317
    </env-entry>
318
 
319
    <!-- Async examples -->
320
    <servlet>
321
      <servlet-name>async0</servlet-name>
322
      <servlet-class>async.Async0</servlet-class>
323
      <async-supported>true</async-supported>
324
    </servlet>
325
    <servlet-mapping>
326
      <servlet-name>async0</servlet-name>
327
      <url-pattern>/async/async0</url-pattern>
328
    </servlet-mapping>
329
    <servlet>
330
      <servlet-name>async1</servlet-name>
331
      <servlet-class>async.Async1</servlet-class>
332
      <async-supported>true</async-supported>
333
    </servlet>
334
    <servlet-mapping>
335
      <servlet-name>async1</servlet-name>
336
      <url-pattern>/async/async1</url-pattern>
337
    </servlet-mapping>
338
    <servlet>
339
      <servlet-name>async2</servlet-name>
340
      <servlet-class>async.Async2</servlet-class>
341
      <async-supported>true</async-supported>
342
    </servlet>
343
    <servlet-mapping>
344
      <servlet-name>async2</servlet-name>
345
      <url-pattern>/async/async2</url-pattern>
346
    </servlet-mapping>
347
    <servlet>
348
      <servlet-name>async3</servlet-name>
349
      <servlet-class>async.Async3</servlet-class>
350
      <async-supported>true</async-supported>
351
    </servlet>
352
    <servlet-mapping>
353
      <servlet-name>async3</servlet-name>
354
      <url-pattern>/async/async3</url-pattern>
355
    </servlet-mapping>
356
    <servlet>
357
      <servlet-name>stock</servlet-name>
358
      <servlet-class>async.AsyncStockServlet</servlet-class>
359
      <async-supported>true</async-supported>
360
    </servlet>
361
    <servlet-mapping>
362
      <servlet-name>stock</servlet-name>
363
      <url-pattern>/async/stockticker</url-pattern>
364
    </servlet-mapping>
365
 
366
    <!-- Non-blocking IO examples -->
367
    <servlet>
368
      <servlet-name>bytecounter</servlet-name>
369
      <servlet-class>nonblocking.ByteCounter</servlet-class>
370
      <async-supported>true</async-supported>
371
    </servlet>
372
    <servlet-mapping>
373
      <servlet-name>bytecounter</servlet-name>
374
      <url-pattern>/servlets/nonblocking/bytecounter</url-pattern>
375
    </servlet-mapping>
376
    <servlet>
377
      <servlet-name>numberwriter</servlet-name>
378
      <servlet-class>nonblocking.NumberWriter</servlet-class>
379
      <async-supported>true</async-supported>
380
    </servlet>
381
    <servlet-mapping>
382
      <servlet-name>numberwriter</servlet-name>
383
      <url-pattern>/servlets/nonblocking/numberwriter</url-pattern>
384
    </servlet-mapping>
385
 
386
    <!-- Server Push examples -->
387
    <servlet>
388
      <servlet-name>simpleimagepush</servlet-name>
389
      <servlet-class>http2.SimpleImagePush</servlet-class>
390
    </servlet>
391
    <servlet-mapping>
392
      <servlet-name>simpleimagepush</servlet-name>
393
      <url-pattern>/servlets/serverpush/simpleimage</url-pattern>
394
    </servlet-mapping>
395
 
396
    <!-- Trailer examples -->
397
    <servlet>
398
      <servlet-name>responsetrailer</servlet-name>
399
      <servlet-class>trailers.ResponseTrailers</servlet-class>
400
    </servlet>
401
    <servlet-mapping>
402
      <servlet-name>responsetrailer</servlet-name>
403
      <url-pattern>/servlets/trailers/response</url-pattern>
404
    </servlet-mapping>
405
 
406
    <welcome-file-list>
407
        <welcome-file>index.html</welcome-file>
408
        <welcome-file>index.xhtml</welcome-file>
409
        <welcome-file>index.htm</welcome-file>
410
        <welcome-file>index.jsp</welcome-file>
411
    </welcome-file-list>
412
 
413
    <!-- Websocket examples -->
414
    <listener>
415
        <listener-class>websocket.drawboard.DrawboardContextListener</listener-class>
416
    </listener>
417
 
418
    <error-page>
419
        <error-code>403</error-code>
420
        <location>/WEB-INF/jsp/403.jsp</location>
421
    </error-page>
422
 
423
</web-app>