客戶端的請求信息被封裝在Request對象中,經過它才能瞭解到客戶的需求,而後作出響應。它是HttpServletRequest類的實例。html
<%@ page contentType="text/html;charset=gb2312"%> <%request.setCharacterEncoding("gb2312");%> <html> <head> <title>request對象_例1</title> </head> <body bgcolor="#FFFFF0"> <form action="" method="post"> <input type="text" name="qwe"> <input type="submit" value="提交"> </form> 請求方式:<%=request.getMethod()%><br> 請求的資源:<%=request.getRequestURI()%><br> 請求用的協議:<%=request.getProtocol()%><br> 請求的文件名:<%=request.getServletPath()%><br> 請求的服務器的IP:<%=request.getServerName()%><br> 請求服務器的端口:<%=request.getServerPort()%><br> 客戶端IP地址:<%=request.getRemoteAddr()%><br> 客戶端主機名:<%=request.getRemoteHost()%><br> 表單提交來的值:<%=request.getParameter("qwe")%><br> </body> </html>
<%@ page contentType="text/html;charset=gb2312"%> <%request.setCharacterEncoding("gb2312");%> <%@ page import="java.util.Enumeration"%> <html> <head> <title>request對象_例2</title> </head> <body bgcolor="#FFFFF0"> <form action="" method="post"> 用戶名:<input type="text" name="username"> 密 碼:<input type="text" name="userpass"> <input type="submit" value="進入" > </form> <% String str=""; if(request.getParameter("username")!=null && request.getParameter("userpass")!=null){ Enumeration enumt = request.getParameterNames(); while(enumt.hasMoreElements()){ str=enumt.nextElement().toString(); out.println(str+":"+request.getParameter(str)+"<br>"); } } %> </body> </html>
<%@ page contentType="text/html;charset=gb2312"%> <%request.setCharacterEncoding("gb2312");%> <html> <head> <title>request對象_例3</title> </head> <body bgcolor="#FFFFF0"> <form action="" method="post"> 擅長:<input type="checkbox" name="cb" value="ON1">VC++ <input type="checkbox" name="cb" value="ON2">JAVA <input type="checkbox" name="cb" value="ON3">DELPHI <input type="checkbox" name="cb" value="ON4">VB <br> <input type="submit" value="進入" name="qwe"> </form> <% if(request.getParameter("qwe")!=null ){ for(int i=0;i<request.getParameterValues("cb").length;i++){ out.println("cb"+i+":"+request.getParameterValues("cb")[i]+"<br>"); } out.println(request.getParameter("qwe")); } %> </body> </html>
Response對象包含了響應客戶請求的有關信息,但在JSP中不多直接用到它。它是HttpServletResponse類的實例。java
Session對象指的是客戶端與服務器的一次會話,從客戶連到服務器的一個WebApplication開始,直到客戶端與服務器斷開鏈接爲止。它是HttpSession類的實例。sql
<%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.util.*" %> <html> <head><title>session對象_例1</title><head> <body><br> session的建立時間:<%=session.getCreationTime()%> <%=new Date(session.getCreationTime())%><br><br> session的Id號:<%=session.getId()%><br><br> 客戶端最近一次請求時間:<%=session.getLastAccessedTime()%> <%=new java.sql. Time(session.getLastAccessedTime())%><br><br> 兩次請求間隔多長時間此SESSION被取消(ms):<%=session.getMaxInactiveInterval()%><br><br> 是不是新建立的一個SESSION:<%=session.isNew()?"是":"否"%><br><br> <% session.putValue("name","霖苑編程"); session.putValue("nmber","147369"); %> <% for(int i=0;i<session.getValueNames().length;i++) out.println(session.getValueNames()[i]+"="+session.getValue(session.getValueNames()[i])); %> <!--返回的是從格林威治時間(GMT)1970年01月01日0:00:00起到計算當時的毫秒數--> </body> </html>
Out對象是JspWriter類的實例,是向客戶端輸出內容經常使用的對象。編程
<%@page contentType="text/html;charset=gb2312"%> <html><head><title>out對象_例1:緩存測試</title></head> <%@page buffer="1kb"%> <body> <% for(int i=0;i<2000;i++) out.println(i+"{"+out.getRemaining()+"}"); %><br> 緩存大小:<%=out.getBufferSize()%><br> 剩餘緩存大小:<%=out.getRemaining()%><br> 自動刷新:<%=out.isAutoFlush()%><br> <%--out.clearBuffer();--%> <%--out.clear();--%> <!--缺省狀況下:服務端要輸出到客戶端的內容,不直接寫到客戶端,而是先寫到一個輸出緩衝區中.只有在下面三中狀況下,纔會把該緩衝區的內容輸出到客戶端上: 1.該JSP網頁已完成信息的輸出 2.輸出緩衝區已滿 3.JSP中調用了out.flush()或response.flushbuffer() --> </body> </html>
Page對象就是指向當前JSP頁面自己,有點象類中的this指針,它是java.lang.Object類的實例。數組
Application對象實現了用戶間數據的共享,可存放全局變量。它開始於服務器的啓動,直到服務器的關閉,在此期間,此對象將一直存在;這樣在用戶的先後鏈接或不一樣用戶之間的鏈接中,能夠對此對象的同一屬性進行操做;在任何地方對此對象屬性的操做,都將影響到其餘用戶對此的訪問。服務器的啓動和關閉決定了application對象的生命。它是ServletContext類的實例。緩存
<%@ page contentType="text/html;charset=gb2312"%> <html> <head><title>APPLICATION對象_例1</title><head> <body><br> JSP(SERVLET)引擎名及版本號:<%=application.getServerInfo()%><br><br> 返回/application1.jsp虛擬路徑的真實路徑:<%=application.getRealPath("/application1.jsp")%><br><br> 服務器支持的Servlet API的大版本號:<%=application.getMajorVersion()%><br><br> 服務器支持的Servlet API的小版本號:<%=application.getMinorVersion()%><br><br> 指定資源(文件及目錄)的URL路徑:<%=application.getResource("/application1.jsp")%><br><br> <!--能夠將application1.jsp換成一個目錄--><br><br> <% application.setAttribute("name","霖苑計算機編程技術培訓學校"); out.println(application.getAttribute("name")); application.removeAttribute("name"); out.println(application.getAttribute("name")); %> </body> </html>
<%@ page contentType="text/html;charset=gb2312"%> <html> <head><title>APPLICATION對象_例2</title><head> <body><br> <!--因爲application一直存在於服務器端,能夠利用此特性對網頁記數--> <% if(application.getAttribute("count")==null) application.setAttribute("count","1"); else application.setAttribute("count",Integer.toString(Integer.valueOf(application.getAttribute("count").toString()).intValue()+1)); %> 你是第<%=application.getAttribute("count")%>位訪問者 </body> <!--因爲getAttribute()方法獲得的是一個Object類型對象,用getString()方法轉化爲String類型--> <!--用Integer類的valueOf()方法把獲得的String轉化成Integer的對象,在用intValue()方法獲得int型,再加1,最後把計算的結果用Integer.toString()方法轉化成setAttribute()方法所要求的String類型--> </html>
<%@ page contentType="text/html;charset=gb2312"%> <html> <head><title>APPLICATION對象_例3</title><head> <body><br> <!--因爲application一直存在於服務器端,能夠利用此特性對網頁記數--> <% String str=application.getAttribute("count").toString();//getAttribute("count")返回的是Object類型 int i=0; if(str==null) application.setAttribute("count","1"); else i=Integer.parseInt(str); //out.println(i); application.setAttribute("count",++i+""); %> 你是第<%=application.getAttribute("count")%>位訪問者 </body> </html>
Exception對象是一個例外對象,當一個頁面在運行過程當中發生了例外,就產生這個對象。若是一個JSP頁面要應用此對象,就必須把isErrorPage設爲true,不然沒法編譯。他其實是java.lang.Throwable的對象。服務器
PageContext對象提供了對JSP頁面內全部的對象及名字空間的訪問,也就是說他能夠訪問到本頁所在的Session,也能夠取本頁面所在的application的某一屬性值,他至關於頁面中全部功能的集大成者,它的本 類名也叫PageContext。session
<%@page contentType="text/html;charset=gb2312"%> <html><head><title>pageContext對象_例1</title></head> <body><br> <% request.setAttribute("name","霖苑編程"); session.setAttribute("name","霖苑計算機編程技術培訓"); //session.putValue("name","計算機編程"); application.setAttribute("name","培訓"); %> request設定的值:<%=pageContext.getRequest().getAttribute("name")%><br> session設定的值:<%=pageContext.getSession().getAttribute("name")%><br> application設定的值:<%=pageContext.getServletContext().getAttribute("name")%><br> 範圍1內的值:<%=pageContext.getAttribute("name",1)%><br> 範圍2內的值:<%=pageContext.getAttribute("name",2)%><br> 範圍3內的值:<%=pageContext.getAttribute("name",3)%><br> 範圍4內的值:<%=pageContext.getAttribute("name",4)%><br> <!--從最小的範圍page開始,而後是reques、session以及application--> <%pageContext.removeAttribute("name",3);%> pageContext修改後的session設定的值:<%=session.getValue("name")%><br> <%pageContext.setAttribute("name","應用技術培訓",4);%> pageContext修改後的application設定的值:<%=pageContext.getServletContext().getAttribute("name")%><br> 值的查找:<%=pageContext.findAttribute("name")%><br> 屬性name的範圍:<%=pageContext.getAttributesScope("name")%><br> </body></html>
Config對象是在一個Servlet初始化時,JSP引擎向它傳遞信息用的,此信息包括Servlet初始化時所要用到的參數(經過屬性名和屬性值構成)以及服務器的有關信息(經過傳遞一個ServletContext對象)。app