[原]Java web學習系列之 Java web開發中的jsp九種內建對象__JavaWeb

來源:互聯網
上載者:User

jsp九種內建對象:request, reponse, out, session, application, config, pagecontext, page, exception.

 一.request對象:該對象封裝了使用者提交的資訊,通過調用該對象相應的方法可以擷取封裝的資訊,即使用該對象可以擷取使用者提交資訊。

1.Request對象可以使用getParameter(string s)方法擷取該表單通過text提交的資訊。如:

Request.getParameter(“boy”)
2、使用request對象擷取資訊要格外小心,要避免使用Null 物件,否則會出現NullPointerException(null 指標)異常,故要捕獲異常,做異常處理。

String textContent=request.getParameter("girl");

   double number=0,r=0;

   if(textContent==null)

    {textContent="";

    }

   try{ number=Double.parseDouble(textContent);

     if(number>=0)

       {r=Math.sqrt(number) ;

       out.print("<BR>"+String.valueOf(number)+"的平方根:");

       out.print("<BR>"+String.valueOf(r));

       }

     else

       {out.print("<BR>"+"請輸入一個正數");

       }

    }

   catch(NumberFormatException e)

    {out.print("<BR>"+"請輸入數字字元");

    }

3、處理漢字資訊:當request對象擷取客戶提交的漢字字元時,會出現亂馬問題,必須進行特殊處理,即將擷取的字串用ISO-8859-1進行硬轉碼。

String name1=request.getParameter("name");

String name=new  String(name1.getBytes("ISO-8859-1"),"UTF—8");

4、常用方法舉例:

getProtocol(), getServletPath(), getContentLength(), getMethod(), getRemoteAddr(), getRemoteHost(), getServerName(), getParameterName()

客戶使用的協議是:

 String protocol=request.getProtocol();

擷取接受客戶提交資訊的頁面:

String path=request.getServletPath();

接受客戶提交資訊的長度:

int length=request.getContentLength();
客戶提交資訊的方式:

String method=request.getMethod();

擷取HTTP標頭檔中User-Agent的值::

String header1=request.getHeader("User-Agent");

擷取HTTP標頭檔中accept的值:

String header2=request.getHeader("accept");

擷取HTTP標頭檔中Host的值:

String header3=request.getHeader("Host");

擷取HTTP標頭檔中accept-encoding的值:

 String header4=request.getHeader("accept-encoding");

擷取客戶的IP地址:

String IP=request.getRemoteAddr();

擷取客戶機的名稱:

 String clientName=request.getRemoteHost();

擷取伺服器的名稱:

 String serverName=request.getServerName();

擷取伺服器的連接埠號碼:

 int serverPort=request.getServerPort();

擷取用戶端提交的所有參數的名字:

Enumeration enum=request.getParameterNames();

    while(enum.hasMoreElements())

      {String s=(String)enum.nextElement();

       out.println(s);

      }   

擷取頭名字的一個枚舉:

Enumeration enum_headed=request.getHeaderNames();

   while(enum_headed.hasMoreElements())

      {String s=(String)enum_headed.nextElement();

       out.println(s);

      }   

 

擷取標頭檔中指定頭名字的全部值的一個枚舉:

Enumeration enum_headedValues=request.getHeaders("cookie");

   while(enum_headedValues.hasMoreElements())

      {String s=(String)enum_headedValues.nextElement();

       out.println(s);

      }   

5、轉寄請求頁面

String  strName=request..getParameter("name");

if("Tom".equals(strName))

{

 request.getrequestDispatcher("index.jsp").forward(request,response);

}

6、儲存上下文請求對象

String  strName=request..getParameter("name");//得到請求參數

StudentService service=new  StudentService();//初始化對象

Students stu=service.isLogin(strName);//調用方法

request.setAttribute("myname",stu);//將上下文請求對象儲存到request中
二.Response對象:對客戶的請求做出動態響應,向用戶端發送資料。

當一個使用者訪問一個jsp頁面時,如果該頁面用page指令設定頁面的contentType屬性是text/html,那麼jsp引擎將按照這種屬性值作出反映。如果要動態改變這個屬性值來響應客戶,就需要使用response對象的setContentType(String s)方法來改變contentType的屬性值。

  格式:response.setContentType(String s)

  參數s可取text/html,, application/x-msexcel, application/msword等。

<FORM action="" method="get" name=form>

   <INPUT TYPE="submit" value="yes" name="submit">

  </FORM>

<% String str=request.getParameter("submit");

   if(str==null)

     {str="";

     }

   if(str.equals("yes"))

     {response.setContentType("application/msword;charset=GB2312");

     }

%>
 2.Response重新導向:在某些情況下,當響應客戶時,需要將客戶重新引導至另一個頁面,可以使用response的sendRedirect(URL)方法實現客戶的重新導向。
<%

String address = request.getParameter("where");

if(address!=null){

if(address.equals("ChinaWebber"))

  response.sendRedirect("http://www.ChinaWebber.com");

 else if(address.equals("Yahoo"))

   response.sendRedirect("http://www.yahoo.com");

  else if(address.equals("Sun"))

   response.sendRedirect("http://www.sun.com");

}

%>

三.Session對象

1.什麼是Session:Session對象是一個jsp內建對象,它在第一個jsp頁面被裝載時自動建立,完成會話期管理。

  從一個客戶開啟瀏覽器並串連到伺服器開始,到客戶關閉瀏覽器離開這個伺服器結束,被稱為一個會話。當一個客戶訪問一個伺服器時,可能會在這個伺服器的幾個頁面之間反覆串連,反覆重新整理一個頁面,伺服器應當通過某種辦法知道這是同一個客戶,這就需要session對象。

2.session對象的Id:當一個客戶首次訪問伺服器上的一個jsp頁面時, jsp引擎產生一個session對象,同時分配一個String類型的Id號,jsp引擎同時將這個Id號發送到用戶端,存放在Cookie中,這樣 session對象和客戶之間就建立了一一對應的關係。當客戶再訪問串連該伺服器的其他頁面時,不再分配給客戶新的session對象,直到客戶關閉瀏覽器後,伺服器端該客戶的session對象才取消,並且和客戶的會話對應關係消失。當客戶重新開啟瀏覽器再串連到該伺服器時,伺服器為該客戶再建立一個新的session對象。

3.session對象常用方法:

  (1).public String getId():擷取session對象編號。

  (2).public void setAttribute(String key,Object obj):將參數Object指定的對象obj添加到session對象中,並為添加的對象指定一個索引關鍵字。

  (3).public Object getAttribute(String key):擷取session對象中含有關鍵字的對象。

  (4).public Boolean isNew():判斷是否是一個新的客戶。
四.aplication對象

1.什麼是application:

  伺服器啟動後就產生了這個application對象,當客戶再所訪問的網站的各個頁面之間瀏覽時,這個application對象都是同一個,直到伺服器關閉。但是與session不同的是,所有客戶的application對象都是同一個,即所有客戶共用這個內建的application 對象。

  2.Application對象常用方法:

  (1)public void setAttribute(String key,Object obj): 將參數Object指定的對象obj添加到application對象中,並為添加的對象指定一個索引關鍵字。

  (2)public Object getAttribute(String key): 擷取application對象中含有關鍵字的對象。
五.Out對象

  Out對象是一個輸出資料流,用來向用戶端輸出資料。Out對象用於各種資料的輸出。

  常用方法:

  (1)out.print():輸出各種類型資料。

  (2)out.newLine():輸出一個分行符號。

  (3)out.close():關閉流。
<%

Date Now = new Date();

String hours=String.valueOf(Now.getHours());

String mins=String.valueOf(Now.getMinutes());

String secs=String.valueOf(Now.getSeconds());

%>

現在是

<%out.print(String.valueOf(Now.getHours()));%>

小時

<%out.print(String.valueOf(Now.getMinutes()));%>

<%out.print(String.valueOf(Now.getSeconds()));%>

六.Cookie

  1.什麼是Cookie:

  Cookie是Web伺服器儲存在使用者硬碟上的一段文本。Cookie允許一個Web網站在使用者的電腦上儲存資訊並且隨後再取回它。

  舉例來說,一個Web網站可能會為每一個訪問者產生一個唯一的ID,然後以Cookie檔案的形式儲存在每個使用者的機器上。

  如果您使用IE瀏覽器訪問Web,您會看到所有儲存在您的硬碟上的Cookie。它們最常存放的地方是:c:\windows\cookies(在Win 2000中則是C:\Documents and Settings\您的使用者名稱\Cookies )

  cookie是以“關鍵字key=值value“的格式來儲存紀錄的.

  2.建立一個Cookie對象,調用Cookie對象的建構函式可以建立Cookie。Cookie對象的建構函式有兩個字串參數:Cookie名字和Cookie值。

  Cookie c=new Cookie(“username”,”john”);

  3. jsp中如果要將封裝好的Cookie對象傳送到用戶端,使用response的addCookie()方法。

  格式:response.addCookie(c)

  4.讀取儲存到用戶端的Cookie,使用request對象的getCookies()方法,執行時將所有用戶端傳來的Cookie對象以數組的形式排列,如果要取出符合需要的Cookie對象,就需要迴圈比較數組內每個對象的關鍵字。

  例:

Cookie[] c=request.getCookies();

if(c!=null)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.