国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

JSP內置對象(上)

2019-11-14 23:09:06
字體:
來源:轉載
供稿:網友
jsp內置對象(上)

在JSP中為了簡化頁面的開發提供了一些內置的對象。這些對象不需要由JSP的編寫者通過new關鍵字實例化,他們都由容器實現和管理,在所有的JSP頁面中都可以使用內置對象。

JSP中共有9大內置對象:

  1. out對象
  2. requset對象
  3. response對象
  4. session對象
  5. pageContext對象
  6. application對象
  7. config對象
  8. page對象
  9. exception對象

JSP內置對象(下):http://wxmimperio.coding.io/?p=329

PS:

【web對象的請求響應模式】

1.用戶從客戶端發送HTTP請求(request)到web服務器端

2.服務器給用戶做相應的HTTP響應(response)返回客戶端

【表單提交的兩種方式:get and post】

1.get:以明文的方式通過URL提交數據,數據在URL中可以看到。提交的數據最多不超過2kb。安全性比較低但效率比post方式高,適合提交數據量不大,安全性不高的數據。比如:搜索、查詢

2.post:將用戶提交的信息封裝在HTML HEADER內。適合提交數據量大,安全性高的用戶信息。比如:注冊、修改、上傳


1.out對象

out對象被封裝成javax.servlet.jsp.JspWriter接口,主要用來向客戶端輸出數據,代表輸出流的對象。

常用的方法:

  • out.PRint()、out.println():向客戶端打印字符串
  • out.clear():清除緩沖區里的數據,但不會把數據輸出到客戶端,如果在flush之后調用會拋出異常
  • out.flush():輸出緩沖區里的數據
  • out.clearBuffer():清除緩沖區里的數據,并把數據輸出到客戶端,如果在flush之后調用不會拋出異常
  • out.getBufferSize():獲得緩沖區大小
  • out.getRemaining():獲得緩沖區剩余空間大小
  • out.close():關閉輸出流
  • out.isAutoFlush():返回布爾值,判斷是否為自動清除緩存

代碼:

  • <body>
  • println方法:<%out.println("打印輸出");%><br>
  • getBufferSize方法:緩沖區大小=<%=out.getBufferSize()%><br>
  • getRemaining方法:緩沖區剩余大小=<%=out.getRemaining()%><br>
  • isAutoFlush方法:是否自動清除緩沖區:<%=out.isAutoFlush()%><br>
  • clear方法:<%out.close();%><br>
  • <%--
  • clearBuffer方法:<%out.clearBuffer();%><br>
  • flush方法:<%out.flush();%><br>
  • close方法:<%out.close();%><br>
  • --%>
  • </body>

2.request對象

request對象代表請求對象,他被封裝成HttpServletRequest接口。通過getParameter方法可以得到requset的參數,通過get、post、head等方法可以得到request的類型,通過Cookies、Referer等可以得到請求的HTTP頭。來自客戶端的請求經Servlet容器處理后,有request對象進行封裝,他作為jspServlet()方法的一個參數由容器傳遞給JSP頁面。

常用的方法:

  • getParamter(String name):獲得客戶端傳給服務器端的參數值,參數由name指定
  • getParameterValues(String name):獲得指定參數的所有值,參數由name指定
  • getProtocol():獲取客戶端向服務器端傳送數據所依據的協議類型及版本號
  • getServerName():獲取服務器的名字
  • getServerPath():獲取客戶端所請求的腳本文件的路徑
  • getServerPort():獲取服務器的端口號
  • getContentLength():返回請求的長度,如果長度不確定,返回-1
  • getCharacterEncoding():返回請求中的編碼方式
  • getLocalAddr():返回接收到請求的網絡接口的ip地址,這個方法是在Servlet 2.4規范中新增的方法
  • getLocalName():返回接收到請求的IP接口的主機名,這個方法是在Servlet 2.4規范中新增的方法
  • setAttribute(String name,java.lang.Object objt):儲存此請求中的屬性
  • getAttribute(String name):返回由name指定的屬性,如果此屬性不存在,則返回一個null值

代碼:

requestForm.jsp

  • <formname="requsetFrom"action="requestObject.jsp"method="post">
  • <table>
  • <tr>
  • <td>用戶名:</td>
  • <td><inputtype="text"name="username"></td>
  • </tr>
  • <tr>
  • <td>興趣:</td>
  • <td>
  • <inputtype="checkbox"name="favorite"value="basketball">籃球
  • <inputtype="checkbox"name="favorite"value="music">音樂
  • <inputtype="checkbox"name="favorite"value="football">足球
  • </td>
  • </tr>
  • <tr>
  • <td><inputtype="submit"value="提交"></td>
  • </tr>
  • </table>
  • </form>

requestObject.jsp

  • <body>
  • <%
  • /*解決中文亂碼問題,但不能解決用URL傳遞中文的亂碼*/
  • request.setCharacterEncoding("utf-8");
  • /*調用setAttribute方法*/
  • request.setAttribute("passWord","123456789");
  • %>
  • 用戶名:<%=request.getParameter("username")%><br>
  • 興趣:
  • <%
  • if(request.getParameterValues("favorite")!=null){
  • String[]favorites=request.getParameterValues("favorite");
  • for(inti=0;i<favorites.length;i++){
  • out.println(favorites[i]+"&nbsp;&nbsp;");
  • }
  • }
  • %><br>
  • 服務器版本號:<%=request.getProtocol()%><br>
  • 服務器名字:<%=request.getServerName()%><br>
  • 客戶端請求的文件路徑:<%=request.getServletPath()%><br>
  • 服務器端口號:<%=request.getServerPort()%><br>
  • 請求長度:<%=request.getContentLength()%><br>
  • 請求中編碼方式:<%=request.getCharacterEncoding()%><br>
  • 請求中網絡接口的IP:<%=request.getLocalAddr()%><br>
  • 請求中的主機名:<%=request.getLocalName()%><br>
  • 獲取指定屬性:<%=request.getAttribute("password")%><br>
  • </body>


3.response對象

response被包裝成HttpServletResponse接口,他封裝了JSP產生的響應,然后被發送到客戶端以響應客戶的請求。和request對象一樣,他由容器生成,作為jspService()方法的參數被傳入JSP。他具有頁面作用域,即訪問一個頁面時,該頁面的response對象只能對該頁面有效,其他頁面的response對象對當前頁面無效。

常用的方法:

  • flushBuffer():強制把當前緩沖區的內容發送到客戶端
  • getBufferSize():返回緩沖區大小
  • addCookie(Cookie cook):添加一個Cookie對象,用來保存客戶端信息
  • sendError(int):向客戶端發送錯誤的信息
  • sendRedirect(String location):把響應發送到另一個位置進行處理
  • setContentType(StringContentType):設置響應的MIME類型
  • getWriter():返回一個可以向客戶端輸出字符的對象
  • getCharacterEncoding():返回響應所用的編碼類型

PS:

【請求重定向】

客戶端行為,response.sendRedirect(),從本質上講等同于發出兩次請求,前一次請求對象不會被保存,地址欄的URL地址會發生改變

【請求轉發】

服務器行為,requset.getRequestDispatcher().forward(request,response);是一次請求,轉發后請求對象會保存,地址欄的URL地址不會發生變化

代碼:

  • <body>
  • 緩沖區大小=<%=response.getBufferSize()%><br>
  • <%--錯誤=<%response.sendError(404);%><br>--%>
  • 響應的編碼類型=<%=response.getCharacterEncoding()%><br>
  • <%
  • response.setContentType("text/html;charset=utf-8");//設置響應的MIME類型
  • /*response生成的輸出流優先級高于內置對象out,先進行打印輸出*/
  • PrintWriterouter=response.getWriter();//獲得輸出流
  • outer.println("response生成的輸出流<br>");
  • /*使用了一個Cookie,每次訪問此頁面時,就通過requset對象把客戶端的所有Cookie獲取過來*/
  • Cookie[]cookies=request.getCookies();
  • Cookiecookie_response=null;
  • Listlist=Arrays.asList(cookies);
  • Iteratorit=list.iterator();
  • while(it.hasNext()){
  • Cookietemp=(Cookie)it.next();
  • if(temp.getName().equals("_access_time"));{
  • cookie_response=temp;
  • break;
  • }
  • }
  • if(cookie_response!=null){
  • outer.println("訪問時間="+cookie_response.getValue()+"<br>");
  • cookie_response.setValue(newDate().toString());
  • }else{
  • cookie_response=newCookie("_access_time",newjava.util.Date().toString());
  • }
  • response.addCookie(cookie_response);
  • response.flushBuffer();
  • %>
  • </body>

4.session對象

session對象用來保存每個用戶信息,以便跟蹤每個用戶的操作狀態。其中,session信息保存在容器中,session的ID保存在客戶端的Cookie中。session表示客戶端與服務器的一次會話,web中的session指的是用戶在瀏覽某個網站時,從進入網站到瀏覽器關閉所經過的這段時間他表示特定的一段時間,在服務器內存中保存著不同用戶的session,session對象在第一個jsp頁面被裝載時自動創建,完成回話管理。

【生命周期】

從一個客戶打開瀏覽器并連接到服務器開始,到客戶關閉瀏覽器離開服務器結束,稱為一個會話。當一個用戶訪問一個服務器時,可能會在服務器的幾個頁面之間切換,服務器應當通過某種辦法知道這是一個客戶,就需要session對象。session對象是HttpSession類的一個實例.

創建:

當客戶端第一

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 十堰市| 上犹县| 巴彦淖尔市| 金沙县| 仁布县| 永定县| 江阴市| 勐海县| 华安县| 德昌县| 拜城县| 沭阳县| 江源县| 高邮市| 赤壁市| 濮阳县| 宿松县| 巴中市| 永丰县| 搜索| 荥经县| 北辰区| 雷波县| 峨边| 绥江县| 阜南县| 湘潭县| 湖北省| 正安县| 铜陵市| 佛坪县| 灵宝市| 肇州县| 如东县| 紫金县| 镇江市| 磐安县| 莒南县| 宜宾市| 南通市| 黄浦区|