J2EE 2.JSP語法
JSP語法
“<%!”和“%>”之間宣告的變數在整個JSP頁面內都有效,與“<%!”、“%>” 標記符在JSP頁面中所在的書寫位置無關。JSP引擎將JSP頁面轉譯成Java 檔案時,將“<%!”、“%>” 標記符之間宣告的變數作為類的成員變數,這些變數佔有的記憶體空間直到JSP引擎關閉才釋放。
在“<%”和“%>”之間插入Java程式片。一個JSP頁面可以有許多程式片,這些程式片將被JSP引擎按順序執行。
程式片中宣告的變數稱為JSP頁面的區域性變數 。
Java程式片中宣告的區域性變數在其後繼的所有Java程式片以及表示式部分內都有效。
多個客戶請求一個JSP頁面時,Java程式片將被執行多次,分別在不同的執行緒中執行 。
JSP 指令標記
page 指令標記
page 指令標記可以指定如下屬性的值contentType、import、language、session、buffer、auotFlush 、isThreadSafe
contentType 屬性值確定JSP頁面響應的型別MIME和JSP頁面字元的編碼。
例如:使用者的瀏覽器啟用HTML解析器來解析執行所接收到的資訊
<%@ page contentType="text/html;charset=GB2312" %>
如果不使用page指令為contentType指定,預設值是 "text/html ; charset=ISO-8859-1“
include 指令標記
<%@ include file= "檔案的URL " %>
靜態插入一個檔案
JSP 動作標記
include 動作標記
<jsp:include page= "檔案的URL"/>
或 <jsp:include page= "檔案的URL">
param子標記
</jsp:include>
param子動作標記
不能獨立使用,需作為jsp:include、jsp:forward、jsp:plugin標記的子標記來使用。
<jsp:param name= "名字" value= "值">
相應獲取資料:String s=request.getParameter("num");
forward動作標記
<jsp:forward page="要轉向的頁面" />
或 <jsp:forward page="要轉向的頁面" >
param子標記
</jsp:forward> 該指令的作用是:從該指令處停止當前頁面的執行,而轉向執行page屬性指定的JSP頁面。
useBean 動作標記
---雜記:
Jsp頁面組成(5)
jsp是由指令元素+指令碼元素+html模板組成的 <%@ %>這種是jsp指令 <% %>這種是jsp指令碼,即在裡面寫java程式碼
JSP頁面被第一次請求執行時,引擎轉譯成Java檔案,編譯成位元組碼檔案。位元組碼檔案響應請求。每個使用者一個執行緒
Out.print或println
導包:ctrl+shift+M
DateFormat 類MM-dd HH:mm:ss
宣告全域性變數:<%! %>
在webContent下建立image資料夾,路徑為“image/**”
得到info的值:(this.)getServletInfo
Include指令嵌入檔案:靜態<% @ include file=”路徑”%> <bgsound src=””
視窗、引用、workspace和Jsp file的encoding改成utf-8
靜態包含的含義:把一個檔案中所有的程式碼都包含進
顯示server:
在左下方圖示開啟
顯示瀏覽器:
上方圖示
實驗
實驗2_1 JSP頁面的基本結構
編寫兩個JSP 頁面,名字分別為inputName.jsp和people.jsp。
-
inputName.jsp的具體要求
該頁面有一個表單,使用者通過該表單輸入自己的姓名並提交給people.jsp頁面。
-
people.jsp的具體要求
(1)JSP頁面有名字為personList,型別是StringBuffer以及名字是count,型別為int的成員變數。
(2)JSP頁面有public void judge ()方法,該方法負責建立personList物件,當count的值是0時,judge ()方法建立personList物件。
(3)JSP頁面有public void addPerson(String p)的方法,該方法將引數p指定的字串尾加到成員變數personList,同時將count作自增運算。
(4)JSP頁面在程式片中獲取inputName.jsp頁面提交的姓名,然後呼叫judge()建立personList物件,呼叫addPerson方法將使用者的姓名尾加到成員變數personList。
(5)如果inputName.jsp頁面沒有提交姓名,或姓名含有的字元個數大於10,就使用<jsp:forward page="要轉向的頁面" />標記將使用者轉到inputName.jsp頁面。
(6)通過Java表示式輸出personList和count的值。
<!-- input.jsp -->
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'input.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
This is my JSP page. <br>
<form action="people.jsp" method="get">
<input type="text" name="name">
<input type="submit" value="提交">
</form>
</body>
</html>
<!-- people.jsp -->
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'people.jsp' starting page</title>
</head>
<body>
This is my JSP page. <br>
<%!
StringBuffer personList;
int count;
public void judge(){
personList=new StringBuffer();
}
public void addPerson(String p){
if(count==0){
judge();
personList.append(p);
}else{
personList.append(","+p);
}
count++;
}
%>
<%
String name=request.getParameter("name");
if(name==null||name.length()==0||name.length()>10){
%><jsp:forward page="input.jsp"/><%
}
addPerson(name);
out.print(count+"<BR>");
out.print(personList);
%>
</body>
</html>