该URL在localhost中工作,但在服务器中不起作用

时间:2013-07-08 07:10:24

标签: java jsp servlets

我使用getServletContext().getRequestDispatcher("/message.jsp").forward(request, response);从servlet转发到jsp,但这在服务器中不起作用。我使用response.sendRedirect(request.getContextPath() + "/message.jsp");但是jsp没有显示我从servlet发送的消息。怎么解决?

2 个答案:

答案 0 :(得分:0)

如果您执行sendRedirect而不是转发,则会创建一个新请求,这将导致您的请求属性消失。一些框架使用“flash”范围(基本上是请求的2倍)而不是请求或会话范围来处理此问题。但是,在您的情况下,由于您使用的是普通的Servlets / JSP,因此没有闪存范围。

相反,您可以执行以下操作:

ServletContext context = getServletContext().getContext(request.getContextPath());
RequestDispatcher dispatcher = context.getRequestDispatcher("/message.jsp");
dispatcher.forward(request, response);

哪个应该将当前请求转发到message.jsp。

答案 1 :(得分:0)

你可以这样做

 request.setAttribute("PARAM1", "VALUE1");
RequestDispatcher dispatcher = request.getRequestDispatcher("message.jsp");
dispatcher.forward(request, response);

并在Message.jsp中检索您的设定值。

request.getAttribute("PARAM1");