如何将信息从servlet传递到JSP并返回?

时间:2013-11-12 16:31:37

标签: java jsp servlets

我现在已经好几个小时了。我正在扩展一个网络应用程序,我遇到了这个问题:

我有一个名为 SelectionHandler 的类,它使用 doPost()方法中的案例转发到正确的应用程序:

private void userEditor(HttpServletRequest request, HttpServletResponse response) {
response.setHeader("destination", "edit_user");
    HttpRedirectHandler.forwardToURL(request, response, "EditUser");
}

现在这个servlet被重新设计,因此它将决定下一步转发用户的位置:

String header = response.getHeader("destination");
if (header.equals("price_manager")) {
    destination = "PriceManager";
} else if (header.equals("new_user")){
    destination = "NewUser";
};

然后

HttpRedirectHandler.forwardToURL(request, response, destination);

但在此之前,我一直在将用户重定向到JSP页面。问题是,当我这样做时,我想去的地方的信息就会丢失 有人可以告诉我什么是保留这些信息的最佳方法?我尝试读取标题并将其再次写入JSP页面中的标题,但我不确定这实际上是否可行。

2 个答案:

答案 0 :(得分:0)

示例:

在你的servlet中:

request.setAttribute("HelloKey","Hello World!");

在你的jsp中:

String myHelloString = (String)request.getAttribute("HelloKey");

或者你把它放在会话中:

request.getSession(true).setAttribute("HelloKey","Hello World!");

并在jsp中:

String myHelloString = (String)request.getSession().getAttribute("HelloKey");

答案 1 :(得分:0)

我同意上一篇文章,您可以将信息存储在请求,会话或应用程序范围内。

我想扩展答案如下: 从您关于“我尝试读取标题并再次将其写入JSP页面中的标题”的声明中,您可能对JSP没有足够的掌握。我建议你去amazon.com寻找一本评论很好的JSP书。然后,阅读封面以覆盖。它将为您节省无数个小时的技术实验,而不是无处可去。