• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1208
  • Last Modified:

Java parse URL params

Hi,
Can someone tell me how I can parse Get values from a REST request like:
http://server.com/?&tag1=value1&tag2=value2...

There's gotta be a lib or something to let me break it down to an array and get something like:
value1 = array[tag1];
0
ecuguru
Asked:
ecuguru
  • 2
  • 2
  • 2
1 Solution
 
Farzad AkbarnejadDeveloperCommented:
Hello,
Here is sample code:

public class ExampleServlet extends HttpServlet {
    protected void service(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
      String param1 = request.getParameter("tag1");
      // Now param1 holds value1
     }
}
0
 
Kevin CrossChief Technology OfficerCommented:
You can get a listing of parameter names OR if you use same parameter name like:

tag=value1&tag=value2&tag=value3

You can get an array using the getParameterValues, otherwise you have to get each param specifically like FarzadA has shown.

http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.html
0
 
ecuguruAuthor Commented:
My java app handles web requests, it's not a servlet.  
Is there a way to make this work without the servlet aspect?  
0
The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

 
Kevin CrossChief Technology OfficerCommented:
Maybe this will be more helpful for REST.

http://developer.yahoo.com/java/howto-parseRestJava.html

So are you getting the entire request as a string as shown in example?
0
 
ecuguruAuthor Commented:
Yep.. I'm getting a string that is:
URLString = "http://localhost/server?&value1=value1&value2=value2"
And I'd like to parse for the values..  I'm putting it into a new URL, but can't find a good parser lib yet.
0
 
Farzad AkbarnejadDeveloperCommented:
Hello,
Maybe the following code will help you. Copy it into a class and run and test it. Post your comment if you have any question.

-FA

import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;
 
public class Main {
    public static void main(String[] args) {
        String URLString = "http://localhost/server?&tag1=value1&tag2=value2&tag3=value3";
        String valStr = URLString.substring(URLString.indexOf("?") + 1);
        StringTokenizer st = new StringTokenizer(valStr, "&");
        Map<String, String> arr = new HashMap();
        while (st.hasMoreTokens()) {
            String pair = st.nextToken();
            String lhs = pair.substring(0, pair.indexOf("="));
            String rhs  = pair.substring(pair.indexOf("=") + 1);
            arr.put(lhs, rhs);
        }
        
        System.out.println("tag1=" + arr.get("tag1"));
        System.out.println("tag2=" + arr.get("tag2"));
        System.out.println("tag3=" + arr.get("tag3"));
    }
}

Open in new window

0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 2
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now