JavaWeb——JSP技術

來源:互聯網
上載者:User

標籤:jsp標籤   會話   嵌入   執行個體   不同的   設定   多行注釋   web   web應用   

一、JSP指令碼和注釋JSP指令碼

1)內嵌Java代碼

<%java代碼%>   // 內部的java代碼翻譯到service方法的內部

2)直接輸出到頁面上

<%=java變數或運算式>   // 會被翻譯成service方法內部out.print()

3)設定Servlet成員內容

<%!java代碼%>   // 會被翻譯成servlet的成員的內容

JSP注釋

1)Html注釋:

<!--注釋內容-->   // 可見範圍 jsp源碼、翻譯後的servlet、頁面 顯示html源碼

2)java注釋:

//單行注釋 /*多行注釋*/   // 可見範圍 jsp源碼 翻譯後的servlet

3)jsp注釋:

<%--注釋內容--%>   // 可見範圍 jsp源碼可見

JSP運行原理:

jsp本質就是servlet,jsp在第一次被訪問時會被Web容器翻譯成servlet再執行

過程:

第一次訪問---->helloServlet.jsp---->helloServlet_jsp.java---->編譯運行

PS:被翻譯後的servlet在Tomcat的work目錄中可以找到

二、JSP指令

jsp的指令是指導jsp翻譯和啟動並執行命令,jsp包括三大指令:

1)page指令

屬性最多的一個指令,根據不同的屬性,指導整個頁面特性

格式:

<%@ page 屬性名稱1= "屬性值1" 屬性名稱2= "屬性值2" ...%>

常用屬性如下:

  • language:jsp指令碼中可以嵌入的語言種類
  • pageEncoding:當前jsp檔案的本身編碼---內部可以包含contentType
  • contentType:response.setContentType(text/html;charset=UTF-8)
  • session:是否jsp在翻譯時自動建立session
  • import:匯入java的包
  • errorPage:噹噹前頁面出錯後跳轉到哪個頁面
  • isErrorPage:當前頁面是一個處理錯誤的頁面

2)include指令

頁麵包含(靜態包含)指令,可以將一個jsp頁麵包含到另一個jsp頁面中

格式:

<%@ include file="被包含的檔案地址"%>

3)taglib指令

在jsp頁面中引入標籤庫(jstl標籤庫、struts2標籤庫)

格式:

<%@ taglib uri="標籤庫地址" prefix="首碼"%>

三、JSP內建/隱式對象

jsp被翻譯成servlet之後,service方法中有9個對象定義並初始化完畢,我們在jsp指令碼中可以直接使用這9個對象

名稱

類型

描述

out

javax.servlet.jsp.JspWriter

用於頁面輸出

request

javax.servlet.http.HttpServletRequest

得到使用者請求資訊,

response

javax.servlet.http.HttpServletResponse

伺服器向用戶端的回應資訊

config

javax.servlet.ServletConfig

伺服器配置,可以取得初始化參數

session

javax.servlet.http.HttpSession

用來儲存使用者的資訊

application

javax.servlet.ServletContext

所有使用者的共用資訊

page

java.lang.Object

指當前頁面轉換後的Servlet類的執行個體

pageContext

javax.servlet.jsp.PageContext

JSP的頁面容器

exception

java.lang.Throwable

表示JSP頁面所發生的異常,在錯誤頁中才起作用

1、out對象

out的類型:JspWriter

out作用就是想用戶端輸出內容----out.write()

out緩衝區預設8kb 可以設定成0 代表關閉out緩衝區 內容直接寫到respons緩衝器 

2、pageContext對象

jsp頁面的內容物件,作用如下:

page對象與pageContext對象不是一回事

1)pageContext是一個域對象

  • setAttribute(String name,Object obj)
  • getAttribute(String name)
  • removeAttrbute(String name)

pageContext可以向指定的其他域中存取資料

  • setAttribute(String name,Object obj,int scope)
  • getAttribute(String name,int scope)
  • removeAttrbute(String name,int scope)
  • findAttribute(String name)  ---依次從pageContext域,request域,session域,application域中獲 取屬性,在某個域中擷取後將不在向後尋找
四大範圍的總結:

page域:當前jsp頁面範圍

request域:一次請求

session域:一次會話

application域:整個web應用

2)可以獲得其他8大隱式對象

  • pageContext.getRequest()
  • pageContext.getSession()
四、jsp標籤(動作)

1)頁麵包含(動態包含):

<jsp:include page="被包含的頁面"/>

2)請求轉寄:

<jsp:forward page="要轉寄的資源" />

靜態包含與動態包含的區別

 

JavaWeb——JSP技術

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.