(1)request对象通常用来接收从客户端通过表单提交过来的数据,然后在servlet或者action中用request.getParameter()的方法获取获取参数内容;
(2)而requestScope通常是在servlet和action中通过request.setAttribute()方法把数据放到request对象中供客户端获取,然后客户端获取的方法就是requestScope.getAttribute()。
另外看到一篇总结的很好的文章:getAttribute()和getParameter()以及EL表达式中的param和requestScope两个隐含对象的区别
(1)getParameter():
可以获取从URL传递过来的String参数
提示:对于post和get提交的表单,我们都可以通过request.getParameter()来获取表单的参数值。
当我们进行一个请求重定向(redirect)的时候,可以通过request.setParameter()设置要传递的参数,而如果用request.setAttribute()在重定向页面取不到传递的参数值;
(2)getAttribute():
获取的是一个对象(Object)
当我使用请求转发(forward)的时候,可以使用request.setAttribute()传递参数;
(4)requestScope:
是EL表达式中的一个隐含对象,类似request,如${requestScope.username }表示从request域中获取username属性对应的值,相当于request.getAttribute(“username”);
(5)param:
如${param.username },类似request.getParameter(“username”);
结论就是:
①request.getParameter(“username”)等价于${param.username },它们一般用在服务器获取页面或客户端的内容,这些内容都是String的;
②request.getAttribute(“username”)等价于${requestScope.username},一般是从服务器传递数据到页面,在页面中获取服务器保存在其中的数据内容。