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的
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的
相关文章推荐
- System.Web.HttpContext.Current.Session为NULL值的问题?
- WebService中应用HttpContext(Request、Response、Session、Application)
- 异步 HttpContext.Current实现取值的方法(解决异步Application,Session,Cache...等失效的问题)
- 获取HttpServletRequest / HttpSession / ServletContext / HttpServletResponse对象 .
- 异步 HttpContext.Current实现取值的方法(解决异步Application,Session,Cache...等失效的问题)
- 第十五节:HttpContext五大核心对象的使用(Request、Response、Application、Server、Session)
- HttpContext.Current.Session为null的问题
- 异步 HttpContext.Current实现取值的方法(解决异步Application,Session,Cache...等失效的问题)
- ServletContextListener,ServletRequestListener,HttpSessionListener监听对象的创建与销毁
- System.Web.HttpContext.Current.Session为NULL值的问题?
- HttpContext.Current.Session.SessionID相关问题及备忘
- 异步 HttpContext.Current实现取值的方法(解决异步Application,Session,Cache...等失效的问题)
- HttpServletRequest.getServletContext()一直提示找不到,而引出的问题
- 问题:HttpContext.Current.Session;结果:Session与HttpContext.Current.Session到底有什么区别呢?
- HttpContext.Current.Session为null的问题
- 使用Nginx代理,HttpContext.Current.Request.Url.Host.ToString()获取地址是原地址的问题。
- request session servletcontext三个域的使用时机 和 MD5的作用
- System.Web.HttpContext.Current.Session为NULL值的问题?
- System.Web.HttpContext.Current.Session为NULL值的问题?
- HttpWebRequest调用WebService后台需要Session信息问题的解决办法