getParameter和getAttributes的区别
request.getParameter("companyName");是获得表单(前台页面表单中名称为companyName)提交的数据
request.getAttribute("cc")是获得你setAttribute的数据(获得是你自己存起来的参数cc的值。)
在超链接里带的参数用。。request.getParameter(参数名)
HttpServletRequest类既有getAttribute()方法,也由getParameter()方法,这两个方法有以下区别:
(1)HttpServletRequest类有setAttribute()方法,而没有setParameter()方法
(2)当两个Web组件之间为链接关系时,被链接的组件通过getParameter()方法来获得请求参数,例如假定welcome.jsp和authenticate.jsp之间为链接关系,welcome.jsp中有以下代码:
authenticate.jsp
或者:
在authenticate.jsp中通过request.getParameter("username")方法来获得请求参数username:
<% String username=request.getParameter("username"); %>
(3)当两个Web组件之间为转发关系时,转发目标组件通过getAttribute()方法来和转发源组件共享request范围内的数据。假定authenticate.jsp和hello.jsp之间为转发关系。authenticate.jsp希望向hello.jsp传递当前的用户名字,如何传递这一数据呢,先在
authenticate.jsp中调用setAttribute()方法:
<%
String username=request.getParameter("username"); request.setAttribute("username",username);
%>
在hello.jsp中通过getAttribute()方法获得用户名字:
<% String username=(String)request.getAttribute("username"); %>
Hello: <%=username %>
从更深的层次考虑,request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。request.getParameter()方法返回String类型的数据。
request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组件之间共享。这两个方法能够设置Object类型的共享数据
request.get是从上一个页面用户提交的数据中取得。
而session存在范围是用户这一次看到你的网站。比如用户要密码才能访问你的网站, 用户初次登陆时,你可以把变量设到session里,以后只要检查session里的变量就可以知道用户是否已经在登陆状态。
Request.getParameter()
Request 是请求,即把需要的参数得到,一般是从上一个页面用户提交的数据中得到。
Session.getAttribute()
Session是用来保持会话的连接。
1. request.getParameter()的到客户端数据
2. session.getAttribute()存入变量以便让更多的页面可以得到该变量,通过设置存在时间,
可以用在是否在线,是否已登陆等场合。
这个问题主要是request和session的差别,request范围较小一些,只是一个请求,简单说就是你在页面上的一个操作,request.getParameter()就是从上一个页面中的url,form中获取参数,但如果一个request涉及多个累,后面还要取参数,可以用request.setAttribute()和request.getAttribute(),但是当结果输出之后,request就结束了。
而session可以跨越很多页面,可以理解是客户端同一个IE窗口发出的多个请求。这之间都可以传递参数,比如很多网站的用户登陆都用到了。