【JSP】关于EL表达式中requestScope和param区别

今天演示EL表达式的时候发现自己jsp的基础实在是薄弱,在这个很简单的问题上迷惑了很久。

首先在看遇到的问题:

在浏览器地址输入,表示传入一个参数test,值为123

http://localhost:8888/Test/index.jsp?test=123


在index.jsp中尝试使用EL表达式取出,代码如下:

 <body>
    ${test}
 </body>

发现毫无结果,再使用requestScope尝试取出:

  <body>
    ${requestScope.test}
  </body>

发现还是毫无结果,感到非常诧异,遂干脆使用java脚本尝试取出。

  <body>
      <%request.getAttribute("test"); %>
  </body>


依然无解。

之后发现,若使用已下代码向request作用域赋值,则用上面代码可以取出

<%
    request.setAttribute("test", "123");
 %>


查询资料后发现,使用以下代码可以取出之前的请求参数:
EL:

<body>
    ${param.test}
</body>

JAVA脚本:

<body>
    <%=request.getParameter("test") %>
</body>

结论就是:

${param.name} 等价于 request.getParamter("name")这两种方法一般用于服务器从页面或者客户端获取的内容。

${requestScope.name} 等价于 request.getAttribute("name"),一般是从服务器传递结果到页面,在页面中取出服务器保存的值。


原文地址:

关于EL表达式中requestScope和param区别 - coolhwm - 博客园  http://www.cnblogs.com/coolhwm/archive/2011/11/26/2264598.html

参考:

EL表达式获取url中的参数 - 没伞的孩子就得跑的专栏 - CSDN博客 https://blog.csdn.net/zoujian1993/article/details/75087553

猜你喜欢

转载自blog.csdn.net/CSDNVIP2011/article/details/84283227