问题标签 [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 回答
47 浏览

spring-mvc - DispatcherPortlet 未收集有关控制器的数据

我在 Liferay 中开发了一个简单的 portlet。我使用了 Spring MVC 模板。在我的本地开发(LF 6.2 GA2)中,“站点”之间的调度正在运行。在服务器 LF (LF 6.2 GA1) 上部署后,调度程序不再向某些链接调度。LF 正在转发中定义的“主页”页面

调度员似乎没有从所有控制器收集所有数据。我正在使用 portlet:renderURL 方法。

在控制器类中使用@RenderMapping、@ActionMapping 或@ResourceMapping。

我的问题:有人知道吗,这是怎么回事?有没有可能检查,服务器 LF 上的调度程序是否找到了所有控制器和映射方法?有什么我可以做的吗?

谢谢大家!

0 投票
1 回答
813 浏览

java - 刷新 JSP 表单会重新提交数据

我有一个名为 a 的 jsp 页面patient.jspForm它是一个弹出窗口。此表单是使用post方法提交的。一旦这个表单到达 servlet,就会发生类似下面的事情。

有一个大问题。一旦这被转发回patient.jsp,如果用户刷新网页,他之前输入表单的所有内容都将重新提交并保存在数据库中。

我们使用RequestDispatcher是因为我们必须从请求范围传递一个属性。知道如何解决这个问题吗?

0 投票
1 回答
2666 浏览

jsp - Servlet - requestDispatcher.forward java.lang.NullPointerException

我正在将 Web 服务器作为在线商店应用程序的一部分,并且我正在尝试使表单 jsp 页面工作。我正在使用带有 Maven 的 Eclipse IDE 和 Jetty 插件来尝试它。

它是这样的:

在 index.jsp 欢迎页面中,用户按下按钮向 AddProductoServlet 提交 GET 请求。这是加载“tiendas”(商店)列表并将其传递到 jsp 页面所必需的,因此用户可以从下拉列表中选择一个(选择 html 元素)

这是 AddProductoServlet 中的 GET 方法:

这里是jsp页面AddProducto:

直到这里一切正常,页面加载和下拉列表正确填写。请注意,现在我正在使用模拟来加载商店名称,稍后将在 Web 服务和数据库之间调用该服务,但这并不重要。

现在,当用户按下表单的提交按钮时,我接下来要做的是调用 AddProductoServlet 的 post 方法并检查表单字段:如果没有错误,它会重定向到成功页面。我已经对其进行了测试,它可以工作,并且从调试中我知道所有参数都正确传递给了 servlet:

当出现任何错误时问题就来了,这条线被称为:

这是整个 doPost 方法:

所有这一切的目的是在出现错误的情况下再次加载 AddProducto.jsp,但这一次在屏幕上显示错误(有错误指示问题的字段旁边的一些红色文本),并显示填写的任何内容之前的文本字段。

这是我得到的 NullPointerException 错误的堆栈跟踪。提到的 AddProductoServlet 的第 85 行对应于 'requestDispatcher.forward(request, response);' 正如我之前提到的:

所以现在我被困住了。不知道为什么会发生这个错误。该调用与 GET 方法中的调用相同,可以正常工作。

我已经调试过了,路径是正确的,和以前一样。尽管如此,我已经尝试了几种组合,因为它似乎由于某种原因找不到 jsp 页面,例如 /AddProducto.jsp 等,但无济于事。

我也在此页面和其他页面中对类似问题进行了研究,但没有。配置看起来不错,因为所有其他 servlet 都可以正常工作。

我在这里想念什么?谢谢。

0 投票
1 回答
684 浏览

java - RequestDispatcher.include 只工作一次

我正在尝试在以下方法中使用 RequestDispatcher.include() 输出 JSP 页面的呈现:

该方法是我使用 Tomcat8 运行的 servlet 的一部分。这第一次完美运行,但在第二次运行时挂起包含调用(即,如果我单击浏览器上的刷新)。

我已经验证了调度程序不为空。

这是我从 catalina.log 中看到的内容(已清理以供您查看)

第一次运行:

第二次运行(响应永远不会返回,即浏览器总是加载页面):

在我重新启动 Tomcat 之前,这不会改变。

有人可以解释我做错了什么或至少如何调试它吗?谢谢!

编辑1:忘了说方法是静态的,但我也试过让它不是静态的,没有任何区别

0 投票
0 回答
326 浏览

java - Java Servlet 调度程序生命周期

我是 Java Web 开发的新手,脑子里有很多困惑。我正在尝试用 Java 开发一个小项目,但我不知道应该如何连接 MVC 模式的组件。

我有一个与数据库对话的 DAO,并且能够很好地进行正常的 CRUD 操作。DAO 与包模型一起使用,它反映了我在数据库中的表。O 另一边我有我的 JSP 页面,在 WEB-INF 文件夹中。

我阅读了有关 servlet https://stackoverflow.com/tags/servlets/info的信息标签,但它对我不起作用。如此处所述: 如何使用 MVC 模式开发 JSP/Servlets Web App?

MVC 模式由

  1. 模型(java 类/bean):反映 DB 数据(带有属性、getter/setter 方法)。
  2. 在这里查看(JSP 页面),我的 HTML,表示级别。
  3. 将 url 映射到 JSP 页面的控制器(servlet),对吗?

那么模型工作,视图工作,控制器应该怎么做呢?实际上我得到了这个错误:

HTTP 状态 404 - /crm/hello.jsp 类型。状态报告消息。/crm/hello.jsp 描述。请求的资源不可用。

但是WEB-INF里面的资源是存在的,文件hello.jsp是存在的。这里的代码片段:

我正在使用 @WebServlet 表示法,它应该替换 web.xml,对吗?我还阅读了答案:Design Patterns web based applications,并在那里解释:

基于请求(动作)的 MVC:这是最容易实现的。(业务)模型直接与 HttpServletRequest 和 HttpServletResponse 对象一起工作。您必须(主要)自己收集、转换和验证请求参数。视图可以用普通的 HTML/CSS/JS 表示,它不会跨请求维护状态。这就是 Spring MVC、Struts 和 Stripes 的工作方式。

我必须将每个 url 映射到 JSP 页面和内部带有请求/响应的 Servlet,或者应该有一个处理所有请求/响应的 Servlet?我应该在哪里跟踪会话?我应该在哪里设置 cookie?我应该在哪里做业务流程?例如将数据从 Web 表单插入到数据库,或者将数据库数据显示到 JSP 页面?

我试图连接点,但有人失踪。问题是模型和视图应该如何与控制器对话?你能提供一些例子吗?

0 投票
1 回答
372 浏览

jsf - 如果我添加 Deltaspike,RequestDispatcher#forward 正在重定向而不是转发

我正在将一个 Web 应用程序部署到 JBoss EAP6 和 Glassfish 4 中,一切都按预期工作,直到我将 deltaskpike jars 添加到项目中。

启用 deltaskpike 后,servlet 中的以下代码:

将向浏览器发送重定向响应(HTTP:302),而不是在服务器端转发。如果我从应用程序中删除 deltaskpike jar,则调度程序转发按预期工作。

如果我转发 FacesServlet 以外的任何东西,它会按预期工作。

Deltaspike 是否正在修改 RequestDispatcher 的默认行为?

0 投票
1 回答
252 浏览

session - 为什么使用 requestDispatcher 来传递请求而不是仅仅存储在会话中?

如标题所示,我们使用 requestDispatcher forward() 方法来传递 requestScope 对象是否有原因?通过使用响应对象中的 sessionScope 和 sendRedirect() 方法不是也可行吗?

您能否提供一些示例,说明什么时候一个会比另一个更好?

0 投票
1 回答
90 浏览

java - GetRequestDispatcher.forward 再次通过 doGet 向我发送

我有一个doGet被覆盖的servlet。相关的部分是:

现在我正在记录进入服务方法的 url,如果 url 是server:8080/context/app/mod/act?param=1日志消息app='app' mod='mod' act='act',我已经验证这运行良好。

当我尝试点击应该将我路由到 jsp 的东西时,出于某种愚蠢的原因,它会将我送回我的 doGet 方法!我的日志如下所示:

但是我不想通过 my 发送我的 jsp doGet- 我想将它发送到 JSP!为什么会这样做?

我的 servlet 正在捕获"/*",如果这有帮助的话。但我没想到它会捕获 jsps。

我在这里做错了什么?

0 投票
1 回答
731 浏览

java - 输入表单的 RequestDispatcher

我有这个搜索表。

在这里,我想获取我在输入中输入的内容并将其发送给 Content。我的意见根本不是反应。我的调试器显示我的程序甚至没有进入 request.getParameter("search") 部分。有什么问题?

0 投票
0 回答
1210 浏览

java - 我需要创建一个用户可以登录和注销的系统。我正在使用 netbeans 和 MYSQL 数据库以及 GlassFish server 4.0

我知道这是一项简单的任务,但无法找出问题所在。我制作了一个 login.jsp,它是起始页面。LoginAction.jsp 将验证用户我认为 ReqestDispatcher 存在一些问题。我正在尝试从过去 2 天中找出解决方案,但我已经筋疲力尽了,请帮助我。

所有表名及其字段名都是正确的。

这是 LoginAction.jsp

这是 login.jsp

这是 DBCONNEction.java