我使用getServletContext().getRequestDispatcher("/message.jsp").forward(request, response);
从 servlet 转发到 jsp,但这在服务器中不起作用。我使用过response.sendRedirect(request.getContextPath() + "/message.jsp");
,但后来 jsp 没有显示我从 servlet 发送的消息。如何解决?
问问题
413 次
2 回答
0
你可以这样做
request.setAttribute("PARAM1", "VALUE1");
RequestDispatcher dispatcher = request.getRequestDispatcher("message.jsp");
dispatcher.forward(request, response);
并在您Message.jsp
检索您的设定值。
request.getAttribute("PARAM1");
于 2013-07-08T07:15:13.143 回答
0
如果您执行 sendRedirect 而不是转发,您将创建一个新请求,这将导致您的请求属性消失。一些框架使用“flash”范围(基本上是请求的 2 倍)而不是请求或会话范围来处理此问题。但是,在您的情况下,由于您使用的是普通的 Servlets/JSP,因此没有 flash 范围。
相反,您可以执行以下操作:
ServletContext context = getServletContext().getContext(request.getContextPath());
RequestDispatcher dispatcher = context.getRequestDispatcher("/message.jsp");
dispatcher.forward(request, response);
哪个应该将当前请求转发到 message.jsp。
于 2013-07-08T07:13:36.020 回答