posts - 188,comments - 176,trackbacks - 0

          1、Out對象

          主要用來向客戶端輸出各種格式的數(shù)據(jù),并且管理應用服務器上的輸出緩沖區(qū),Out對象的基類是javax.servlet.jsp.JspWriter類。
          Out對象主要用來向客戶端輸出各種數(shù)據(jù)類型的內(nèi)容,并且管理應用服務器上的輸出緩沖區(qū),其基類是JspWriter.Out對象的主要方法為:
          out.print(類型)或out.println(類型):out.print()方法與out.println()方法的區(qū)別是out.print()方法在輸出完畢后,并不結(jié)束該行,而out.println()方法在輸出完畢后,會結(jié)束當前行,下一個輸出語句將在下一行開始輸出.
          out.newLine():輸出一個換行符號.
          out.clearBuffer():清除緩沖區(qū)里的數(shù)據(jù),并且把數(shù)據(jù)寫到客戶端去.
          out.clear():清除緩沖區(qū)里的數(shù)據(jù),但不把數(shù)據(jù)寫到客戶端去.
          out.getRemaining():獲取緩沖區(qū)中沒有被占用的空間的大小.

          out.flush():輸出緩沖區(qū)里的數(shù)據(jù).out.flush()方法也會清除緩沖區(qū)中的數(shù)據(jù),但是此方法會先將之前緩沖區(qū)中的數(shù)據(jù)輸出至客戶端,然后再清除緩沖區(qū)中的數(shù)據(jù).
          out.getBufferSize():獲得緩沖區(qū)的大小,緩沖區(qū)的大小可以用來設置.
          out.isAutoFlush():返回布爾值,如果auto flush,那么返回true,反之返回false.是否auto fush可以用來設置.
          out.close():關(guān)閉輸出流,從而可以強制終止當前頁面的剩余部分向瀏覽器輸出.


          Out的主要方法:

          out.println(DataType);或out.print(DataType);

          實例:

          <%@page language="java"
          contentType="text/html;charset=gb2312"
          import="java.util.*"
          %>
          <HTML>
          <HEAD>
          <TITLE> out對象使用實例</TITLE>
          </HEAD>
          <BODY>
          <%
          out.println(new Date().toLocaleString());
          out.print("<BR>");
          out.print("測試成功");
          %>
          </BODY>
          </HTML>

          2、Request對象
          Request內(nèi)置對象代表了客戶端的請求信息,主要用于接受客戶端通過HTTP協(xié)議傳送給服務器端的數(shù)據(jù).在客戶端的請求中如果有參數(shù),則該對象就有一個參數(shù)列表.它通常是HttpServlet-Request的子類,其作用域就是一次Request請求.

          Request對象包括很多方法,主要有:
          getCookies():返回客戶端的cookie對象,結(jié)果是一個cookie數(shù)組.
          getSession(boolean create):返回和當前客戶端請求相關(guān)聯(lián)的HttpSession對象,如果當前客戶端請求沒有和任何HttpSession對象關(guān)聯(lián),那么當create變量為true,則創(chuàng)建一個HttpSession對象并返回;反之,返回null.
          getHeader(String name):獲得http協(xié)議定義的傳送文件頭信息。
          getAttribute(String name):返回name指定的屬性值,若不存在指定的屬性,就返回null.
          getattributeNames():返回request對象所有屬性的名字,結(jié)果集是一個Enumeration(枚舉)類的實例.
          getHeaderNames():返回所有request header的名字,結(jié)果集是一個Enumeration(枚舉)類的實例.getHeaders(String name):返回指定名字的request header的所有值,結(jié)果集是一個Enumeration(枚舉)類的實例.
          getMethod():返回客戶端向服務器端傳送數(shù)據(jù)的方法,一般方法有GET,POST,PUT等類型.
          getParameter(String name):以字符串的形式返回客戶端傳來的某一個請求參數(shù)的值,該參數(shù)名由name指定.當傳遞給此方法的參數(shù)名沒有實際參數(shù)與之對應時,返回null.
          getparameterNames():返回客戶端傳送給服務器端的所有的參數(shù)名,結(jié)果集是一個Enumeration(枚舉)類的實例.當傳遞給此方法的參數(shù)名沒有實際參數(shù)與之對應時,返回null.
          getParameterValues(String name):以字符串數(shù)組的形式返回指定參數(shù)所有值.
          getQueryString():返回查詢字符串,該字符串由客戶端以GET方法向服務器端傳送.
          getRequestURI():獲得發(fā)出請求字符串的客戶端地址.
          getServletPath():獲得客戶端所請求的腳本文件的文件路徑.
          setAttribute(String name,Java.lang.Object o):設定名字為name的request參數(shù)值,該值由Object類型的o指定.
          getServerName():獲得服務器的名字,如果沒有設定服務器名,則返回服務器IP地址.
          getServerPort():獲得服務器的端口號.
          getRemoteAddr():獲得客戶端的IP地址.
          getRemoteHost():獲得客戶端主機的名字,若失敗,則返回客戶端電腦的IP地址.
          getProtocol():獲取客戶端向服務器端傳送數(shù)據(jù)所依據(jù)的協(xié)議名稱,如http/1.1.
          getContentLength():以字節(jié)為單位返回客戶端請求的大小.如果無法得到該請求的大小,則返回-1.
          getContentType():獲取客戶端請求的MIME類型.如果無法得到該請求的MIME類型,那么返回-1.
          getInputStream():以二進制的形式將客戶端的請求以一個ServletInputStream的形式返回.使用此方法可以獲得客戶端的multipart/form-data數(shù)據(jù),可以實現(xiàn)文件上傳.

          isSecure():如果客戶機是通過一個安全的訪問方式訪問的,就返回true;反之,返回false.
          getDateHeader():返回一個long類型的數(shù)據(jù),表示客戶端發(fā)送到服務器的頭信息中的時間信息.
          getInitHeader():獲取客戶端發(fā)送到服務器端的頭信息中的某一個特定的信息,并轉(zhuǎn)換為int類型.
          getContextPath():返回環(huán)境路徑.對于JSP來說,一般是當前Web應用程序的根目錄.
          isRequestedSessionIdValid():返回一個指示客戶端請求發(fā)送Session ID是否仍然有效的布爾值.
          isRequestedSessionIdFromCookie():返回一個指示客戶端請求發(fā)送Session ID是否存在于Cookie中的布爾值.
          isRequestedSessionIdFromURL():返回一個指示客戶端請求發(fā)送Session ID是否存在于URL中的布爾值.


          Request.setAttribute()與Request.getAttribute()方法實例(也可以使用forward建立請求關(guān)系):

          主頁面:

          <%@page language="java"
          contentType="text/html;charset=gb2312"
          %>
          <%@ include file="1.jsp" %>
          你剛才輸入的內(nèi)容是:
          <%=request.getAttribute("gr")%>

          引入頁面:

          <%@page language="java"
          contentType="text/html;charset=gb2312"
          import="java.util.*"
          %>
          <HTML>
          <HEAD>
          <TITLE> request對象使用實例</TITLE>
          </HEAD>
          <BODY>
          <%
          request.setAttribute("gr","123333");
          %>
          </FORM>
          </BODY>
          </HTML>

          Request.getParameter()方法實例

          主頁面

          <%@page language="java"
          contentType="text/html;charset=gb2312"
          import="java.util.*"
          %>
          <HTML>
          <HEAD>
          <TITLE> request.getParameter()方法使用實例</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>

          引入頁面

          <%@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()方法實例

          主頁面

          <%@page language="java"
          contentType="text/html;charset=gb2312"
          %>
          <HTML>
          <HEAD>
          <TITLE> request.getParameterName()方法使用實例</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>

          指向頁面

          <%@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>");
          }
          %>

          Request.getAttributeName()方法實例

          主頁面:

          <%@page language="java"
          contentType="text/html;charset=gb2312"
          import="java.util.*"
          %>
          <HTML>
          <HEAD>
          <TITLE> request.getAttributeName()方法使用實例</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("變量內(nèi)容:"+attributeValue+"<BR>");
          }
          %>
          </FORM>
          </FORM>
          </BODY>
          </HTML>


          轉(zhuǎn)向頁面

          <%@page language="java"
          contentType="text/html;charset=gb2312"
          %>
          <%
          request.setAttribute("gr1","111");
          request.setAttribute("gr2","222");
          request.setAttribute("gr3","333");
          %>

          request.getRemoteAddr()方法實例:

          <%@page language="java"
          contentType="text/html;charset=gb2312"
          %>
          <HTML>
          <HEAD>
          <TITLE> request.getRemoteAddr()方法使用實例</TITLE>
          </HEAD>
          <BODY>
          <B>你的IP地址:</B>
          <B><%=request.getRemoteAddr()%></B>
          </FORM>
          </FORM>
          </BODY>
          </HTML>

          3、Response對象
          Response對象實現(xiàn)HttpServletResponse接口,可對客戶的請求做出動態(tài)的響應,向客戶端發(fā)送數(shù)據(jù),如Cookie,HTTP文件頭信息等,一般是HttpServlet.Response類或其子類的一個對象.該對象的常用方法為:
          addCookie(Cookie cookie):添加一個Cookie對象,用來保存客戶端的用戶信息,用request的getCookies()方法可以獲得這個Cookie.
          addHeader(String name,String value):添加HTTP文件頭,該header將會傳到客戶端去,如果有同名的header存在,那么原來的header將會被覆蓋掉.
          containsHeader(String name):判斷指定名字的HTTP文件頭是否存在,并返回布爾值.

          sendError(int sc):向客戶端發(fā)送錯誤信息,例如,505指示服務器內(nèi)部錯誤;404指示網(wǎng)頁找不到的錯誤.
          setHeader(String name,String value):設定指定名字的HTTP文件頭的值,如果該值存在,那么它會被新的值覆蓋.
          setContenType(String type):響應設置內(nèi)容類型頭.
          sendRedirect(URL):可以將用戶重定向到一個不同的頁面(URL).sendRedirect(URL)方法通過返回特定的狀態(tài)代碼而起作用,當它被調(diào)用時,返回一個狀態(tài)代碼,然后在響應中定位,給新頁面一個新地址.狀態(tài)代碼和定位頭會自動把瀏覽器重定位到新頁面.不過,用戶通常不能被順利重定位到新的頁而,特別是老一些的瀏覽器,而且一些新版本的瀏覽器在自動響應定向作用狀態(tài)代碼時會有些問題,當瀏覽器無法自動響應狀態(tài)代碼時,會收到一些字段信息.

          Session是一種服務器個別處理與記錄用戶端上網(wǎng)使用者信息的技術(shù).當使用者與服務器聯(lián)機時,服務器可以給每一個上網(wǎng)的使用者一個Session并設定其中的內(nèi)容,這些Session都是個別獨立的,服務器端可以借此來辨別使用者信息進而提供個別的服務. Session對象的常用方法為:
          getAttribute(String name):獲得指定名字的屬性,如果該屬性不存在,將會返回null.
          getAttributeNames():返回Session對象中存儲的每個屬性對象,結(jié)果集是一個Enumeration類的實例.
          setAttribute(String name,java.lang.Object value):設定指定名字的屬性值,并且把它存儲在Session對象中.
          isNew():判斷目前Session是否為新的Session,若是則返回ture,否則返回false.


          response.setHeader()方法網(wǎng)頁自動刷新實例:

          <%@page language="java"
          contentType="text/html;charset=gb2312"
          import="java.util.*"
          %>
          <HTML>
          <HEAD>
          <TITLE> response刷新頁面實例</TITLE>
          </HEAD>
          <BODY>
          <%
          response.setHeader("refresh","3");
          out.println(new Date().toLocaleString());
          %>
          </BODY>
          </HTML>

          4、Application對象

          在JSP服務器運行時刻,僅有一個Application對象,它由服務器創(chuàng)建,也由服務器自動清除,
          不能被用戶創(chuàng)建和清除。我們只能創(chuàng)建這個Appliation對象的同步拷貝。

          Application對象和Session對象相比,含義更加廣泛.在使用Session對象時,各個客戶端共享一個Session對象,而使用Application對象時,在同一個服務器中的JSP文件共享一個Application對象.Application對象主要方法為:
          getAttribute(String name):返回由name指定名字的Application對象屬性的值,這是個Object對象,如果沒有,就返回null.
          getAttributeNames():返回所有Application對象的屬性的名字,結(jié)果集是一個Enumeration(枚舉)類的實例.
          3.4 Application對象的方法
          getInitParameter(String name):返回由name指定的名字的application對象的某個屬性的初始值,如果沒有參數(shù),就返回null.
          getServerInfo():返回servlet編譯器當前版本信息.
          setAttribute(String name,Object object):將參數(shù)Object指定的對象obj添加到application對象中,并為添加的對象指定一個屬性.



          setAttribute(),getAttribute()和removeAttribute()方法實例:

          <%@page language="java"
          contentType="text/html;charset=gb2312"
          %>
          <HTML>
          <HEAD>
          <TITLE> Application對象方法實例</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()方法實例:

          <%@page language="java"
          contentType="text/html;charset=gb2312"
          import="java.util.*"
          %>
          <HTML>
          <HEAD>
          <TITLE> Application對象方法實例</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對象
          getId():返回Session對象在服務器端的編號.每生成一個Session對象,服務器都會給它一個編號,并且該編號不會重復,這樣服務器才能根據(jù)編號來識別Session,并且正確的處理某一特定的Session及其提供的服務.
          getCreationTime():返回Session對象被創(chuàng)建的時間,單位為毫秒.
          getLastAccessedTime():返回當前Session對象最后一次被操作的時間,時間的單位為毫秒.
          getMaxInactiveInterval():獲取Session對象的生存時間,時間的單位為秒.
          setMaxInactiveInterval(int interval):設置Session的有效時間(也叫超時時間),時間的單位為秒.
          removeAttribute(String name)"刪除指定的屬性(包含屬性名,屬性值).如果在有效時間內(nèi),用戶做出了新的請求,那么服務器就會將其看作一個新的用戶,此時,服務器將創(chuàng)建一個新的Session,舊的Session信息將會丟失

          當用戶登陸網(wǎng)站,系統(tǒng)將為他生成一個獨一無二的Session對象,用以記錄改用戶的個人信息
          ,一旦改用戶退出網(wǎng)站,那么該Session對象將會注銷。Session對象可以綁定若干個人信息或
          者Java對象,不同Session對象的同名變量是不會相互干擾的。

          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主頁面</TITLE>
          </HEAD>
          <BODY>
          <%
          String username="rossini";
          String password="126263";
          session.putValue("username",username);
          session.putValue("password",password);
          %>
          <A HREF="2.jsp">指向第二頁</A>
          </BODY>
          </HTML>

          轉(zhuǎn)向頁面1

          <%@page language="java"
          contentType="text/html;charset=gb2312"
          %>
          <HTML>
          <HEAD>
          <TITLE> Session轉(zhuǎn)向頁面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 原來最大休眠時間:"+session.getMaxInactiveInterval());%><BR>
          <%session.setMaxInactiveInterval(session.getMaxInactiveInterval()+1);%><BR>
          <%out.println("session 最新最大休眠時間:"+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">指向第三頁</A>
          </BODY>
          </HTML>

          轉(zhuǎn)向頁面2

          <%@page language="java"
          contentType="text/html;charset=gb2312"
          %>
          <HTML>
          <HEAD>
          <TITLE> Session轉(zhuǎn)向頁面2</TITLE>
          </HEAD>
          <BODY>
          <%
          String usr=(String)session.getValue("username");
          String pwd=(String)session.getValue("password");
          %>
          <%=usr%><BR>
          <%=pwd%>
          </BODY>
          </HTML>

          invalidate()方法將會將會清除當前的session對象解除它和任何參數(shù)或者JAVA對象的綁定關(guān)系

          實例略







          簡單的JSP計數(shù)器
          實例:

          主頁面

          <%@page language="java"
          contentType="text/html;charset=gb2312"
          %>
          <HTML>
          <HEAD>
          <TITLE> JSP計數(shù)器 </TITLE>
          </HEAD>
          <BODY>
          <div align="center"><font face="黑體" size="10">你是第<jsp:include page="11.jsp" flush="true"/> 位訪客</font> </div>
          </BODY>
          </HTML>

          引入頁面

          <%!protected int count=0;%>
          <%=++count%>
          JavaBean設計規(guī)范及實例
          javaBean的設計規(guī)范:
          一個javaBean類必須是一個公共類
          一個javaBean類必須有一個空的構(gòu)造函數(shù)
          一個javaBean類不應有公共實例變量
          持有值應該通過一組存取方法(getXxx和setXxx)來訪問
          實例:

          package Show;
          import java.sql.*;

          public class DBconn{
          private String sDBDriver="org.gjt.mm.mysql.Driver";
          private String sConnStr="jdbc:mysql://10.1.1.79:3306/web?user=root&password=2676141";
          private Connection conn=null;
          private ResultSet rs=null;

          public DBconn(){
          try{
          Class.forName(sDBDriver);
          }
          catch(java.lang.ClassNotFoundException e){
          System.out.println("DBconn():"+e.getMessage());
          }
          }

          public String getsConnStr(){
          return sConnStr;
          }

          public void setsConnStr(String sConnStr){
          this.sConnStr=sConnStr;
          }

          public void executeUpdate(String sql)throws Exception{
          sql=new String(sql.getBytes("GBK"),"ISO8859_1");
          try{
          conn=DriverManager.getConnection(sConnStr);
          Statement stmt=conn.createStatement();
          stmt.executeUpdate(sql);
          conn.close();
          stmt.close();
          }
          catch(SQLException ex){
          System.out.println("sql.executeUpdate:"+ex.getMessage());
          }
          }
          public ResultSet executeQuery(String sql)throws Exception{
          rs=null;
          try{
          sql=new String(sql.getBytes("GBK"),"ISO8859_1");
          conn=DriverManager.getConnection(sConnStr);
          Statement stmt=conn.createStatement();
          rs=stmt.executeQuery(sql);
          conn.close();
          stmt.close();
          }
          catch(SQLException ex){
          System.out.println("sql.executeQuery:"+ex.getMessage());
          }
          return rs;
          }
          }


          轉(zhuǎn)CSDN
          posted on 2007-05-24 11:12 cheng 閱讀(609) 評論(0)  編輯  收藏 所屬分類: JSP/Servlet
          主站蜘蛛池模板: 疏勒县| 聊城市| 平度市| 嵊泗县| 鸡东县| 上犹县| 枣强县| 张家港市| 松阳县| 华容县| 昌吉市| 南木林县| 儋州市| 漠河县| 梅河口市| 石家庄市| 永清县| 九江县| 东乌珠穆沁旗| 邵阳县| 江阴市| 民乐县| 青铜峡市| 商洛市| 鹿邑县| 长宁区| 定日县| 鹤峰县| 宣城市| 扶绥县| 凤阳县| 德阳市| 天水市| 崇仁县| 紫阳县| 余干县| 永新县| 湛江市| 兴城市| 东平县| 洪湖市|