变量包括jsp?

时间:2012-07-05 16:54:08

标签: jsp variables include

我有一个包含另一个JSP文件的JSP-File。在他们两个我需要一个特殊的变量。 这是包含其他JSP的JSP代码的一部分:

<%String logged = request.getParameter("logged");
out.print(
 "<h3> Auftragliste </h3>" + "Eingeloggt als: "
+ logged
+ "<br /><hr /><br />");
%>

<!-- DAS IST DIE EIGENTLICHE AUFTRAGLISTE, INNERHALB DES DIVS -->
<div id="AutoUpdte">
    <jsp:include page="AuftragListe.jsp" />
</div>

此“已登录”请求正常。现在,这是包含的JSP的一部分:

+ "<form method='POST' "
        + "name='Auftrag"
        + i
        + "' action='Annehmen'>"
        + "<input type='hidden' name='ID' value='"
        + auftraege.get(i).ID
        + "' />"
        + "<input type='hidden' name='von' value='"
        + auftraege.get(i).von
        + "' />"
        + "<input type='hidden' name='nach' value='"
        + auftraege.get(i).nach
        + "' />"
        + "<input type='hidden' name='object' value='"
        + auftraege.get(i).object
        + "' />"
        + "<input type='hidden' name='reward' value='"
        + auftraege.get(i).reward
        + "' />"
        + "<input type='hidden' name='logged' value='"
        + logged
        + "'>"
        + "<center>"
        + "<input class='auftragannehmen' type='submit' value=''/> "
        + "</center>"
        + "</form>"

在这个JSP中,我像上面一样请求变量“logged”。但是当我单击按钮并且表单开始时,下一步无法访问“已记录”变量。

我的错误在哪里?

谢谢!

编辑:包含的JSP肯定无法访问变量。但是如何访问这个变量呢?

2 个答案:

答案 0 :(得分:0)

该请求通常用于存储必须可供处理请求的所有servlet和JSP访问的属性。但在这里,由于变量是请求参数的值,因此不必要。只需像在父JSP中那样使用request.getParameter("logged")

也就是说,您似乎完全忽略了使用JSP的重点,即使用Java代码和丑陋的String连接(可以直接从servlet完成)来避免生成HTML标记。学习JSTL和JSP EL,并避免像JSP中的瘟疫一样的scriptlet。例如,您的第一个scriptlet应该重写为:

<h3> Auftragliste </h3>
Eingeloggt als: <c:out value="${param.logged}"/>
<br /><hr /><br />

请注意,在此处使用<c:out>可确保参数正确地进行HTML转义,从而避免各种XSS攻击。

答案 1 :(得分:0)

使用请求属性传递“已记录”值

request.setAttribute("myLogged",logged);

读取包含的JSP文件中的属性值,如下所示:

String logged = request.getAttribute("myLogged");

或只是

 ${myLogged}