HttpServletRequest类既有getAttribute()方法,也由getParameter()方法,这两个方法有以下区别:
(1)HttpServletRequest类有setAttribute()方法,而没有setParameter()方法
(2)当两个Web组件之间为链接关系时,被链接的组件通过getParameter()方法来获得请求参数,例如假定welcome.jsp和authenticate.jsp之间为链接关系,welcome.jsp中有以下代码:
<a href="authenticate.jsp?username=weiqin">authenticate.jsp </a>
或者:
<form name="form1" method="post" action="authenticate.jsp">
请输入用户姓名:<input type="text" name="username">
<input type="submit" name="Submit" value="提交">
</form>
在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);
%>
<jsp:forward page="hello.jsp" />
在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.getParameter()`与`request.getAttribute()`在功能、用途及使用场景上的区别,这将有助于开发者在实际项目中更加合理地选择和应用这些方法,提高代码的效率和可维护性。
request.getParameter() 和 request.getAttribute() 是两个最常用的方法来获取客户端的请求信息,但是它们的用法和作用域却有很大的区别。 request.getParameter() 方法是用来获取客户端通过 HTTP 协议传递的参数,...
在Java Servlet和JSP开发中,`HttpServletRequest`接口提供了两种主要的方法来获取客户端发送到服务器的数据:`getAttribute()`和`getParameter()`。它们虽然都用于获取请求中的数据,但有着本质的区别,下面将详细...
- **`session.getAttribute()`**:与此不同,`session.getAttribute()` 方法可以从当前用户的会话中获取属性值。这些属性可以在会话的生命周期内(通常是用户登录到退出的时间段)被多个请求访问和修改。这意味着它...
**二、request.getAttribute()与request.setAttribute()的使用场景** 1. **页面间链接关系**:如果页面A通过超链接跳转到页面B,应该使用`request.getParameter()`来获取请求参数,因为这是HTTP请求的一部分。 ```...
Integer count2 = (Integer) context.getAttribute("count"); //2.人数+1 if(count2 == null){ //第一个用户 count2 = 1; }else{ count2++; } //3.再存放到application作用域中 context.setAttribute(...
javascript request.setAttribute()详解 request.setAttribute()怎么用的? JSP1代码 String [] test=new ...String test[]=(String[])request.getAttribute(test); out.print(test); 为什么JS P2中会找不到test?
在Web开发中,获取客户端传递给服务器的数据是一种常见需求,通常使用`request.getParameter()`方法从`HttpServletRequest`对象中获取表单数据或者URL参数。然而,在实际应用中,开发者有时会遇到`request....
我们可以使用 `request.setAttribute()` 方法将数据设置到 Request 对象中,然后在 JSP 页面中使用 `request.getAttribute()` 方法来获取这些数据。 在下面的示例代码中,我们创建了一个 Servlet 类,使用 `request...
`request.getSession()`和`request.getSession(false)`是其中两个重要的方法,它们与会话管理密切相关,也是程序员容易忽视的问题所在。 `request.getSession()`方法默认会创建一个新的会话,如果当前请求中还没有...
包括但不限于:`request.getAttribute()`和`setAttribute()`管理请求范围内的属性;`request.getHeader()`和`getHeaders()`获取HTTP头信息;`request.getParameterNames()`和`getParameterValues()`获取所有参数...
Map, Book> books = (Map, Book>)request.getSession().getServletContext().getAttribute("books"); Book book = books.get(bookid); System.out.println(book); //得到数量 int bookNum = Integer....
if (session.getAttribute("person") == null) { if (null != request.getQueryString()){ // session.setAttribute("redirectUrl", request.getRequestURL().append("?").append(request.getQueryString())....
java类中获得验证码的方法: session.getAttribute("checkcode"); jsp页面中显示图片的方式: ${pageContext.request.contextPath}/checkcode.jsp"/> 另外在web.xml中配置验证码类的加载: <servlet-name>...
本文通过详细介绍`HttpServletRequest`接口中的`setAttribute()`方法及其与`RequestDispatcher.forward()`方法的结合使用,帮助读者理解如何在Java Web应用中高效地传递数据并实现页面间的跳转。这种技术在实际开发...
5. **获取请求的属性和参数**:`setAttribute()`和`getAttribute()`方法用于在Request对象中设置和获取自定义属性,这是在请求转发中传递数据的关键。 6. **请求转发**:Request对象的一个重要应用场景就是请求转发...
### getAttribute与getParameter的区别 在Java Web开发中,`getAttribute`和`getParameter`是两个非常重要的方法,它们分别用于获取不同的数据。理解这两个方法的区别对于正确处理用户请求和页面间的数据传递至关...
getAttribute()方法 至此,我们已经向大家介绍了两种检索特定元素节点...不过,getAttribute()方法不能通过document对象调用,这与我们此前介绍过的其他方法不同。我们只能通过一个元素节点对象调用它。 例如,你可以把
一旦数据被存储在Session中,它可以在用户与服务器保持连接的整个过程中使用,直到会话结束或显式地移除。使用`session.setAttribute()`和`session.getAttribute()`进行Session范围的操作。 4. **Application范围**...