1. 程式人生 > >J2EE 2.JSP語法

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。

  1. inputName.jsp的具體要求

該頁面有一個表單,使用者通過該表單輸入自己的姓名並提交給people.jsp頁面。

  1. 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>