您的位置:首页 > 理论基础 > 计算机网络

Httprequest、Context、session作用域问题:

2018-03-15 18:28 387 查看
域对象的范围:
context:作用范围:整个服务器
生命周期:服务器启动开始  服务器关闭 结束
session:一个会话
获取session对象的时候调用的时候启动   会话结束的时候结束
HttpServletRequest:
一次请求

request 作用域

request.setAttribute("name",name);   第一个参数的属性的名字,第二个参数是属性的值

request.getAttribute("password",password);  两个参数分别是 属性名,属性对应的值。

-----------------------------
-----------------------------
-----------------------------
-----------------------------

/*****

request.getAttribute表示从request范围取得设置的属性,必须要先setAttribute设置属性,才能通过getAttribute来取得,设置与取得的为Object对象类型 。
     request.getParameter表示接收参数,参数为页面提交的参数,包括:表单提交的参数、URL重写(就是xxx?id=1中的id)传的参数等,因此这个并没有设置参数的方法(没有setParameter),而且接收参数返回的不是Object,而是String类型。
    setAttribute的参数是String 和 Object ,
1.放的时候:Double res = new Double(result);//包装
request.setAttribute("result", res);//再设置进去
2.取的时候:Double res = (Double)request.getAttribute("result");
double result = res.doublue();
另外,需要注意的是使用request.setAttribute时不能使redirect而是forward。即是将请求转发而不是重定向.

*/

-----------------------------
-----------------------------
-----------------------------
-----------------------------
拿不到参数的问题:
因为在第一次访问1.html提交的时候响应服务器是一次请求request,当用这个request设置Attribute的时候,
设置完以后,并没有做多余的操作,而是跳转到另一个HTML页面2.html,当访问这个页面的时候,填写内容以后又访问了另一个servlet。,服务器重新响应了一次,这个request是当前servlet的,无法访问第一个servlet的request设置的内容,

因为request的作用域是当前的request范围:

但是如果在第一个servlet跳转的时候  直接跳转到另一个servlet,那么这个跳转的servlet是可以获取到当前servlet的setAttribute的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐