【问题标题】:JSP Forward and calling servlets (Passing on 2 session variables)JSP 转发和调用 servlet(传递 2 个会话变量)
【发布时间】:2010-10-15 13:39:23
【问题描述】:

我正在尝试将“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 页面不存在。

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

提前致谢! B.

【问题讨论】:

    标签: session jsp servlets forward


    【解决方案1】:

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

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


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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2011-11-13
        • 2013-03-22
        • 2013-06-10
        • 2011-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多