Java 如何知道另一个JSP文件是否包含一个JSP文件?

Java 如何知道另一个JSP文件是否包含一个JSP文件?,java,jsp,Java,Jsp,我有x.jsp,它既可以作为整个响应,也可以包含在其他几个jsp文件中 那么我如何才能在x.jsp中知道它是否包含在另一个文件中呢?您可以在“其他文件”中有一个隐藏字段,如果您包含x.jsp您应该为它设置一个值,在x.jsp中,当您想知道它是否包含时,您应该检查隐藏字段value==“value”如果x.jps了解包含,则意味着某些最佳做法被忽略: MVC模式被抛弃了,因为您的x.jsp不仅仅是一个视图,而且还是某种控制器 可能是机器坏了。尝试将x.jsp拆分为y.jsp和z.jsp,或者引入

我有
x.jsp
,它既可以作为整个响应,也可以包含在其他几个jsp文件中


那么我如何才能在
x.jsp
中知道它是否包含在另一个文件中呢?

您可以在“其他文件”中有一个隐藏字段,如果您包含
x.jsp
您应该为它设置一个值,在
x.jsp
中,当您想知道它是否包含时,您应该检查隐藏字段
value==“value”

如果
x.jps
了解包含,则意味着某些最佳做法被忽略:

  • MVC模式被抛弃了,因为您的
    x.jsp
    不仅仅是一个视图,而且还是某种控制器
  • 可能是机器坏了。尝试将
    x.jsp
    拆分为
    y.jsp
    z.jsp
    ,或者引入一个包含适当大小写值的变量
  • 它可能会增加,因为
    x.jsp
    需要关于环境的额外数据
当然,这些做法不是强制性的,但你需要一个强有力的理由来解释为什么你忽视它们

请为我们提供更多关于您的案例的信息或重新表述您的问题

编辑


我的回答是抽象的,因为你的问题是抽象的。给我们您的jsp,应该更改什么,我希望您能得到更好的答案。

您可以在
x.jsp
页面中检查属性
javax.servlet.include.request\u uri
的值。如果设置了,则包含jsp页面

详情如下:

你为什么想知道这些?您将如何利用这些知识?您可以尝试从includer中访问包含的jsp中的值。我已经想到了一些解决方法(例如使用jsp:param),但这不是最优雅的方法,因为我需要修改包含jsp的所有文件。jsp如何检查any
input
字段的值?基本上,如果调用方将调用的内容提供给它所需的所有信息,而不是让它稍后返回给调用方,这会更好。在编写纯Java代码时也是如此。您可以使用像grepwin这样的程序在所有JSP文件中进行搜索和替换。体系结构(和坏习惯)使我们远离了“纯”MVC。(请不要告诉我重构,这将花费数百人/天)。Jsp文件不是类,关于耦合等等,请看一下useBean标记或会话/请求变量。每个Jsp文件更像一个过程调用,而不是一个对象。谢谢你的回答,但这对我没有帮助。