如何将String从Servlet传递到JSP?

时间:2010-12-10 21:04:03

标签: java jsp servlets

servlet文件

String str = req.getParameter("str");
req.setAttribute("str", "java");
getServletContext().getRequestDispatcher("/us.jsp").forward(req, resp);

jsp文件

<jsp:useBean id="str" class="hws" scope="request">

<div align="center">
    <textarea readonly name="" cols="50" rows="25"><%= request.getAttribute("str") %></ textarea>
</div>
<form action="/us" method="post">
    <div align="center">
        <textarea name="str" cols="50" rows="3">welcome to my program</textarea>
    </div>
</form>

2 个答案:

答案 0 :(得分:4)

使用EL(表达语言,那些${}个东西)。它只通过其属性名称隐式访问请求/会话/应用程序作用域属性。

<textarea readonly>${str}</textarea>

尽管涉及用户控制的输入,但要小心XSS

另见:

答案 1 :(得分:4)

虽然BalusC是正确的,但我想通过直接输出字符串来指出潜在的安全风险。根据{{​​3}},

  

在需要逃避的情况下   (例如,帮助预防   跨站点脚本攻击),   可以使用JSTL核心标签。

例如:

<c:out value=”${anELexpression}” />

这有助于防范Java Servlet 2.0 spec攻击。有关详细信息,请参阅XSS页面。