我有一个 JSP 页面,它将 HttpServletRequest 和 HttpServletResponse 传递给 Java 类,该 Java 类根据名为“action”的参数将请求和响应分派给 action 类。动作类执行一些动作,有时会转发到另一个重复相同过程的 JSP。如果您认为我应该使用 servlet,那么您是对的,但这是一个很长的故事,基本上我也没有权限。
在我的一个操作类中,我验证数据,如果有效,则使用 RequestDispatcher 将请求转发到另一个 JSP。我还尝试设置“action”属性,以便我可以告诉其他 JSP 执行什么操作,但是我了解到属性不会随请求一起转发。事实上,我的代码开始无限循环是因为我在执行相同的操作,因为action参数没有改变,导致请求在action和jsp之间循环。
我发现我可以通过在新页面的 url 中传递参数来覆盖 action 参数。像这样:
RequestDispatcher dispatcher = request.getRequestDispatcher("someUrl.jsp?action=SOME_OTHER_ACTION");
dispatcher.forward(request, response");
这个解决方案对我来说很腥。任何人都可以提供任何见解,这是否是一个好主意?