jsp輸出腳本
1. JSP中聲明,表達式和腳本的區別
1. 表達式
表達式: 是對數據的表示,系統將其作為一個值進行計算。
語法:<%= expression %>
例如:<%=user.getName() %>
表達式的本質:在將JSP頁面轉換成Servlet後,使用out.print()將表達式的值輸出。這樣如果user.getName()的返
回值是"liky", 那麼實際上在servlet中就將轉換成out.print("liky");
因此這里要注意以下兩點:
1) 如果表達式是調用一個方法,那麼這個方法必須要有返回值,而不應是void,也就是說void getName()這樣的
方法是不能被調用的。
2) 在方法的後面不能有分號;例如<%=getName();%>這是不允許的。
2. 腳本
腳本:就是在<% %>里嵌入java代碼,這里的Java代碼和我們一般的Java代碼沒有什麼區別,所以每一條語句
同樣要以";"結束,這和表達式是不相同的
語法:<% code %>
腳本的本質:就是將代碼插入到Servlet的service()方法中。
2. 3.jsp中的腳本標識包含哪些元素它們的作用及語法格式是什麼
jsp中的腳本標識包含的元素有如下5種,以及語法格式:
1、JSP注釋
<%--*****--%> 是不輸出到客戶端的注釋符。
<%!--*****--%> 是輸出到客戶端的注釋符。
2、指令元素
<%@ page contentType=」text/html」 %> 設置指定頁面內容類型
<%@ include ...%> 在翻譯階段引入一個文件
<%@ taglib ... %> 聲明一個頁面使用的,包含自定義行為的標記庫。
3、行為元素
<jsp:useBean> 使一個JavaBeans組件在該頁中可用
<jsp:setProperty> 設置JavaBeans的屬性值
<jsp:forward> 將對請求的處理轉交給一個servlet或JSP頁面
4、腳本元素
<%this is a scriptlet%> 嵌入腳本代碼
表達式元素
<%= this is an expression%> 嵌入java表達式
5、方法聲明
<%! String a="1";%> 用於在JSP頁面的實現類中聲明變數和方法
3. 怎樣查看Jsp編譯後生成的Java文件
可能大多數Jsp開發員在寫完程序測試通過後,不太會關注Jsp生成的Java文件,其實,通過Java代碼,更能體現程序代碼的真正含義,對進一步研究程序代碼的後台運行情況是非常有幫助的。例如,用Jsp編寫代碼時,有時候用<%! %>,有時候用<% %>,加不加感嘆號,(Jsp代碼加感嘆號與不加感嘆號的區別)這類問題在教程里一般不會涉及到,從這里找到問題的突破口——Jsp生成的Java文件!所以,對於Jsp開發,有必要知道這點技能。
(1):對於Tomcat而言,JSP頁面生成的Java文件放在work路徑對應的Web應用下。例如:
D:/Tomcat5.5/webapps/test/test.jsp
生成對應的java文件
D:/Tomcat5.5/work/Standalone/localhost/test/
對於Resin而言,JSP頁面生成的Java文件放在WEB-INF/work路徑對應的Web應用下。例如:
D:/Resin3.1.6/webapps/test/demo/test.jsp
生成對應的java文件
D:/Resin3.1.6/WEB-INF/work/_demo/_test.java/
(2):Jsp與Servlet的關系
1、JSP文件必須在JSP伺服器內運行。
2、JSP文件必須生成Servlet才能執行。
3、每個JSP頁面的第一個訪問者速度很慢,因為必須等待JSP編譯成Servlet。
4、JSP頁面的訪問者無須安裝任何客戶端,甚至不需要可以運行Java的運行環境,因為JSP頁面輸送到客戶端的是標准HTML頁面。
5、JSP頁面的靜態內容、JSP腳本都會轉換成Servlet的xxxService()方法,類似於自行創建Servlet時service()方法。
6、JSP聲明部分,轉換成Servlet的成員部分。所有JSP聲明部分可以使用private,protected,public,static等修飾符,其他地方則不行。
7、JSP的輸出表達式(<%= ..%>部分),輸出表達式會轉換成Servlet的xxxService()方法里的輸出語句。
8、九個內置對象要麼是xxxService()方法的形參,要麼是該方法的局部變數,所以九個內置對象只能在JSP腳本和輸出表達式中使用。
從上述第5、6點,其實就可以解釋Jsp代碼加感嘆號與不加感嘆號的區別的問題。
(3):在Tomcat下指定Jsp生成的Java文件路徑:
當需要自定義Jsp生成的Java文件位置時,可以通過如下兩種方法來實現:
方法1.在tomcat的配置文件server.xml(路徑:tomcat路徑\conf下面)里,找到:<Context docBase="D:/workspace/icinfo/trunk/web" path="" reloadable="false" debug="0" crossContext="true" workDir="D:/workspace/icinfo/trunk/web/WEB-INF/lib/CommonPKI/META-INF/work"/>,添加如上的workDir=""屬性,""里寫你的要看到.java/.class的路徑.
方法2.到conf/Catalina/localhost下找到你項目的.xml培植文件,找到方法1中的代碼,後續操作同方法1.
(4):保留Weblogic 中Jsp編譯後生成的Java文件:
在weblogic.xml中加入:
看看web應用在Weblogic中生成臨時文件中,有Java文件了。
4. 在jsp中的java腳本中輸出數據時可以使用什麼對象的pri
在jsp中的java腳本中輸出數據時可以使用out對象的print。根據相關信息查詢顯示,在jsp中的java腳本中輸出數據時可以使用out對象的print,是用來輸出的。