當前位置:首頁 » 網頁前端 » jsp腳本計算
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

jsp腳本計算

發布時間: 2023-05-20 08:39:19

❶ JSP中如何寫輸出計算結果的語句

jsp腳本中寫入:
<%
int sum=0;
for(int i=1;i<=100;i++){
sum=sum+i;
}
%>

由於sum的值在這個頁面均有效,於是可以在你想顯示的地方輸出:
<%
out.println(sum);
%>
或者
<%=sum%>
或者
${sum}
以上三種方式都可以將sum輸出來.

❷ jsp Servlet中腳本元素、指令和預定義變數解析

JSP腳本元素 JSP腳本元素用來插入Java代碼 這些Java代碼將出現在由當前JSP頁面生成的Servlet中 腳本元素有三種格式 表達式格式<%= expression %> 計算表達式並輸出其結果 Scriptlet格式<% code %> 把代碼插入到Servlet的service方法 聲明格式<%! code %> 把聲明加入到Servlet類(在任何方法之外) 下面我們詳細說明它們的用法 JSP表達式 JSP表達式用來把Java數據直接插入到輸出 其語法如下 <%= Java Expression %> 計算Java表達式得到的結果被轉換成字元串 然後插入到頁面 計算在運行時進行(頁面被請求時) 因此可以訪問和請求有關的全部信息 例如 下面的代碼顯示頁面被請求的日期/時間 Current time: <%= new java util Date() %> 為簡化這些表達式 JSP預定義了一組可以直接使用的對象變數 後面我們將詳細介紹這些隱含聲明的對象 但對於JSP表達式來說 最重要的幾個對象及其類型如下 request HttpServletRequest; response HttpServletResponse; session 和request關聯的HttpSession out PrintWriter(帶緩沖的版本 JspWriter) 用來把輸出發送到客戶端 下面是一個例子 Your hostname: <%= request getRemoteHost() %> 最後 如果使用XML的話 JSP表達式也可以寫成下面這種形式

<jsp:expression> Java Expression </jsp:expression>

請記住XML元素和HTML不一樣 XML是大小寫敏感的 因此務必使用小寫 有關XML語法的說明 請參見《XML教程 》 JSP Scriptlet 如果你要完成的任務比插入簡單的表達式更加復雜 可以使用JSP Scriptlet JSP Scriptlet允許你把任意的Java代碼插入Servlet JSP Scriptlet語法如下

<% Java Code %>

和JSP表達式一樣 Scriptlet也可以訪問所有預定義的變數 例如 如果你要向結果頁面輸出內容 可以使用out變數

<% String queryData = request getQueryString(); out println("Attached GET data: " + queryData); %>

注意Scriptlet中的代碼將被照搬到Servlet內 而Scriptlet前面和後面的靜態HTML(模板文本)將被轉換成println語句 這就意味著 Scriptlet內的Java語句並非一定要是完整的 沒有關閉的塊將影響Scriptlet外的靜態HTML 例如 下面的JSP片斷混合了模板文本和Scriptlet

<% if (Math random() < ) { %> Have a <B>nice</B> day! <% } else { %> Have a <B>lousy</B> day! <% } %>

上述JSP代碼將被轉換成如下Servlet代碼

if (Math random() < ) { out println("Have a <B>nice</B> day!"); } else { out println("Have a <拿埋B>lousy</B> day!"); }

如果要在Scriptlet內部使用字元「%>」 必須寫成「%\>」 另外 請注意<% code %>的XML等價表達是 <jsp:scriptlet> Code </jsp:scriptlet> JSP聲明 JSP聲明用來定義插入Servlet類的方法和成衫廳員變數 其語法如下

<%! Java Code %>

由於聲明不會有任何輸出 因此它們往往和JSP表達式或Scriptlet結合在一起使用 例如 下面的JSP代碼片斷輸出自從伺服器啟動(或Servlet類被改動並重新裝載以來消塌螞)當前頁面被請求的次數

<%! private int accessCount = ; %>

自從伺服器啟動以來頁面訪問次數為

<%= ++accessCount %>

和Scriptlet一樣 如果要使用字元串「%>」 必須使用「%\>」代替 最後 <%! code %>的XML等價表達方式為

<jsp:declaration> Code </jsp:declaration>

JSP指令 JSP指令影響Servlet類的整體結構 它的語法一般如下

<%@ directive attribute="value" %>

另外 也可以把同一指令的多個屬性結合起來 例如

<%@ directive attribute ="value " attribute ="value " attributeN="valueN" %>

JSP指令分為兩種類型 第一是page指令 用來完成下面這類任務 導入指定的類 自定義Servlet的超類 等等 第二是include指令 用來在JSP文件轉換成Servlet時引入其他文件 JSP規范也提到了taglib指令 其目的是讓JSP開發者能夠自己定義標記 但JSP 不支持該指令 有希望它將成為JSP 的主要改進之一 page指令 page指令的作用是定義下面一個或多個屬性 這些屬性大小寫敏感 import="package class" 或者import="package class package classN" 用於指定導入哪些包 例如 <%@ page import="java util *" %> import是唯一允許出現一次以上的屬性 contentType="MIME Type" 或contentType="MIME Type; charset=Character Set" 該屬性指定輸出的MIME類型 默認是text/ 例如 下面這個指令 <%@ page contentType="text/plain" %> 和下面的Scriptlet效果相同 <% response setContentType("text/plain"); %> isThreadSafe="true|false" 默認值true表明Servlet按照標準的方式處理 即假定開發者已經同步對實例變數的訪問 由單個Servlet實例同時地處理多個請求 如果取值false 表明Servlet應該實現SingleThreadModel 請求或者是逐個進入 或者多個並行的請求分別由不同的Servlet實例處理 session="true|false" 默認值true表明預定義變數session(類型為HttpSession)應該綁定到已有的會話 如果不存在已有的會話 則新建一個並綁定session變數 如果取值false 表明不會用到會話 試圖訪問變數session將導致JSP轉換成Servlet時出錯 buffer="size kb|none" 該屬性指定JspWrite out的緩存大小 默認值和伺服器有關 但至少應該是 KB autoflush="true|false" 默認值true表明如果緩存已滿則刷新它 autoflush很少取false值 false值表示如果緩存已滿則拋出異常 如果buffer="none" autoflush不能取false值 extends="package class" 該屬性指出將要生成的Servlet使用哪個超類 使用該屬性應當十分小心 因為伺服器可能已經在用自定義的超類 info="message" 該屬性定義一個可以通過getServletInfo方法提取的字元串 errorPage="url" 該屬性指定一個JSP頁面 所有未被當前頁面捕獲的異常均由該頁面處理 isErrorPage="true|false" 該屬性指示當前頁面是否可以作為另一JSP頁面的錯誤處理頁面 默認值false language="java" 該屬性用來指示所使用的語言 目前沒有必要關注這個屬性 因為默認的Java是當前唯一可用的語言 定義指令的XML語法為

<jsp:directive directiveType attribute=value />

例如 下面這個指令

<%@ page import="java util *" %>

它的XML等價表達是

<jsp:directive page import="java util *" />

include指令 include指令用於JSP頁面轉換成Servlet時引入其他文件 該指令語法如下

<%@ include file="relative url" %>

這里所指定的URL是和發出引用指令的JSP頁面相對的URL 然而 與通常意義上的相對URL一樣 你可以利用以「/」開始的URL告訴系統把URL視為從Web伺服器根目錄開始 包含文件的內容也是JSP代碼 即包含文件可以包含靜態HTML 腳本元素 JSP指令和動作 例如 許多網站的每個頁面都有一個小小的導航條 由於HTML框架存在不少問題 導航條往往用頁面頂端或左邊的一個表格製作 同一份HTML代碼重復出現在整個網站的每個頁面上 include指令是實現該功能的非常理想的方法 使用include指令 開發者不必再把導航HTML代碼拷貝到每個文件中 從而可以更輕松地完成維護工作 由於include指令是在JSP轉換成Servlet的時候引入文件 因此如果導航條改變了 所有使用該導航條的JSP頁面都必須重新轉換成Servlet 如果導航條改動不頻繁 而且你希望包含操作具有盡可能好的效率 使用include指令是最好的選擇 然而 如果導航條改動非常頻繁 你可以使用jsp:include動作 jsp:include動作在出現對JSP頁面請求的時候才會引用指定的文件 請參見本文後面的具體說明 實例 腳本元素和指令的應用 下面是一個使用JSP表達式 Scriptlet 聲明 指令的簡單例子

<!DOCTYPE HTML PUBLIC " //W C//DTD HTML Transitional//EN"> <HTML> <HEAD> <TITLE>JavaServer Pages</TITLE> </HEAD> <BODY BGCOLOR="#FDF E " TEXT="# " LINK="# EE" VLINK="# A B" ALINK="#FF "> <CENTER> <TABLE BORDER= BGCOLOR="#EF "> <TR><TH CLASS="TITLE"> JSP應用實例</TABLE> </CENTER> <P> 下面是一些利用各種JSP功能生成的動態內容: <UL> <LI><B>表達式 </B><BR> 你的主機名: <%= request getRemoteHost() %> <LI><B>JSP Scriptlet </B><BR> <% out println("查詢字元串: " + request getQueryString()); %> <LI><B>聲明(和表達式) </B><BR> <%! private int accessCount = ; %> 伺服器啟動以來訪問次數: <%= ++accessCount %> <LI><B>指令(和表達式) </B><BR> <%@ page import = "java util *" %> 當前日期: <%= new Date() %> </UL> </BODY> </HTML> lishixin/Article/program/Java/JSP/201311/20215

❸ JSP腳本作用是什麼啊

JSP技術有點類似ASP技術,它是在傳統的網頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標記(tag),從而形成JSP文件(*.jsp)。

Web伺服器在遇到訪問JSP網頁的請求時,首先執行其中的程序段,然後將執行結果連同JSP文件中的HTML代碼一起返回給客戶。插入的Java程序段可以操作資料庫、重新定向網頁等,以實現建立動態網頁所需要的功能。

JSP與Java Servlet一樣,是在伺服器端執行的,通常返回該客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。