我们在开发javaweb项目的时候,经常会遇到jsp和Servet之间互相传值,既然有传值,就要有对象来传,这里先说Servlet的三大域对象,request,session,application他们共同的特点都是通过键值对传值,这样也很好理解,键是唯一的,通过键可以找到值。
一、request
request汉译为请求需求,request代表的只是一次请求,当你点击一个链接,这就是依次请求,request只是一次请求有效,当你在跳转一次的时候和上一次就不是依次请求了。记住一句话,一次请求就是一个request,只对当前请求有效。
用法:用于一次请求之间的值的传递,在jsp页面设置有name属性的表单,在Servlet通过request对象获取属性值,注意request是jsp内置的九个对象之一,可以直接用
常用方法:
request.setAttribute(); request.getAttribute(); request.getParameter();
注意传值的时候总是根据键值对传值
二、session
session会话,他的作用范围只是对一次会话有效,例如打开了一个浏览器访问网址,当你再打开另一个的时候就是两次会话了,当你关闭浏览器的时候本次会话就结束了,这次会话的session也就失效了,一次会话只对应一个session
用法:有时我们要在两个Servlet之间进行传值,用session比较方便,还有就是当用户登录之后,服务器记下这个session键值对,那么本次会话用户就不用二次登录了
常用方法:
session.setAttribute(); session.getAttribute();
在用上面的方法的时候先要获取session对象,在jsp页面中session属于九大内置对象,可以直接拿来用,在Servlet中必须先要获取session对象通过
HttpSession session = request.getSession();
在jsp页面直接拿来
<%session.serAttribute("key",value)%>
session对象进行传值也是通过键值对,键的值是唯一的
三、application
这个对象的范围比较大,他是作用于整个服务端,在你启动服务器创建application对象设置值,之后在本项目中都可以获取到,一个项目中只有一个对象,传值的时候根据键的不同区分,application在服务器关闭的时候销毁,
常用方法:
application.setAttribute("key", value); application.getAttribute("key");注意在Servlet中也是要获取application对象的,通过下面这句获取
ServletContext application = request.getServletContext();ServletContext也是属于JSP九大内置对象之一,故可以直接使用
参考:http://blog.csdn.net/qq_26676207/article/details/52592846