JSP和Servlet setAttribute

sun*_*leo 0 java jsp servlets

我的问题很简单,但我很困惑,请帮助我.

在JSP中,我从Servlet1接收一个Attribute(idsList),我想将此Attribute(idsList)发送到另一个servlet,Servlet2,但我可以使用session.setAttribute().我的麻烦是,我们如何在JSP本身发送给Servlet2?

这是我的代码,但它不起作用,因为相同的请求用于设置和获取.请帮忙.

在Servlet1中:

request.setAttribute("idsList",idsList);---is null
Run Code Online (Sandbox Code Playgroud)

在JSP中

List<Integer> idsList =(List<Integer>)request.getAttribute("idsList");
System.out.println("size of ids list :"+idsList.size());
request.setAttribute("idsList",idsList);
Run Code Online (Sandbox Code Playgroud)

在Servlet2中:

request.getAttribute("idsList");---is null
Run Code Online (Sandbox Code Playgroud)

Par*_*rth 6

使用RequestDispatcher如下所示转发您的请求:

request.setAttribute("idsList",idsList);
RequestDispatcher rd = getServletContext().getRequestDispatcher("servlet2");
rd.forward(request, response);
Run Code Online (Sandbox Code Playgroud)

您可以request.getAttribute("idsList")在servlet2上使用.

不要response.sendRedirect()用来发送request对象.

编辑:

我在您的问题下方发现了评论:

使用setAttribute获取JSP中的值?是

通常,JSP用作VIEW透视图,因此,

它不应该包含商业逻辑