【问题标题】:Passing data from servlet to another servlet using RequestDispatcher使用 RequestDispatcher 将数据从 servlet 传递到另一个 servlet
【发布时间】:2012-07-12 17:30:19
【问题描述】:

我正在尝试使用 RequestDispatcher 将数据从一个 servlet 传递到另一个。这是我的 Dispatcher 代码。

String address;

address = "/Java Resources/src/coreservlets/MapOut.java";

RequestDispatcher dispatcher =
  request.getRequestDispatcher(address);
dispatcher.forward(request, response);

当我尝试运行它时,它给了我一个错误,说路径不可用。我是否必须包含一些内容以供调度程序发送到另一个 servlet?

【问题讨论】:

    标签: servlets requestdispatcher


    【解决方案1】:

    您只需要在getRequestDispatcher 中传递servlet-mappingurl-pattern

    假设您的 servlet 映射是 web.xml 中“MapOut”Servlet 的“myMap”。那么它应该是

    RequestDispatcher dispatcher = request.getRequestDispatcher("/myMap");
    dispatcher.forward(request,response);
    

    doGet() 的转发 Servlet 将被调用。

    示例:web.xml

          <servlet>
            <description></description>
            <servlet-name>MapOut</servlet-name>
            <servlet-class>coreservlets.MapOut</servlet-class>
          </servlet>
          <servlet-mapping>
            <servlet-name>MapOut</servlet-name>
            <url-pattern>/myMap</url-pattern> <!-- You can change this-->
          </servlet-mapping>
    

    【讨论】:

    • 我还是有点迷糊,你说的servlet映射是什么意思。
    • RequestDispatcher rd; rd = request.getRequestDispatcher("/MapOut"); rd.forward(请求,响应);这就是我希望将在其中创建的属性转发到“\MapOut”的 servlet 上的内容……我必须在 MapOut 类中提出请求吗?
    • 我们可以有一个没有映射的 servlet 吗?
    • @HardikMishra 我有一个小问题。我们不需要 request.setAttribute() 方法通过设置属性来转发吗?我们为什么不使用它呢?
    • @pippilongstocking :您可以使用它,但这里的问题是关于转发而不是设置属性
    【解决方案2】:

    你可以在request.getRequestDispatcher("your servlet name");中直接写你的servlet名字,它会根据web.xml配置获取路径。

    RequestDispatcher rd= request.getRequestDispatcher("MyServletName");
    rd.forward(request,response);
    

    【讨论】:

    • 它不工作。请让我在哪个版本中工作..我正在使用 servlet 2.4
    • @saurabh 是的。它在 servlet 版本 2.4 中工作,请检查 servlet 的名称和路径。
    • 这是通过javax.servlet.ServletContext.getNamedDispatcher(String) 完成的。 request.getRequestDispatcher 仅适用于路径
    猜你喜欢
    • 1970-01-01
    • 2017-10-29
    • 2020-01-10
    • 2013-02-03
    • 2013-06-20
    • 1970-01-01
    • 2014-02-04
    • 1970-01-01
    相关资源
    最近更新 更多