View Javadoc

1   /**
2    * Copyright (c) 2002-2015, JWebUnit team.
3    *
4    * This file is part of JWebUnit.
5    *
6    * JWebUnit is free software: you can redistribute it and/or modify
7    * it under the terms of the GNU Lesser General Public License as published by
8    * the Free Software Foundation, either version 3 of the License, or
9    * (at your option) any later version.
10   *
11   * JWebUnit is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   * GNU General Public License for more details.
15   *
16   * You should have received a copy of the GNU Lesser General Public License
17   * along with JWebUnit.  If not, see <http://www.gnu.org/licenses/>.
18   */
19  package net.sourceforge.jwebunit.tests.util;
20  
21  import java.io.IOException;
22  import java.io.PrintWriter;
23  import java.util.Iterator;
24  import java.util.List;
25  
26  import javax.servlet.ServletException;
27  import javax.servlet.http.HttpServlet;
28  import javax.servlet.http.HttpServletRequest;
29  import javax.servlet.http.HttpServletResponse;
30  
31  import org.apache.commons.fileupload.FileItem;
32  import org.apache.commons.fileupload.FileItemFactory;
33  import org.apache.commons.fileupload.FileUploadException;
34  import org.apache.commons.fileupload.disk.DiskFileItemFactory;
35  import org.apache.commons.fileupload.servlet.ServletFileUpload;
36  
37  public class ParamsServlet extends HttpServlet {
38  
39      private static final long serialVersionUID = 1L;
40  
41      protected void doGet(HttpServletRequest request,
42              HttpServletResponse response) throws ServletException, IOException {
43          doPost(request, response);
44      }
45  
46      protected void doPost(HttpServletRequest request,
47              HttpServletResponse response) throws ServletException, IOException {
48          response.setContentType("text/html");
49          PrintWriter out = response.getWriter();
50          out.write(HtmlHelper.getStart("Submitted parameters"));
51          out.write("<h1>Submitted parameters</h1>\n<p>Params are:<br/>");
52          /*
53           * Prints POST and GET parameters as name=[value1[,value2...]] separated
54           * by <BR/>
55           */
56  
57          // Check that we have a file upload request
58          boolean isMultipart = ServletFileUpload.isMultipartContent(request);
59          if (isMultipart) {
60              // Create a factory for disk-based file items
61              FileItemFactory factory = new DiskFileItemFactory();
62  
63              // Create a new file upload handler
64              ServletFileUpload upload = new ServletFileUpload(factory);
65  
66              // Parse the request
67              List /* FileItem */items = null;
68              try {
69                  items = upload.parseRequest(request);
70              } catch (FileUploadException e) {
71                  throw new ServletException(e);
72              }
73  
74              String ref = null;
75              // Process the uploaded items
76              Iterator iter = items.iterator();
77              while (iter.hasNext()) {
78                  FileItem item = (FileItem) iter.next();
79  
80                  if (item.isFormField()) {
81                      out.write(" " + item.getFieldName() + "=["
82                              + item.getString());
83                      if (item.getFieldName().equals("myReferer")) {
84                          ref = item.getString();
85                      }
86                  } else {
87                      String fieldName = item.getFieldName();
88                      String fileName = item.getName();
89                      out.write(" " + fieldName + "=[" + fileName
90                              + "{" + new String(item.get()) + "}");
91  
92                  }
93                  if (iter.hasNext()) {
94                  	out.write("]<br/>\n");
95                  }
96              }
97              out.write("]</p>\n");
98              out.write(HtmlHelper.getLinkParagraph("return", ref));
99          } else {
100             java.util.Enumeration params = request.getParameterNames();
101             for (; params.hasMoreElements();) {
102                 String p = params.nextElement().toString();
103                 String[] v = request.getParameterValues(p);
104                 out.write(p + "=[");
105                 int n = v.length;
106                 if (n > 0) {
107                     out.write(v[0] != null ? v[0] : "");
108                     for (int i = 1; i < n; i++) {
109                         out.write("," + (v[i] != null ? v[i] : ""));
110                     }
111                 }
112                 if (params.hasMoreElements()) {
113                 	out.write("]<br/>\n");
114                 }
115             }
116             out.write("]</p>\n");
117             String ref = request.getHeader("Referer");
118             if (ref == null) {
119                 if (request.getParameterValues("myReferer") != null) {
120                     ref = request.getParameterValues("myReferer")[0];
121                 }
122             }
123             out.write(HtmlHelper.getLinkParagraph("return", ref));
124         }
125         out.write(HtmlHelper.getEnd());
126     }
127 
128 }