2012-03-21 67 views
0

我对servlets和doGet方法有疑问。如果这是一个错误的问题,我很抱歉,希望有人能帮助我。我可以调用doGet方法并从servlet中检索信息吗?

我有一个servlet,其中我调用使用此代码在它执行的东西:

public static void sendBeingRequestFromSimulator(String param2, String message) throws Exception 
    { 
     HttpClient client = new HttpClient(); 
     GetMethod method = new GetMethod(SERVER_URL); 

     NameValuePair[] parameterArray = new NameValuePair[3]; 
     parameterArray[0] = new NameValuePair("param1", "begin"); 
     parameterArray[1] = new NameValuePair("param2", param2); 
     parameterArray[2] = new NameValuePair("msg", message); 
     method.setQueryString(parameterArray); 
     client.executeMethod(method); 
} 

这使得servlet来执行某些代码。然后该servlet将接收来自其他应用程序的调用,并将存储该信息。

我想知道,如果有可能访问存储在调用doGet方法的servlet上的信息,或者以其他方式。

任何帮助将不胜感激

在此先感谢。

在Web应用程序
+0

根据您在请求中发送的查询字符串,您可以让servlet在其响应中输出各种数据。 – jahroy 2012-03-21 20:06:09

+0

感谢@jahroy,现在我的问题是,如何调用doGet方法并从响应中获取信息?对不起,如果这听起来很愚蠢,但我一直在网上看,我无法弄清楚这一点。 – 2012-03-21 20:16:23

+0

刚刚添加了一个新的答案... – jahroy 2012-03-22 01:29:48

回答

1

现在我的问题是,如何调用doGet方法并从响应中获取信息?

它可通过HttpMethodgetResponseXxx()方法。另见其javadoc

E.g.

// ... 
client.executeMethod(method); 
int status = method.getStatusCode(); 
Header[] headers = method.getResponseHeaders(); 
String body = method.getResponseBodyAsString(); 

无关的具体问题。 HTTP客户端3.x比较传统。考虑转移到HTTP客户端4.x.

+0

感谢@Balusc,你的代码帮了很大忙,我不得不在doGet方法中添加这样的信息:response.setContentType(“text/html”); PrintWriter out = null; 尝试 out =响应。的getWriter(); String messageToReturn = Shared.getMessageFromQueue(); out.println(ussdMessage); } 它的工作就像一个魅力。 – 2012-03-22 11:44:11

+0

不客气。这确实是在servlet中返回响应的方法之一。你似乎返回文本/平原。请不要滥用文本/ html内容类型,它的作用是''类似于JSP生成的响应;) – BalusC 2012-03-22 11:46:55

+0

是的,我们的想法是将xml放在那里。最后它进展得很好。再次感谢男士。 – 2012-03-25 12:59:04

0

通常情况下,从客户端发送的数据将被存储在某种类型的数据库,无论是一个关系数据库系统,基于文档的系统,如CouchDB的等

你的servlet方法应该调用服务的方法(你写的),它们都根据需要保存和加载数据。

+0

感谢@ hvgotcodes,但其目的是创建jUnit测试,并验证servlet的行为,然后,我不需要也不想将信息存储在数据库中。不过,谢谢你的回应。 – 2012-03-21 20:17:38

1

我相信我已经使用URL类来实现这个过去。

您可以使用其openStream()方法来获取您可以读取的InputStream。

返回的InputStream应表示由servlet写入的输出。

+0

谢谢@jahroy,你非常有帮助。 – 2012-03-22 11:42:13

相关问题