【问题标题】:Where are these variables coming from in .jsp file?这些变量来自 .jsp 文件的什么地方?
【发布时间】:2018-03-01 23:04:25
【问题描述】:

我是一名 dba,我们的团队最近失去了两位开发/维护我们应用程序的 Java 开发人员。我们发现我们的一些 .jsp 文件需要修改,我们 DBA 正在努力解决这个问题,同时我们试图寻找开发人员;但是,我很难理解其中一些变量的来源。我正在处理的文件很短:

<%@ include file="../../include/header-text-email.html" %>
Your ZEDIAN account for ${system} will be terminated in ${daysLeft} days based on inactivity
or based on an established expiration date.

<%--%>
check if ${system} evaluates to WAF, if so display different message
Found on Stack Overflow (https://stackoverflow.com/questions/26930216/using-if-else-in-jsp):

<c:choose>
    <c:when test="${empty user}">
        I see!  You don't have a name.. well.. Hello no name
    </c:when>
    <c:otherwise>
        <%@ include file="response.jsp" %>
    </c:otherwise>
</c:choose>

Also, unless you plan on using response.jsp somewhere else in your code, it might be easier to just include the html in your otherwise statement:
<c:otherwise>
    <h1>Hello</h1>
    ${user}
</c:otherwise>

<%--%>
To avoid termination for inactivity, please visit <c:out value="${url}"/>.
Terminating your account requires no action.


If you have any questions, please email the ZEDIAN mailbox at:
<c:out value="${mailbox}"/>

我在文件中留下了一条评论,说明我正在尝试做什么。我想看看 ${system} 变量是否会评估为 WAF(导致我们的问题的系统并且需要它自己的出站电子邮件,这与其他系统不同)。也就是说,我知道变量在数据库中的来源,但我不确定它们在这个文件中的来源。我不确定 ${system} 的格式是否与数据库中的版本相同(即缩写、大写、小写等...)我尝试在其他文件中查找这些值,但我看不到它们的值在哪里设置。任何人都可以提供任何指导吗?

【问题讨论】:

    标签: java jsp jsp-tags


    【解决方案1】:

    有一个 servlet(它只是一个 java 文件),它的工作是处理传入的请求。servlet 将有一个类似getpost 的方法。

    在此方法中,将有逻辑在请求范围内设置属性。

    request.setAttribute("system", "some value");

    这些属性在 jsp 中以 ${system} 的形式访问

    【讨论】:

    • 感谢您的回答!这就说得通了。你知道我会怎样去寻找哪个文件有那个 servlet 吗?我假设它将在我从中提取此文件的应用程序服务器上。我搜索了很多文件(大约有 100 个左右),但不是所有文件,我不知道在哪里看。我知道您不知道我们的应用程序所涉及的具体目录和文件,但我想看看是否有一个通用的地方来存储这些?
    • 寻找一个名为WEB-INF/web.xml 的文件,它将有一个servlet 到特定URL 模式的映射。在浏览器中查看您正在访问此页面的 URL,在 web.xml 中找到匹配的模式,您将看到处理请求的 servlet 的名称。除非您的应用程序正在使用诸如 struts 之类的框架或其他框架。
    • 尝试在 *java 文件中搜索 'setAttribute.*system'。它会让你更接近答案。从结果发送中打开那些 java 文件,看看它们是否引用了具有相关属性的 jsp 文件
    • 也可以是会话变量,在这种情况下,它可能会在某种登录 servlet 中声明。
    • 请求可以直接到达JSP页面。请求属性未按所述访问。这个答案不正确。
    【解决方案2】:
    1. 它们似乎来自包含的文件。
    2. JSP 页面在提供了很多变量的上下文中执行:请求、URL、会话……您将不得不查看文档一段时间:为什么不现在呢?

    【讨论】:

      猜你喜欢
      • 2013-08-21
      • 1970-01-01
      • 2021-01-31
      • 2011-02-27
      • 2015-12-14
      • 1970-01-01
      • 1970-01-01
      • 2012-01-30
      • 2012-07-20
      相关资源
      最近更新 更多