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];
ecuguruAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

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
Cloud Class® Course: SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

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

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Java

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.