JSP内置对象application
application对象类似与系统的“全局变量”,用于一个应用内的所有用户之间的数据共享(一个Tomcat/一个Web应用运行期间的全局变量)
常用方法:
- void setAttribute(String key,Object value):以key/value的形式将对象储存到application中
- Object getAttribute(String key):通过key获取application中储存的对象
- String getRealPath(String path):返回相对路径的真实路径
注:setAttribute和getAttribute四大作用域都有这两个方法,是很重要的方法,牢记
到此JSP常用的几个内置对象介绍完毕,但是JSP的内置对象不仅仅这几个
JSP的常用内置对象小结
- out对象:用于向客户端输出数据
- request对象:主要用于处理客户端请求的数据信息
- response对象:用于响应客户端请求并向客户端输出信息
- session对象:用于记录会话状态的相关信息
- application对象:类似系统的全局变量,用于实现Web应用中的资源共享
四大对象作用域
- page作用域
page作用域指单一JSP页面的范围,page作用域内的对象只能在创建该对象的页面中访问。可以通过page作用域可以使用pageContext对象的setAtttribute()和getAttribute()方法访问,page作用域在页面转发后失效。注四大作用域都有setAtttribute()和getAttribute()方法,根据作用域的不同,访问的范围也不同。 - request作用域
page与当前页面绑定在一起,而request则是与客户端的请求绑定在一起的。request作用域可以通过调用request对象的setAtttribute()和getAttribute()方法访问。request作用域在页面转发后或者包含中同样有效,重定向会失效。
//testOne.jsp页面
<%
request.setParameter("name","Jack");
request.setParameter("pwd","123");
request.getRequestDispatcher("testTwo.jsp").forward(request, response);
%>
//testTwo.jsp页面
<%
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");//获得jack
String pwd = request.getParameter("pwd");//获得123
%>
其它作用域的使用跟这个差不多
3. session作用域
JSP容器为每一次会话创建一个session作用域。在会话期间内,只要将数据绑定到session作用域中,则该数据可以被本次会话中的其他页面访问。session作用域可以通过调用session对象的setAtttribute()和getAttribute()方法访问。其访问范围比request作用域大,就是重定向后也不会失效。
4. application作用域
相对于session作用域针对一个会话,application作用域则针对整个Web应用,被该应用下所有用户共享。在Web应用运行期间,所有页面都可以访问application作用域内的变量,其作用域最大。一样通过application的setAtttribute()和getAttribute()方法访问.
Cookie
它是由服务器端生成并发送给客户端浏览器的,浏览器会将其保存为某个目录下的文本文件。cookie最典型的应用是否已经登录网站,用户可能会得到提示,是否保存以便下一次进入是可以简化登录
在JSP中使用cookie
- 创建cookie对象
语法:Cookie newCookie = new Cookie(String name,String value);
name:用于代表cookie的名称
value:用于表示该名称所对应的值 - 写入cookie
JSP内置对象response的常用方法中,有一个addCookie()方法,在创建cookie对象后,可以使用addCookie()方法实现写入cookie
response。addCookie(newCookie);
- cookie的常用方法
- void setMaxAge(int expiry):设置cookie的有效时间,单位/秒
- void setValue(String value):设置cookie的value值
- String getName():获取cookie的名称
- String getValue():获取cookie的value值
- int getMaxAge():获取cookie的有效时间,单位/秒
<%
response.addCookie(new Cookie("userName","Jack"));
Cookie cookie = new Cookie("password","123456");
response.addCookie(cookie);
%>
- 读取cookie
JSP通过request的getCookies()方法,该方法返回HTTP请求中的cookie对象数组,因此必须通过遍历的方式进行访问