Извлечение параметров, переданных в URL, и возврат значения в веб-браузере с помощью рестлета. - PullRequest
0 голосов
/ 15 февраля 2012

Мне нужна помощь в получении параметров, переданных, когда пользователь вводит в URL-адрес значение http://localhost:8182/trace/abc/def?param=123, где переданный параметр равен 123. Как получить 123, отображаемые в веб-браузере. Какие классы Java следует изменитьчтобы получить и вернуть параметры на веб-странице

Вот коды, которые у меня есть:

Part05
import org.restlet.Component;
//import org.restlet.Server;
import org.restlet.data.Protocol;
import org.restlet.resource.Get;
import org.restlet.resource.ServerResource;


public class Part05 extends ServerResource {  

    public static void main(String[] args) throws Exception {  
        // Create the HTTP server and listen on port 8182  
        //new Server(Protocol.HTTP, 8182, Part05.class).start(); 

     // TODO Auto-generated method stub 
        // Create a new Restlet component and add a HTTP server connector to it  
        Component component = new Component();  
        component.getServers().add(Protocol.HTTP, 8182);  

        // Then attach it to the local host  
        component.getDefaultHost().attach("/trace", Part05.class);  

        // Now, let's start the component!  
        // Note that the HTTP server connector is also automatically started.  
        component.start();  
    }  
    @Get  
    public String toString() {  

        // Print the requested URI path  
        return "Resource URI  : " + getReference() + '\n' + "Root URI      : "  
                + getRootRef() + '\n' + "Routed part   : "  
                + getReference().getBaseRef() + '\n' + "Remaining part: "  
                + getReference().getRemainingPart() ;
    } }

Main

import org.restlet.Component;
import org.restlet.data.Protocol;

public class Main {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception 
    {
        // TODO Auto-generated method stub 
            // Create a new Restlet component and add a HTTP server connector to it  
            Component component = new Component();  
            component.getServers().add(Protocol.HTTP, 8182);  

            // Then attach it to the local host  
            component.getDefaultHost().attach("/trace", Part05.class);  

            // Now, let's start the component!  
            // Note that the HTTP server connector is also automatically started.  
            component.start();  
    }}

Вывод, который я получил:URI ресурса: http://localhost:8182/trace/abc/def?param=123 Оставшаяся часть: / abc / def? Param = 123

Нужна срочная помощь !!спасибо

1 Ответ

0 голосов
/ 13 марта 2012

Я предлагаю вам прочитать Документацию по рестлету и онлайн-справку

Вот как вы можете получить доступ к параметрам в методе @Get класса ServerResource: (Пример заимствован изссылка на документацию выше)

Form form = request.getResourceRef().getQueryAsForm();
for (Parameter parameter : form) {
  System.out.print("parameter " + parameter.getName());
  System.out.println("/" + parameter.getValue());
}

Вы можете просто вернуть строковое представление значения параметра (например, 123 в вашем случае).

Вы можете получить всю строку запроса (какString), если вы вместо этого скажете:

request.getResourceRef().getQuery(); // or getQuery(true) if you wish to have URI decoding

Но вам придется анализировать, если вы сами в этом случае используете значения.Первый лучше, так как он делает это для вас и дает вам доступ к списку параметров:)

Это объясняется в Javadocs

...