最近在學(xué)JSP編程,感覺(jué)JSP的內(nèi)部對(duì)象在實(shí)際開(kāi)發(fā)中的作用不小。今天剛好看到一篇不錯(cuò)的資料,自己整理下!
1、Out對(duì)象
主要用來(lái)向客戶端輸出各種格式的數(shù)據(jù),并且管理應(yīng)用服務(wù)器上的輸出緩沖區(qū),Out對(duì)象的基類是javax.servlet.jsp.JspWriter類。
Out的主要方法:
out.println(DataType);或out.print(DataType);
實(shí)例:
<%@page? language="java"
contentType="text/html;charset=gb2312"
import="java.util.*"
%>
<HTML>
<HEAD>
<TITLE> out對(duì)象使用實(shí)例</TITLE>
</HEAD>
<BODY>
<%
out.println(new Date().toLocaleString());
out.print("<BR>");
out.print("測(cè)試成功");
%>
</BODY>
</HTML>
2、Request對(duì)象
Request.setAttribute()與Request.getAttribute()方法實(shí)例(也可以使用forward建立請(qǐng)求關(guān)系):
引入頁(yè)面:
<%@page language="java"
contentType="text/html;charset=gb2312"
%>
<%@ include file="1.jsp" %>
你剛才輸入的內(nèi)容是:
<%=request.getAttribute("gr")%>
主頁(yè)面:
< %@page language="java"
contentType="text/html;charset=gb2312"
import="java.util.*"
%>
<HTML>
<HEAD>
<TITLE> request對(duì)象使用實(shí)例</TITLE>
</HEAD>
<BODY>
<%
request.setAttribute("gr","123333");
%>
</FORM>
</BODY>
</HTML>
Request.getParameter()方法實(shí)例
主頁(yè)面
<%@page language="java"
contentType="text/html;charset=gb2312"
import="java.util.*"
%>
<HTML>
<HEAD>
<TITLE> request.getParameter()方法使用實(shí)例</TITLE>
</HEAD>
<BODY>
<FORM METHOD=POST ACTION="2.jsp">
<INPUT TYPE="text" NAME="gr1"><BR>
<INPUT TYPE="text" NAME="gr2"><BR>
<INPUT TYPE="text" NAME="gr3"><BR>
<INPUT TYPE="submit" NAME="submit" value="提交">
<INPUT TYPE="reset" NAME="reset" value="清除">
</FORM>
</FORM>
</BODY>
</HTML>
引入頁(yè)面
<%@page language="java"
contentType="text/html;charset=gb2312"
%>
你剛才輸入的內(nèi)容是:<BR>
<%=request.getParameter("gr1")%><BR>
<%=request.getParameter("gr2")%><BR>
<%=request.getParameter("gr3")%><BR>
Request.getParameterName()方法實(shí)例
主頁(yè)面
<%@page? language="java"
contentType="text/html;charset=gb2312"
%>
<HTML>
<HEAD>
<TITLE> request.getParameterName()方法使用實(shí)例</TITLE>
</HEAD>
<BODY>
<FORM METHOD=post ACTION="2.jsp">
<INPUT TYPE="text" NAME="gr1"><BR>
<INPUT TYPE="text" NAME="gr2"><BR>
<INPUT TYPE="text" NAME="gr3"><BR>
<INPUT TYPE="submit" value="提交">
<INPUT TYPE="reset" value="清除">
</FORM>
</FORM>
</BODY>
</HTML>
指向頁(yè)面
<%@page language="java"
contentType="text/html;charset=gb2312"
import="java.util.*"
%>
你剛才輸入的內(nèi)容是:<BR>
<%
Enumeration e=request.getParameterNames();
while(e.hasMoreElements()){
String parameterName=(String)e.nextElement();
String parameterValue=(String)request.getParameter(parameterName);
out.print("參數(shù)名稱:"+parameterName+"<BR>");
out.print("參數(shù)內(nèi)容:"+parameterValue+"<BR>");
}
%>
PS:Enumeration接口的API:
實(shí)現(xiàn) Enumeration 接口的對(duì)象,它生成一系列元素,一次生成一個(gè)。連續(xù)調(diào)用 nextElement 方法將返回一系列的連續(xù)元素。
hasMoreElements ()
????????? 測(cè)試此枚舉是否包含更多的元素。
nextElement ()
????????? 如果此枚舉對(duì)象至少還有一個(gè)可提供的元素,則返回此枚舉的下一個(gè)元素。
Request.getAttributeName()方法實(shí)例
主頁(yè)面:
<%@page language="java"
contentType="text/html;charset=gb2312"
import="java.util.*"
%>
<HTML>
<HEAD>
<TITLE> request.getAttributeName()方法使用實(shí)例</TITLE>
</HEAD>
<BODY>
<jsp:include page="2.jsp" flush="true"/>
<%
Enumeration e=request.getAttributeNames();
while(e.hasMoreElements()){
String attributeName=(String)e.nextElement();
String attributeValue=(String)request.getAttribute(attributeName);
out.print("變量名稱:"+attributeName);
out.print("變量?jī)?nèi)容:"+attributeValue+"<BR>");
}
%>
</FORM>
</FORM>
</BODY>
</HTML>
轉(zhuǎn)向頁(yè)面
<%@page language="java"
contentType="text/html;charset=gb2312"
%>
<%
request.setAttribute("gr1","111");
request.setAttribute("gr2","222");
request.setAttribute("gr3","333");
%>
request.getRemoteAddr()方法實(shí)例:
<%@page language="java"
contentType="text/html;charset=gb2312"
%>
<HTML>
<HEAD>
<TITLE> request.getRemoteAddr()方法使用實(shí)例</TITLE>
</HEAD>
<BODY>
<B>你的IP地址:</B>
<B><%=request.getRemoteAddr()%></B>
</FORM>
</FORM>
</BODY>
</HTML>
3、Response對(duì)象
response.setHeader()方法網(wǎng)頁(yè)自動(dòng)刷新實(shí)例:
<%@page language="java"
contentType="text/html;charset=gb2312"
import="java.util.*"
%>
<HTML>
<HEAD>
<TITLE> response刷新頁(yè)面實(shí)例</TITLE>
</HEAD>
<BODY>
<%
response.setHeader("refresh","3");
out.println(new Date().toLocaleString());
%>
</BODY>
</HTML>
response.sendRedirect();方法實(shí)現(xiàn)頁(yè)面的跳轉(zhuǎn)
<%@page language="java"
contentType="text/html;charset=gb2312"
import="java.util.*"
%>
<HTML>
<HEAD>
<TITLE> response頁(yè)面跳轉(zhuǎn)實(shí)例</TITLE>
</HEAD>
<BODY>
<%
??? response.sendRedirect("login.jsp");
%>
</BODY>
</HTML>
4、Application對(duì)象
在JSP服務(wù)器運(yùn)行時(shí)刻,僅有一個(gè)Application對(duì)象,它由服務(wù)器創(chuàng)建,也由服務(wù)器自動(dòng)清除,
不能被用戶創(chuàng)建和清除。我們只能創(chuàng)建這個(gè)Appliation對(duì)象的同步拷貝。
setAttribute(),getAttribute()和removeAttribute()方法實(shí)例:
<%@page language="java"
contentType="text/html;charset=gb2312"
%>
<HTML>
<HEAD>
<TITLE> Application對(duì)象方法實(shí)例</TITLE>
</HEAD>
<BODY>
<%
String username="rossini";
String password="126263";
application.setAttribute("username",username);
application.setAttribute("password",password);
out.println(application.getAttribute("username")+"<BR>");
out.println(application.getAttribute("password")+"<BR>");
application.removeAttribute("password");
out.println(application.getAttribute("password")+"<BR>");
%>
</BODY>
</HTML>
getAttributeNames()方法實(shí)例:
<%@page language="java"
contentType="text/html;charset=gb2312"
import="java.util.*"
%>
<HTML>
<HEAD>
<TITLE> Application對(duì)象方法實(shí)例</TITLE>
</HEAD>
<BODY>
<%
String username="rossini";
String password="126263";
application.setAttribute("username",username);
application.setAttribute("password",password);
Enumeration enum=application.getAttributeNames();
while(enum.hasMoreElements()){
String attrName=(String)enum.nextElement();
out.println(attrName+"----"+application.getAttribute(attrName)+"<BR>");
}
%>
</BODY>
</HTML>
5、Session對(duì)象
當(dāng)用戶登陸網(wǎng)站,系統(tǒng)將為他生成一個(gè)獨(dú)一無(wú)二的Session對(duì)象,用以記錄改用戶的個(gè)人信息
,一旦該用戶退出網(wǎng)站,那么該Session對(duì)象將會(huì)注銷。Session對(duì)象可以綁定若干個(gè)人信息或
者Java對(duì)象,不同Session對(duì)象的同名變量是不會(huì)相互干擾的。
getValue(String name)、putValue(String name)、removeValue(String name)、getValueNames()
、getCreationTime()、getId()、getLastAccessedTime()、getMaxInactiveInterval()、
setMaxInactiveInterval()方法:
主文件:
<%@page? language="java"
contentType="text/html;charset=gb2312"
%>
<HTML>
<HEAD>
<TITLE> Session主頁(yè)面</TITLE>
</HEAD>
<BODY>
<%
String username="rossini";
String password="126263";
session.putValue("username",username);
session.putValue("password",password);
%>
<A HREF="2.jsp">指向第二頁(yè)</A>
</BODY>
</HTML>
轉(zhuǎn)向頁(yè)面1
<%@page language="java"
contentType="text/html;charset=gb2312"
%>
<HTML>
<HEAD>
<TITLE> Session轉(zhuǎn)向頁(yè)面1</TITLE>
</HEAD>
<BODY>
<%
String usr=(String)session.getValue("username");
String pwd=(String)session.getValue("password");
%>
<%=usr%><BR>
<%=pwd%><BR>
<%out.println("session create:"+session.getCreationTime());%><BR>
<%out.println("session id:"+session.getId());%><BR>
<%out.println("session last access:"+session.getLastAccessedTime());%><BR>
<%out.println("session 原來(lái)最大休眠時(shí)間:"+session.getMaxInactiveInterval());%><BR>
<%session.setMaxInactiveInterval(session.getMaxInactiveInterval()+1);%><BR>
<%out.println("session 最新最大休眠時(shí)間:"+session.getMaxInactiveInterval());%><BR
<%
String []name=session.getValueNames();
out.println("--------------"+"<BR>");
for(int i=0;i<name.length;i++)
{
out.println(session.getValue(name[i])+"<BR>");
}
%>
<%
session.removeValue("username");
%>
<A HREF="3.jsp">指向第三頁(yè)</A>
</BODY>
</HTML>
轉(zhuǎn)向頁(yè)面2
<%@page language="java"
contentType="text/html;charset=gb2312"
%>
<HTML>
<HEAD>
<TITLE> Session轉(zhuǎn)向頁(yè)面2</TITLE>
</HEAD>
<BODY>
<%
String usr=(String)session.getValue("username");
String pwd=(String)session.getValue("password");
%>
<%=usr%><BR>
<%=pwd%>
</BODY>
</HTML>
invalidate()方法將會(huì)將會(huì)清除當(dāng)前的session對(duì)象解除它和任何參數(shù)或者JAVA對(duì)象的綁定關(guān)系
歡迎來(lái)訪!^.^!
本BLOG僅用于個(gè)人學(xué)習(xí)交流!
目的在于記錄個(gè)人成長(zhǎng).
所有文字均屬于個(gè)人理解.
如有錯(cuò)誤,望多多指教!不勝感激!