2015-07-12 49 views
-1

我已经写了如下意义:出标签

的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两个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 

so我有点困惑,使用c:out标签的意义是什么? 如果我们可以在没有c的情况下完成相同的工作:那么为什么我们在JSP中有这个标签。我是新来的EL,这就是为什么问傻问题。

+1

尝试赋值''到'param.fname'并尝试这两种方法 –

回答

0

c:out tag不仅打印的字符,但也逃脱HTML字符。这样可以防止可能的跨站脚本攻击。XSS

如果param.fname设置为类似下面:

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

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