属性与范围:
request、session、application和pageContext能用setAttribute()和getAttribute()来设定和取得其属性值,通过这两方法来共享数据。
jsp有四种范围:Page、Request、Session、Application。Page范围指一页JSP网页的范围,可用pageContext对象存取数据。Request 范围指一页Jsp 网页发出请求到另一页之间。可用request对象存取数据。Session范围指一段用户持续和服务器连接的时间,与服务器断开连接后无效,可用session对象存取数据。Application范围指在服务器一开始执行到服务器停止之间,用application对象存取数据。
隐含对象:
与servlet有关的对象:page 和 config。page表示servlet本身,config 表示servlet初始参数值。不常用。
与Iput/Output有关的对象:out、request、response。
request对象表示客户端请求的内容。方法列表:
1、存取属性的方法
2、取得请求参数的方法
3、取得请求标头的方法
4、其它取得请求URL、IP、和SESSION等的方法。
response对象将jsp处理的数据传回客户端。方法列表:
1、设定表头的方法
2、设定响应状态码的方法
3.用来URL重写的方法
范例--
(1)浏览器CACHE
<%
if (request.getProtocol().compareTo("HTTP/1.0")==0)
response.setHeader("Pragma","no-cache");
esle if (request.getProtocol().compareTo("HTTP/1.1")==0)
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expirse",0);
%>
(2)浏览器每3秒刷新页面
response.setIntHeader("Refresh",180);
(3)10秒后,转到另一页
response.setHeader("Refresh","10,URL=http://www.xxx.com");
out对象 把结果输出到页面上。常用方法out.println() 、out.print().
与Context有关的对象:session、application、pageContext.
session对象表示目前个别用户会话的状况。购物车常用session的概念。
范例--
a.jsp
---------------------
<form action="a.jsp" method="post">
name:<input type="text" name="Name"><br>
<input type="submit" value="send"><br>
</form>
<%
if (requset.getParameter("Name")!=null)
String Name=request.getParameter("Name");
if (Name.equals("mike"))
{session.setAttribute("Login","ok");
response.sendRedirect("b.jsp");
}
esle
{out.println("请输入name!");}
%>
----------------------
b.jsp
-----------------
<%
String Login=(String)session.getAttribute("Login");
if (Login!=null && Login.equals("ok"))
{
out.println("welcom!");
session.invalidate();
}
else {
out.println("请登录。。。");
out.println("5秒之后,转入a.jsp");
response.setHeader("Refresh","5,URL=a.jsp");
}
%>
application对象功能在于取得更改servlet的设定。
pageContext对象能取得其它隐含对象。
与Error有关的对象:exception对象,必需在page指令中指定 isErrorPage="true"才能使用