jsp基礎知識

jsp的聲明:html

 

<%!java

int i=10;//實例變量,加!後的代碼出如今源碼的類裏面,能夠添加方法web

 %>瀏覽器

 

 <%緩存

 int i=10;//局部變量,出如今源碼的方法裏,不能添加方法服務器

 %>session

 

註釋:架構

<%--out.write("adc")--%> jsp註釋,註釋掉的代碼根本不會翻譯到servletmvc

 

 

 

<!---app

<%="abc"%> html的註釋,代碼依舊會翻譯到servlet中,只是html沒有顯示而已

->

 

指令: 給服務器使用,告訴服務器如何使用jsp頁面

page指令:做用於整個jsp頁面,

定義jsp的頁面上屬性:

language:語言,默認是java.指示jsp中的腳本語言

import:導入須要的java

Session:默認是true;是否生成httpSession對象;

buffer:字符緩存,默認是8kb

errorPage:頁面出錯時轉向的頁面./開頭表明絕對路徑

配置全局錯誤轉向頁面:

web.xml中配置:

匹配錯誤類型

<error-page>

<exception-type>java.lang.Exception</exception-type>

<location>/error.jsp</location>

</error-page>

匹配錯誤碼:

<error-page>

<error-code>404</error-code>

<location>/404.jsp</location>

</error-page>

isErrorPage:是否產生exception對象,默認爲false

ContentType:做用與request.setContentType()相同.給瀏覽器用。

pageEncoding:告知服務器用什麼編碼讀取jsp,實際上只需寫這個,pageEncoding同時具備ContentType的做用

isELIgnore:默認值爲false,是否忽略EL表達式

 

 

taglib指令:

引入外部標籤:

 

include指令:

屬性:file

路徑:/開頭表示當前應用

頁面包含:

<%@include file="/1.jsp"%>

靜態包含:將2jsp合成一個class文件,(推薦,效率高)

 

動態包含:

<jsp:include page="/1.jsp"/>

生成2class,分別輸出各自的代碼

 

jsp中的動做元素(標籤):

 

jsp:include:

動態包含:屬性:page

 

jsp:forward:

轉發:屬性:page

代碼:<jsp:forward page="/index.jsp"></jsp:forward>

 

jsp:param:

傳遞請求參數,結合其餘標籤來使用:

<jsp:forward page="/2.jsp">

     <jsp:param value="djw" name="username"/>

</jsp:forward>

2.jsp中可獲取username

 

jsp九大隱式對象:

JSP內置對象名稱 對應的類型 備註

request javax.servlet.http.HttpServletRequest

response javax.servlet.http.HttpServletResponse

session javax.servlet.http.HttpSession JSP指令page中有一個開關session=true

application javax.servlet.ServletContext

config javax.servlet.ServletConfig

page java.lang.Object 表明當前Servlet對象自己

exception java.lang.Throwable JSP指令page中有一個開關isErrorPage="true"

out javax.servlet.jsp.JspWriter response.getWriter()返回的PrintWriter做用同樣

pageContext javax.servlet.jsp.PageContext

 

jsp四大域對象:

 

pageContext內置對象:

 

1自己是域對象,只能該頁面使用

特色:只能操做該頁面中的數據

 

2還能操做其餘三個域對象:

pageContext.setAttribute("p", "p");//頁面

pageContext.setAttribute("p", "p",pageContext.PAGE_SCOPE);//和上面一行同樣

request.setAttribute("p", "pp");//請求,只有當頁面轉發時,兩個頁面的請求才爲同一個請求,能夠用pagecontext來操做

pageContext.setAttribute("p", "p",pageContext.REQUEST_SCOPE);//同上

session.setAttribute("p", "ppp");//做用域範圍爲一次回話

pageContext.setAttribute("p", "ppp",pageContext.SESSION_SCOPE);//同上

application.setAttribute("p", "pppp");//做用域範圍爲該應用

pageContext.setAttribute("p", "pppp",pageContext.APPLICATION_SCOPE);//同上

 

pageContext.findAttribute

String str=(String)pageContext.findAttribute("p");

該方法的注意點主要在於頁面,回話,請求這三個域的範圍.

 

 

還能得到其餘8個隱式對象,

提供了包含和轉發的簡易方法

 

 

Jsp.out的緩存機制:

1out.write(「abc」)

2response.getWrite.write("def");

以上代碼輸出顯示的是defabc

由於outjsp的輸出流,先寫入jsp的緩存中,2中上的語句寫入的的respense的緩存,

輸出到頁面最終要使用的是reponse中的流,因此jsp中的流先關閉,

刷新後abc就進入response中的緩存,進入的順序在def的後面。

 

 

javabean的概念:

遵循的命名規則:

1有默認的構造函數

2字段私有

3類必須是public

4提供公有的getset方法(屬性)

5通常實現java.IO.Serializable接口(保證數據不丟失)

 

做用:封裝數據,傳輸數據

 

javaWeb開發模型:

 

javabean+jsp:簡單的應用

Mvc:Model+View+Controller(模型+視圖+控制器)

model:javabean表示

view:jsp數據顯示

controller:servlet控制

mvc是表現層的架構

 

 

 

三層架構視圖:

 

 

 

jsp中操做javabean

使用動做元素:(內置標籤)

jsp:useBean:在指定的範圍中查找javabean,若是沒有找到,則建立新的javabean,並放到指定的javabean,若是找到,直接取出

jspsetProperty:

jsp:getProperty:將指定名稱的bean對象的值打印到頁面上,當屬性的值爲null,則顯示的爲null

代碼:

<jsp:useBean id="p" class="text.jsp.Person"></jsp:useBean>

<jsp:setProperty property="name" name="p" value="djw"/>

<jsp:getProperty property="name" name="p"/>

 

 

用請求參數填充javabean中的屬性:(即表單中數據提交目標爲jsp頁面,jsp直接將獲取到的數據封裝到javabean中)

 <% request.setCharacterEncoding("UTF-8"); %> //有中文數據時須要使用,告知服務器用UTF-8來解碼

<jsp:useBean id="p" class="text.jsp.Person"></jsp:useBean>

<jsp:setProperty property="name" name="p" param="name"/>

<jsp:setProperty property="gender" name="p" param="gender"/>

<jsp:getProperty property="name" name="p"/>

<jsp:getProperty property="gender" name="p"/>

 

 <jsp:setProperty property="*" name="p"/>

 通配符:使用前提:表單中的屬性名和javabean中的字段名一致纔可使用,能夠這麼認爲:表單中的全部屬性都封裝到了javabean中,

 只要屬性名正確,就均可以一一獲取。

相關文章
相關標籤/搜索