JSP转发和调用servlet(传递2个会话变量)

时间:2010-10-15 13:39:24

标签: session jsp servlets forward

我正在尝试将'HTTPrequest'从JSP页面重定向到servlet(位于包中);传递存储在会话对象中的变量。 我有想法使用:

<jsp:forward page"/servletName">  
  <jsp:param name="var1" value="<%=beanID.getVar1()%>" />
  <jsp:param name="var2" value="<%=beanID.getVar2()%>" />
</jsp:forward>

在servlet中,您可以找到带有@override注释的doPost。使用以下代码:

public class servletName extends HttpServlet{

@Override
  public void doPost(HttpServletRequest request, HttpServletResponse response)
                               throws ServletException,IOException{
  response.setContentType("text/html");
  PrintWriter out = response.getWriter();

  var1 = request.getParameter("var1").toString();
  var2 = request.getParameter("var2").toString();

// do more with the variables.

   }

运行项目时,参数将被发送到调用重定向/转发的JSP。在存储了变量之后(以及必须调用servlet的地方[JSP:forward]),应用程序返回404页面不存在。

有人有想法吗? 如果需要澄清,请告诉我。

提前致谢! 乙

2 个答案:

答案 0 :(得分:0)

首先,您不需要将这些变量作为参数发送,您可以访问servlet中的会话对象(request.getSession())。你确定要调用servlet吗?也许你可以在servlet中显示更多的代码。

答案 1 :(得分:0)

每当URL出现错误时,都会发生404,或者实际上没有任何内容位于URL后面。在servlet的情况下,最后一个可能发生在未在web.xml中声明servlet,或者当URL与servlet的url-pattern不匹配时,或者当servlet的构造和初始化失败时(这个应该但是在服务器日志中可见。)

查看[servlets] tag info page可能会有所帮助。有一个Hello World示例可能有助于提供有关使用JSP / servlet的新见解。


请注意,您不是在这里重定向。您将转发到servlet。 servlet将获得与JSP完全相同的请求/响应。重定向基本上指示客户端创建请求。