Java-重定向请求
我正在用Java编写一个Servlet,基本上,它在请求主体中获取一个包含XML的请求,然后在XML中更改一些内容,并使用新的XML将请求重定向/前言到位于同一服务器上但位于不同web应用程序上的另一个Servlet 如何用新的XML重定向/前言请求?我可以在任何地方找到代码示例吗 这就是我到目前为止所做的:Java-重定向请求,java,xml,jakarta-ee,servlets,redirect,Java,Xml,Jakarta Ee,Servlets,Redirect,我正在用Java编写一个Servlet,基本上,它在请求主体中获取一个包含XML的请求,然后在XML中更改一些内容,并使用新的XML将请求重定向/前言到位于同一服务器上但位于不同web应用程序上的另一个Servlet 如何用新的XML重定向/前言请求?我可以在任何地方找到代码示例吗 这就是我到目前为止所做的: protected void doPost(HttpServletRequest request, HttpServletResponse response) throws Se
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String body = getBody(request);
MapXml mapXml = new MapXml(body,
"C:\\Projects\\XmlMapper\\output.xml","C:\\Projects\\XmlMapper\\output\\");
String outputXml = mapXml.getOutputXml();
}
public static String getBody(HttpServletRequest request) throws IOException {
String body = null;
StringBuilder stringBuilder = new StringBuilder();
BufferedReader bufferedReader = null;
try {
InputStream inputStream = request.getInputStream();
if (inputStream != null) {
bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
char[] charBuffer = new char[128];
int bytesRead = -1;
while ((bytesRead = bufferedReader.read(charBuffer)) > 0) {
stringBuilder.append(charBuffer, 0, bytesRead);
}
} else {
stringBuilder.append("");
}
} catch (IOException ex) {
throw ex;
} finally {
if (bufferedReader != null) {
try {
bufferedReader.close();
} catch (IOException ex) {
throw ex;
}
}
}
body = stringBuilder.toString();
return body;
}
我不知道如何从这里继续下去。我对servlet世界还不熟悉。。谢谢干杯:)因为xml不是一个小的请求主体,所以您必须让客户端为您发布新的xml。或者你可以:
如果您可以确保xml正文很小,那么只需使用GET方法,将请求转发到远程服务器,因为xml对于请求来说不是一个小正文,所以您必须让客户端为您发布新的xml。或者你可以:
如果可以确保xml正文很小,则可以使用GET方法将请求转发到远程服务器让我们先排除一些可能性:
response.sendRedirect(“/otherapp/servlet.do”)
,因为它不允许您将POST数据发送到另一个Web应用程序会话
,因为您正在将数据发送到另一个Web应用程序让我们先排除一些可能性:
response.sendRedirect(“/otherapp/servlet.do”)
,因为它不允许您将POST数据发送到另一个Web应用程序会话
,因为您正在将数据发送到另一个Web应用程序如果两个web应用都在同一台服务器上,即Tomcat
in its META-INF/context.xml set <Context crossContext="true" />
getServletContext().getContext("/app").getRequestDispatcher("f.jsp").forward(..);,
关于如何在请求中设置XML,您可以在POST请求中携带相对较大数量的数据。您还可以找到POST数据的最大限制
只需读取组成XML文件的字节(使用FileInputStream) (如果文件中没有xml,请使用字符串创建xml)并发送 他们在邮政机构。确保设置内容编码 因此 我第四次编辑这篇文章,添加更多细节。 如果您很难使用Java的HTTP客户端,那么可以使用Apache HTTP客户端轻松发布XML
String xml = "your xml";
PostMethod post = new PostMethod(strURL);
try {
StringRequestEntity requestEntity = new StringRequestEntity(xml);
post.setRequestEntity(requestEntity); ..
....
...
如果两个web应用都在同一台服务器上,即Tomcat
in its META-INF/context.xml set <Context crossContext="true" />
getServletContext().getContext("/app").getRequestDispatcher("f.jsp").forward(..);,
关于如何在请求中设置XML,您可以在POST请求中携带相对较大数量的数据。您还可以找到POST数据的最大限制
只需读取组成XML文件的字节(使用FileInputStream) (如果文件中没有xml,请使用字符串创建xml)并发送 他们在邮政机构。确保设置内容编码 因此 我第四次编辑这篇文章,添加更多细节。 如果您很难使用Java的HTTP客户端,那么可以使用Apache HTTP客户端轻松发布XML
String xml = "your xml";
PostMethod post = new PostMethod(strURL);
try {
StringRequestEntity requestEntity = new StringRequestEntity(xml);
post.setRequestEntity(requestEntity); ..
....
...
你想过用过滤器吗。你想过用过滤器吗。这个问题提到了不同的Webapp吗?我猜它只是不同的Servlet/JSP,在同一台服务器上。这是OP写的:
新的XML到同一台服务器上的不同Servlet,
但它在不同的web应用程序上。
你可以通过在谷歌上搜索轻松找到代码片段。你需要基本的Javascript知识。这个问题提到了不同的Webapp吗?我猜它只是不同的Servlet/JSP,在同一台服务器上。这是OP写的:新的XML到同一台服务器上的不同Servlet,
但它在不同的web应用程序上。
你可以通过在谷歌上搜索轻松找到代码片段。你需要基本的Javascript知识。这对我没有帮助-没有数据库涉及如何使用HttpClient为你的客户端发布请求?然后返回响应。例如?我不知道你说的HttpClient是什么意思,它是apache提供的一套工具,它通过java代码像浏览器一样发送请求。演示在这里,这对我没有帮助-没有涉及数据库如何使用HttpClient为您的客户发布请求?然后返回响应。例如?我不知道你说的HttpClient是什么意思,它是apache提供的一套工具,它通过java代码像浏览器一样发送请求。演示就在这里,我在哪里设置它来使用新的xml?我还没有介绍这一部分。我想告诉你的是你想问的。您应该在请求中设置xml,然后转发它。。或者您应该使用URLConnection并在请求中设置所有参数,然后将该请求提交到URL……但这就是我的问题:如何在请求中设置XML?只需读取构成XML文件的字节(使用FileInputStream)(如果文件中没有XML,则使用字符串创建ur XML)并将它们发送到POST正文中。确保