2.6.6 request对象 2. 操作request范围的属性
2. 操作request范围的属性
HttpServletRequest
还包含如下两个方法,用于设置和获取request
范围的属性。
设置获取request作用域的属性 | 描述 |
---|---|
setAttribute(String attName, Object attValue) |
将attValue 设置成request 范围的属性。 |
Object getAttribute(String attName) |
获取request 范围的属性 |
forward请求是 请求参数 请求属性不会丢失
当forward
用户请求时,请求的参数和请求属性都不会丢失。
draw.jsp
看如下JSP
页面,这个JSP
页面是个简单的表单页,用于提交用户请求。
1 | <%@ page contentType="text/html; charset=UTF-8" language="java" errorPage="" %> |
first.jsp
该页面向first.jsp
页面请求后,balance
参数将被提交到first.jsp
页面,下面是first.jsp
页面的实现代码。
1 | <%@ page contentType="text/html; charset=UTF-8" language="java" errorPage="" %> |
first.jsp
页面首先获取请求的取钱数,然后对请求的钱数进行判断。如果请求的钱数小于500,则允许直接取钱;否则将请求转发到second.jsp
。转发之前,创建了一个List
对象,并将该对象设置成request
范围的info
属性。
second.jsp
接下来在second.jsp
页面中,不仅获取了请求的balance
参数,而且还会获取request
范围的info
属性。second.jsp
页面的代码如下:
1 | <%@ page contentType="text/html; charset=UTF-8" language="java" errorPage="" %> |
如果页面请求的钱数大于500,请求将被转发到second.jsp
页面处理,而且在second.jsp
页面中可以获取到balance
请求参数值,也可获取到request
范围的info
属性,这表明:forward
用户请求时,请求参数和request
范围的属性都不会丢失,即forward
后还是原来的请求,并未再次向服务器发送请求。
如果请求取钱的钱数为654,则页面的执行效果如图2.28所示。