使用c:out标签的意义

时间:2015-07-12 09:36:23

标签: java jsp

我有两个jsp文件,如下所示

的index.jsp

<form action="process.jsp" method="post">
FirstName:<input type="text" name="fname"/><br/>
LastName:<input type="text" name="lname"/><br/>
<input type="submit" value="submit"/>
</form>

process.jsp

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

First Name:<c:out value="${param.fname}"></c:out><br/>
Last Name:<c:out value="${param.lname}"></c:out>
</br>
First Name:${param.fname}
</br>
Last Name:${param.lname}

当我们给出一些输入时,我得到相同的输出:

First Name:nm
Last Name:nm 
First Name:nm 
Last Name:nm

所以我有点混淆使用c:out标签的意义是什么? 如果我们可以在没有c的情况下完成同样的工作:那么为什么我们在JSP中有这个标签。我是EL的新手,这就是为什么要问愚蠢的问题..

1 个答案:

答案 0 :(得分:0)

c:out tag不仅可以打印字符,还可以转义HTML字符。因此可以防止可能的跨站点脚本攻击。 XSS

如果param.fname设置为如下所示:

 param.fname = <script>while (true) alert("possible cross scripting attack");</script>

此脚本将在${param.fname}的情况下执行。但是在c:out标签的情况下不会执行。