您的位置首页百科知识

request.setattribute怎么在jsp取值

request.setattribute怎么在jsp取值

的有关信息介绍如下:

request.setattribute怎么在jsp取值

request是JSP的九大内置对象之一,要知道request如何在JSP取值,就得了解它的作用域以及与request.setAttribute配对的request.getAttribute方法。

下面我们新建一个动态web工程,看看在jsp里面怎么获取request.setAttribute中的值。

第一步,编写传值页面

我们编写一个a.jsp,在里面通过request.setAttribute设置一个name,然后转发到b.jsp页面。

第二步,编写取值页面

我们在编写一个b.jsp页面,在里面通过request.getAttribute来获取name的值,最后在页面输出这个值。

第三步,运行和调试

启动Tomcat运行刚才的动态web工程,然后在浏览器里面访问a.jsp页面(http://localhost:8080/requesttest/a.jsp),访问成功后,你会发现浏览器的页面中输出了a.jsp里面设置的name值。

第五步,通过结果了解作用域

request从字面理解是请求的意思,那么它的作用域其实也是在一个请求之间。

这也是为什么a.jsp到b.jsp要用forward的原因。在这里就得了解转发(forward)和重定向(redirect)的区别了。

当浏览器请求a.jsp,a.jsp通过forward转发到b.jsp。这里等于用户请求a.jsp,a.jsp又把请求给b.jsp,它们还在同一个请求中,所以b.jsp能通过request.getAttribute来拿到值。

如果用redirect,就等于用户请求a.jsp,a.jsp有创建一个新的请求到b.jsp,这时两个页面不在同一个请求(request)中了,就无法取到值了。可以看下图,通过redirect后在取值,之前的代码就会报空指针。