从另一个Servlet调用Servlet Post

fer*_*hur 6 html java post servlets

我需要从另一个servlet调用servlet POST方法并在servlets参数中传递一个blob.这是可能的,如果是这样的话怎么办呢.PS:我不能使用Apache HttpClient

Bal*_*usC 8

您需要自己创建并发送HTTP请求.您无法使用forward/redirect/include,因为您想要将方法从GET更改为POST并且您想要发送multipart/form-data请求.

由于HttpClient(和其他第三方库?)显然不是一个选项,最好的办法是使用提供的标准Java SE API java.net.URLConnection.简而言之:使用java.net.URLConnection来触发和处理HTTP请求在底部你可以找到一个multipart/form-data例子.

请注意,此问题并非特定于servlet.换句话说,您必须能够使用main()方法在普通的Java应用程序中执行此代码.这样可以更轻松地进行测试和微调.一旦你开始工作,只需让servlet执行相同的代码.


此问题无关,我的印象是某处存在重大设计失败,当然,如果两个servlet都在同一个Web应用程序上下文中运行.您要发送POST请求的另一个servlet显然过于紧密耦合,应该重构.


Ric*_*mon 7

您可以在应用程序中获取另一个servlet的调度程序并将其转发或包含在@Ryan建议中.在第一个servlet中代码应该是这样的:

ServletContext context = this.getServletContext();
RequestDispatcher dispatcher = context.getRequestDispatcher("/otherurltoservlet");

// change your request and response accordingly

dispatcher.forward(request, response);
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

24535 次

最近记录:

14 年,4 月 前