KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > tester > GetHeaders01


1 /*
2  * Copyright 1999, 2000 ,2004 The Apache Software Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16
17 package org.apache.tester;
18
19
20 import java.io.*;
21 import java.util.ArrayList JavaDoc;
22 import java.util.Enumeration JavaDoc;
23 import javax.servlet.*;
24 import javax.servlet.http.*;
25
26 /**
27  * Test retrieval of headers. The client is expected to send two
28  * "Accept-Language" headers.
29  *
30  * @author Craig R. McClanahan
31  * @version $Revision: 1.2 $ $Date: 2004/02/27 14:58:57 $
32  */

33
34 public class GetHeaders01 extends HttpServlet {
35
36     public void doGet(HttpServletRequest request, HttpServletResponse response)
37         throws IOException, ServletException {
38
39         response.setContentType("text/plain");
40         PrintWriter writer = response.getWriter();
41         ArrayList JavaDoc values = new ArrayList JavaDoc();
42         Enumeration JavaDoc headers = request.getHeaders("Accept-Language");
43         while (headers.hasMoreElements()) {
44             String JavaDoc header = (String JavaDoc) headers.nextElement() + ",";
45             while (true) {
46                 int comma = header.indexOf(",");
47                 if (comma < 0)
48                     break;
49                 String JavaDoc value = header.substring(0, comma).trim();
50                 values.add(value);
51                 header = header.substring(comma + 1).trim();
52             }
53         }
54         if (values.size() != 2)
55             writer.println("GetHeaders01 FAILED - Returned " + values.size()
56                            + " headers instead of 2");
57         else if (values.get(0) == values.get(1))
58             writer.println("GetHeaders01 FAILED - Returned identical values "
59                            + values.get(0));
60         else {
61             int n = 0;
62             for (int i = 0; i < values.size(); i++) {
63                 if ("en-us".equals((String JavaDoc) values.get(i)))
64                     n++;
65                 else if ("en-gb".equals((String JavaDoc) values.get(i)))
66                     n++;
67             }
68             if (n != 2)
69                 writer.println("GetHeaders01 FAILED - Returned unknown values "
70                                + values.get(0) + " and " + values.get(1));
71             else
72                 writer.println("GetHeaders01 PASSED");
73         }
74         while (true) {
75             String JavaDoc message = StaticLogger.read();
76             if (message == null)
77                 break;
78             writer.println(message);
79         }
80         StaticLogger.reset();
81
82     }
83
84 }
85
Popular Tags