0

我有一个使用 HttpURLConnection 连接到 servlet 的 Java 应用程序。应用程序在连接到 url 时将它想要传递给 servlet 的参数嵌入到 url 中。因此 servlet 可以使用它的 doGet() 访问和处理这些参数。我已经完成了这部分(我可以访问参数并在 servlet 中显示它们)。

接下来我要做的是将这些参数从 servlet 传递到 JSP。我是request.setAttribute()用来做的。但即使在 之后RequestDispatcherObj.forward(request, response),JSP 也不会打开。我什至试过了response.sendRedirect(url)

但是,如果我独立运行 servlet,则上述方法(forward() 和 sendRedirect())都可以正常工作,并且 JSP 页面会打开。

我想知道我做错了什么。

在此先感谢您的帮助。

代码:

Java 应用程序

serverAddress = new URL("http://localhost:8080/WebApp/ServletPath"+"?message1"+"="+message);
(HttpURLConnection)serverAddress.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("Accept-Charset", charset);
connection.setReadTimeout(10000);
connection.connect();

小服务程序

message = request.getParameter("message1");//working
request.setAttribute("message1", message);//to be read in the jsp
url="/index.jsp";
RequestDispatcher dispatcher=getServletContext().getRequestDispatcher(url);
dispatcher.forward(request, response);//Works when servlet is run independently but not when the servlet is called from the App

}

4

1 回答 1

0

HttpURLConnection不用于更改浏览器连接和显示的内容。它用于在 Java 应用程序本身中创建 HTTP 连接。

当 Java 程序连接到 URL 并读取响应时,浏览器不知道它,也不会神奇地显示任何内容。通过连接到 Java 应用程序中的 URL,您可以执行与浏览器相同的操作,但在您自己的程序中。因此,您可能会读取来自连接的响应,并显示 webapp 发送的内容。

于 2013-04-10T08:16:52.730 回答