javascript
JSP具体条款——response对象
response對象
response為響應對象client要求。輸出信息到客戶。他封裝JSP反應生成。發送client在回應client要求。
?
1.重定向網頁
使用response對象的sendRedirect()方法能夠將網頁重定向到還有一個頁面。重定向支持將地址重定向到不同的主機上,這一點與轉發不同。
在client瀏覽器上將會得到跳轉后的地址,并又一次發送請求鏈接;用戶能夠從瀏覽器的地址欄中看到跳轉后的地址。重定向操作后,request中的屬性將會所有失效,并開始一個新的request對象
sendRedirect()方法的語法格式例如以下:
response.sendRedirect(String?path);
參數說明:
path:指定的目標地址,能夠是相對路徑,也能夠是不同主機的其它URL地址
?
范例:
定義index.jsp重定向到Login.jsp
<%@?page?language="java"?import="java.util.*"?pageEncoding="ISO-8859-1"%>
<%
String?path?=?request.getContextPath();
String?basePath?=?request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%response.sendRedirect("Login.jsp");?%>
?
<!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN">
<html>
??<head>
????<base?href="<%=basePath%>">
????
????<title>My?JSP?'index.jsp'?starting?page</title>
????
<meta?http-equiv="pragma"?content="no-cache">
<meta?http-equiv="cache-control"?content="no-cache">
<meta?http-equiv="expires"?content="0">????
<meta?http-equiv="keywords"?content="keyword1,keyword2,keyword3">
<meta?http-equiv="description"?content="This?is?my?page">
<!--
<link?rel="stylesheet"?type="text/css"?href="styles.css">
-->
?
??</head>
??
??<body>
????This?is?my?JSP?page.?<br>
??</body>
</html>
?
?
定義Login.jsp
?
<%@?page?language="java"?import="java.util.*"?pageEncoding="UTF-8"%>
<%
String?path?=?request.getContextPath();
String?basePath?=?request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
?
<!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN">
<html>
??<head>
????<base?href="<%=basePath%>">
????
????<title>My?JSP?'Login.jsp'?starting?page</title>
????
<meta?http-equiv="pragma"?content="no-cache">
<meta?http-equiv="cache-control"?content="no-cache">
<meta?http-equiv="expires"?content="0">????
<meta?http-equiv="keywords"?content="keyword1,keyword2,keyword3">
<meta?http-equiv="description"?content="This?is?my?page">
<!--
<link?rel="stylesheet"?type="text/css"?href="styles.css">
-->
?
??</head>
??
??<body>
????<form??name="form1"?method="post"?action="">
???? username:<input?name="name"?type="text"?id="name"?style="width:120px"><br/><br/>
???? 密碼:<input?name="pass"?type="password"?id="pass"?style="width:120px"><br/>
???? <br/>
???? <input?type="submit"?name="submit"?value="提交">
????</form>
??</body>
</html>
?
2.處理HTTP頭文件
response對象能夠設置HTTP響應包頭,當中最經常使用的是禁用緩存,設置頁面自己主動刷新和定時跳轉頁面。
禁用緩存
默認情況下,瀏覽器將會顯示的網頁的內容進行緩存,能夠通過response對象來實現對緩存的禁用。
范例:
改動Login.jsp
<%@?page?language="java"?import="java.util.*"?pageEncoding="UTF-8"%>
<%
String?path?=?request.getContextPath();
String?basePath?=?request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%
response.setHeader("Catch-control",?"no-store");
response.setDateHeader("Expires",?0);
?%>
?
<!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN">
<html>
??<head>
????<base?href="<%=basePath%>">
????
????<title>My?JSP?'Login.jsp'?starting?page</title>
????
<meta?http-equiv="pragma"?content="no-cache">
<meta?http-equiv="cache-control"?content="no-cache">
<meta?http-equiv="expires"?content="0">????
<meta?http-equiv="keywords"?content="keyword1,keyword2,keyword3">
<meta?http-equiv="description"?content="This?is?my?page">
<!--
<link?rel="stylesheet"?type="text/css"?href="styles.css">
-->
?
??</head>
??
??<body>
????<form??name="form1"?method="post"?action="">
???? username:<input?name="name"?type="text"?id="name"?style="width:120px"><br/><br/>
???? 密碼:<input?name="pass"?type="password"?id="pass"?style="width:120px"><br/>
???? <br/>
???? <input?type="submit"?name="submit"?value="提交">
????</form>
??</body>
</html>
?
設置頁面定時跳轉
范例:
改動index.jsp
<%@?page?language="java"?import="java.util.*"?pageEncoding="ISO-8859-1"%>
<%
String?path?=?request.getContextPath();
String?basePath?=?request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%
? response.setHeader("refresh",?"5;URL=hello.jsp");
??%>
?
<!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN">
<html>
??<head>
????<base?href="<%=basePath%>">
????
????<title>My?JSP?'index.jsp'?starting?page</title>
????
<meta?http-equiv="pragma"?content="no-cache">
<meta?http-equiv="cache-control"?content="no-cache">
<meta?http-equiv="expires"?content="0">????
<meta?http-equiv="keywords"?content="keyword1,keyword2,keyword3">
<meta?http-equiv="description"?content="This?is?my?page">
<!--
<link?rel="stylesheet"?type="text/css"?href="styles.css">
-->
?
??</head>
??
??<body>
????This?is?my?JSP?page.?<br>
??</body>
</html>
?
?
?
設置頁面定時刷新
???<%
???
???? response.setHeader("refresh",?"5");
????
?????%>
設置輸出緩沖
通常情況下,server要輸出到client的內容不會直接寫到client。而是先寫到一個輸出緩沖區。
當滿足以下三種情況之中的一個就會把緩沖區的內容寫到client
A.JSP頁面的輸出已經所有寫到了緩沖區
B.緩沖區已經滿了
C.在JSP頁面中調用了response對象的flushBuffer()方法或者是out對象的flush()方法
?
response對象對緩沖區的配置有例如以下幾種方法:
flushBuffer():強制將緩沖區中的內容輸出到client
getBufferSize():獲取對應所使用的緩沖區的實際大小。假設沒有緩沖區則返回0
reset():清除緩沖區的內容?。同一時候清除狀態碼和報頭
isCommited():檢測server端是否已經把數據寫入client。
?
范例:
將緩沖區的大小設置為20KB
response.setBufferSize();?
PS:假設將緩沖區的大小設置為0則表示不緩沖
總結
以上是生活随笔為你收集整理的JSP具体条款——response对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bash字符串处理
- 下一篇: webdriver+python 对三大