问题标签 [requestdispatcher]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
14792 浏览

java - Java Servlet RequestDispatcher 没有转发 url

我对 Java Servlet 中的 RequestDispatcher 有问题,如果 servlet 路径不在根路径中,它不会转发到特定的 url

这是我的 web.xml

我认为问题出在路径上,但我不确定

0 投票
3 回答
4428 浏览

java - NullPointerException 与 Servlet

我正在Servlet使用它的 URL 地址调用一个。这是我输入的 URL

这肯定是 Servlet 的 URL;如果我改变我得到的地址

这是 Servlet 的代码。

我得到NullPointerException指向RequestDispatcher'线。有什么帮助吗?

0 投票
2 回答
929 浏览

java - 性能测试已部署的 servlet 应用程序?

目前,我有一个基于 servlet 的应用程序,它从存档数据库中检索数据并将其作为 XML 通过 HTTP 发送回客户端。

我想创建一个“X”测试客户端来测试我的数据库检索 servlet 的以下内容:

  • 最短 HTTP 响应时间
  • 最大 HTTP 响应时间
  • 从服务器收到的错误

该应用程序几乎处于开发的部署阶段,但是我需要一个测试客户端,我可以在其部署后使用它来检查应用程序是否正常执行,或者如果我需要在其环境中进行维护(例如重新索引数据库),例如 6个月。

我希望它为应用程序生成数千个 HTTP 请求(垃圾邮件)。

到目前为止,我可以想到两种方法来做到这一点:

  1. 多线程 Java 控制台应用程序,可通过我的计算机的多个线程同时发送多个 HTTP 请求。
  2. 一个单独的 java servlet,它通过多个线程同时从一台服务器向另一台服务器发送 HTTPS 请求。

我认为 servlet 测试应用程序将是最适合这项工作的,因为默认情况下它已经是多线程的。

我将如何实现这一点,我只是使用requestDispatcher类来调用另一个 servlet 还是有更好的方法?

欢迎任何建议!

0 投票
3 回答
5246 浏览

java - RequestDispatcher 是否可以在一个 servlet 容器中处理多个 Web 应用程序?

RequestDispatcher 是否可以在多个 webapps 上工作?

我之所以问,是因为我有一个使用 RequestDispatcher 而不是重定向的 webapp 运行良好,因此在显示错误和反馈消息时状态不会丢失。

但是我现在需要在两个 webapps 之间拆分一些功能,所以初始调用是从 webapp1 上托管的网页进行的,调用 webapp2 最终将用户返回到 webapp1 上托管的页面。

显然,如果 webapps 和 webapp2 使用 RequestDispatcher 在不同的网站上是不可能的,但是如果两个 webapps 都部署在同一个 servlet 容器实例中(tomcat 7)

更新

让请求调度程序部分按照答案中的说明工作,但无法检索放入我的 webapp2 的数据,这就是我使用它的原因

IE

webapp2 调用,进行一些处理,然后分派到 webapp1 上的 jsp

webapp2 jsp 文件包含

但总是显示空

更新 2 **

我想知道我是否误解了 crossContext="true" 的实际作用。它是否使相同的 HttpSession 在不同的 webapps 中可用,或者它只是使 ServletContext 从一个 webap 可用到另一个,从而允许一个 webapp 看到另一个 webapp 的 HttpSessions?

我开始认为我正在做的事情是个坏主意,因为我一直热衷于使用 vanilla servlet 设置,并且从不想将自己束缚于特定的实现。我认为如果我解释为什么我一开始就不需要拆分 webapps 可能会有所帮助。

我有一个 webapp (webapp1),这是一个关于我开发的产品的网站,以及使用 Google Checkout(现在的 Google Wallet)购买该产品的代码。

然后我添加了为新产品(webapp2)创建了一个新的 webapp。

然后,我尝试将新产品的 Google Checkout 添加到 webapp2 中,但意识到我不能轻易做到这一点,因为 Google Checkout 要求我提供一个 URL,一旦它处理了付款,它就可以由应用程序调用,这样我就可以向用户发送一个执照。该 url 已经设置为 webapp1 中的一个 servlet,但是 webapp1 处理产品 2 的付款是没有意义的。

一种选择是将 webpp1 和 webapp2 合并到一个 webapp 中,但这违背了我保持模块化的一般观点,这也意味着每次我想为一个产品 Id 进行更改时都必须重新部署所有内容。这也意味着对 webapp1 的重大修改,我真的不想修改它,因为它工作且稳定。

另一种方法是创建 webapp3,然后 google url 可以指向它,并使用它来处理产品 1 和产品 2 的购买,这就是我所做的。但问题是购买产品 1 时,起始页面位于 webapp1 中,一旦购买完成,我想返回 webapp1 中的页面,但只有 webapp3 有我想要的刚刚购买的用户的详细信息在 webapp1 的页面上显示。

0 投票
2 回答
1352 浏览

c# - 如何在 C# 中正确设计通用的“请求调度程序”

我有一个对象“Receiver”,它正在接收/反序列化许多不同类型的请求。

然后,我希望此接收器使用“调度程序”对象,该对象将根据传入请求的类型将请求对象调度到正确的请求处理程序对象(先前在调度程序上注册)。当然,请求的类型只在运行时知道,而不是在编译时知道(太容易了;))

这里有一些代码来澄清事情......

我有一个请求类型的标记接口:

然后是一个虚拟请求类型:

这是请求处理程序对请求类型 T 使用的通用接口。

一个具体的实现是 DummyRequest 请求的请求处理程序:

这是我使用动态的调度程序的非常基本的实现,但仅当请求类型在编译时已知时才有效,但如果请求类型仅在运行时已知则无法工作(这不是很感兴趣在我的上下文中,但以某种方式显示了意图):

和用法,考虑到调度程序变量是一个 Dispatcher 对象:

一些代码会以这种方式在调度程序上注册处理程序

并且接收器对象将使用调度程序以这种方式调度传入请求:

当然,这里只有在编译时知道请求类型时才有效,但在我的上下文中,接收方将请求作为对象类型接收,例如:

我不能像这样打电话给调度员

我找不到一种方法来解决这个问题而不会失去类型安全性(例如,不将 HandleRequest 签名更改为非泛型的获取对象的签名),我宁愿不要丢失。

我希望我的问题很清楚并且有意义......也许没有真正的方法,我不知道。

通过谷歌搜索“request dispatcher C#”没有发现任何有趣的东西。也许这种“模式”以另一个名字而闻名,但我称它为请求调度程序才有意义。

这背后的最终目的是能够通过为特定请求类型创建一个新的请求处理程序并将其注册到调度程序上来处理新的请求类型,而无需更改接收器的代码,也不需要更改调度程序。

谢谢 !

0 投票
3 回答
8993 浏览

java - 请求调度程序转发在包含任何 servlet 后不转发

有人请帮助我。

这两个函数已经写在我项目的每个 servlet 中,问题是当我第一次在 servlet 中使用这两个函数时 include("servlet/abc",request.response); 在它使用了 forward("servlet/def",request.response); 所以使用Netbeans 7我一步一步地观察到转发不是转发servlet的控制但是当我在转发之前不使用include时转发它的控制。

所以我想知道它为什么会发生,原因是什么,以及在包含任何 servlet 之后我该怎么做。

请有人帮助我……这是一个有趣的问题。

0 投票
3 回答
31554 浏览

java - 如何将 requestdispatcher 转发到远程 URL

http://www.mywebapp.com/sample.html我有一个从远程服务器使用的 HTML 页面。我在同一个 HTML 表单中将 HTML URL 作为隐藏表单传递,

在我的 servlet 中,我得到了隐藏的 URLhttp://www.mywebapp.com/sample.html并将其存储为 String fieldValue = http://www.mywebapp.com/sample.html

现在,当我尝试RequestDispatcher将页面转发到这样的隐藏 URL 时,

我得到了ERROR 404

谁能给我一个解决这个问题的想法。

已编辑

我真正想做的是,从远程服务器一个 HTML 页面将请求我的 REST Web 服务。Web 服务的响应将在 JSON 输出中。现在我想将此 JSON 响应发送到请求的 HTML 表单(即远程服务器 HTML 页面)

任何人都可以提出一个解决这个问题的想法。您的帮助将不胜感激。

0 投票
2 回答
151 浏览

java - 跨应用程序发送参数

有没有办法可以在可能位于或可能不在同一台机器上的应用程序之间发送属性?

例如 :


让我们假设部署 app-1 的IP与部署 app-2 的IP不同。

有什么方法可以在彼此远离的应用程序之间发送这样的参数吗?当我尝试时,我无法这样做,但可能有办法解决。

这两个应用程序都使用 Tomcat。

0 投票
3 回答
1949 浏览

java - 如何将响应从 servlet 转换为字符串?

很抱歉用这个来打断你的一天,但我已经花了很长时间在网上搜寻答案,但我完全被困住了!

在 Web 应用程序中,我使用 RequestDispatcher 将请求从 servlet_A 发送到 servlet_B。在 servlet_B 中,我运行一些代码来生成一个简单的字符串值,该值作为对 servlet_A 的响应返回。

servlet A 中的代码:

servlet B 中的代码:

在 servlet_A 中,我需要将来自 servlet_B 的响应转换为一个简单的字符串值,这就是我坚持的一点。如何将来自 servlet_B 的响应作为 servlet_A 中的简单字符串处理?

我想我需要使用 PrintWriter 来解析响应,我已经在网上搜索了一个示例,但我能找到的只是展示如何使用 PrintWriter 发送响应或将数据输出到屏幕的示例。

如果有人可以帮助我,我将不胜感激。

0 投票
3 回答
2834 浏览

java - 调用 servlet 后的不同 url

我有一个 servlet 做一些事情,当它完成后将一些事情放入请求中,然后调用另一个 servlet,该 servlet 又调用一个 jsp 页面。我写代码:

第一个 servlet (InserisciLezione)

第二个 servlet (TakeDates)

这可以正常工作,但问题是在页面的 url 中我还没有:

如果我刷新页面,第一个 servlet 会再次被调用,我不想要这个。我想拥有

为什么?提前致谢!