jsp頁面基本結構、動作標記、指令標記

一、實驗目的

2_1本實驗的目的是掌握怎樣在JSP頁面中使用成員變量,怎樣使用Java程序片和Java表達式。
2_2 本實驗的目的是掌握怎樣在JSP頁面中使用include指令在JSP頁面中靜態插人一個文件的內容。
2_3本實驗的目的是掌握怎樣在JSP頁面中使用include標記動態加載文件;使用forward動作標記實現頁面的轉向。

二、實驗步驟

實驗2_1:編寫兩個JSP頁面,名字分別爲input.jsp和people.jsp.
input.jsp的具體要求:該頁面有一一個表單,用戶通過該表單輸人自己的姓名並提交給people.jsp頁面。
people.jsp的具體要求:
(1)JSP頁面有名字爲personList,類型是StringBuffer以及名字是count,類型爲int的成員變量。
(2)JSP頁面有publicvoidjudge()方法,該方法負責創建personList對象,當count的值是0時,judge ()方法創建personList對象。
(3) JSP頁面有public void addPerson(String p)的方法,該方法將參數p指定的字符串尾加到成員變量personList,同時將count作自增運算。
(4)JSP頁面在程序片中獲取input.jsp頁面提交的姓名,然後調用judge()創建personList對象,調用addPerson方法將用戶的姓名尾加到成員變量personList。
(5)如果input.jsp頁面沒有提交姓名,或姓名含有的字符個數大於10,就使用jsp:forwardpages"要轉向的頁面"/標記將用戶轉到input.jsp頁面。
(6)通過Java表達式輸出personList和count的值。

**實驗2_2:**編寫一個JSP頁面includeHello.jsp,使用include指令在JSP頁面中靜態插入hello.txt的內容。要求用“記事本”編寫一個txt文件hello. txt。 hello. txt的每行有若千個英文單詞,這些單詞之間用空格分隔,每行之間用“<
”分隔,如下:
hello. txt
bird apple boy red moon


shop throw ball book welcome
includeHello.jsp使用page指令設置contentType屬性的值爲" text/plain",使用include指令靜態插人hello.txt文件。
**實驗2_3:**編寫4個JSP頁面: one.jsp. two.jsp、three.jsp和error.jsp。 one.jsp、two.jsp和three.jsp頁面都含有一個導航條,以便讓用戶方便地單擊超鏈接訪問這三個頁面。要求這三個頁面通過使用include動作標記動態加載導航條文件head.txt。導航條文件head.txt的內容如下:
head. txt
<%@ page contentType = “text/html;charset = gb2312” %>






one.jsp頁面 two.jsp頁面 three.jsp頁面

one.jsp的具體要求: 要求one.jsp頁面有一個表單,用戶使用該表單可以輸人一個1~100之間的整數,並提交給本頁面;如果輸人的整數在50~100之間(不包括50)就轉向three.jsp;如果在1~50之間(包括50)就轉向two.jsp;如果輸人不符合要求的整數,比如120,就轉向error,jsp。要求forward標記在實現頁面轉向時,使用param子標記將整數傳遞到轉向的two.jsp或three.jsp頁面,將有關輸人錯誤的信息傳遞到轉向的error.jsp頁面。 two.jsp、three.jsp和error.jsp的具體要求: 要求two.jsp和three.jsp能輸出one.jsp傳遞過來的值,並顯示--幅圖像,該圖像的寬和高剛好是one.jsp頁面傳遞過來的值。error頁面能顯示有關錯誤信息和一.幅警告出錯的圖像。 # 三、參考代碼

實驗2_1參考代碼:
Input.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <body bgcolor = cyan><FONT size = 3>
    <form action="people.jsp" method=get name =form>
    	請輸入姓名:<input type="text" name="name">
    	<br><input type="submit" value="送出" name = submit>
    </form>
  </body>
</html>

People.jsp

<%@ page language="java"  contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  
    <body bdcolor = yellow><font Size = 3>
    我的 JSP page <br>
    <%! int count;
    	StringBuffer personList;    	
    	public void judge(){
    		if(count==0){
    			personList=new StringBuffer();
    		}
    	}
    	public void addPerson(String p){
    		if(count==0){
    			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"/><%
    	}
    	judge();
    	addPerson(name);
    	
     %>
     <br> 目前共有<%= count %>人瀏覽量該頁面,他們的名字是:
     <br> <%= personList %>
     </font>
  </body>
</html>

實驗2_2參考代碼:
includehello.jsp

<%@ page language="java"  contentType="text/plain; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html><body><font size=4 color=blue>
	<%@include file="hello.txt" %>
</font></body></html>

實驗2_3參考代碼:
one.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<head>
	<jsp:include page = "head.txt"/>
</head>
<html>

<body bgcolor = yellow>
	<form action = "" method = get name = form>
	請輸入1-100之間的整數:<input type = "text" name ="number">
	<br> <input type = "submit" value ="送出" name ="submit" >
	</form>
<%String num = request.getParameter("number");
	if(num == null)
		num= "0" ;
	try{ int n= Integer.parseInt(num);
	if(n>=1&&n<=50){
%>		<jsp:forward page= "two.jsp">
			<jsp:param name = "number" value= "<%= n %>"/>
		</jsp:forward>

<% }

	else if(n>50&n<=100){

%>		<jsp:forward page = "three.jsp" >
			<jsp:param name = "number" value= "<%= n %>"/>
		</jsp:forward >
<% }

	else if(n> 100){
%>		<jsp:forward page = "error.jsp" >
			<jsp:param name = "number" value= "<%= n %>"/>
		</jsp:forward >
<% 		}
	}
	catch(Exception e){
	%>	<jsp:forward page = "error.jsp" >
			<jsp:param value="<%= e.toString()%>" name="mess"/>
		</jsp:forward >
		
<% }
%>
</body>
</html>

two.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<head>
	<jsp:include page = "head.txt"/>
</head>
<html>
<body bgcolor = yellow>
	<p><font size = 2 color = blue>This is two.jsp</font>
	<font size=3>
	 <% String s = request.getParameter("number");
	 	out.println("<BR> 純遞過來的值是"+ s);
	 %>
	 <BR><img src = "a.jpg" with = "<%= s %>" height = "<%= s%>"></img>
	</font>

</body>
</html>

three.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<head>
	<jsp:include page = "head.txt"/>
</head>
<html>
<body bgcolor = yellow>
	<p><font size = 2 color=red>This is three.jsp</font>
	 <font size = 3>
	 <% String s =request.getParameter("number");
	 	out.println("<BR> 傳遞過來的值是"+s);
	 %>
	<BR><img src = "a.jpg" width = "<%= s %>" height = "<%= s%>"></img>
	</font>
	

</body>
</html>

error.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<head>
	<jsp:include page = "head.txt"/>
</head>
<html>
<body bgcolor = yellow>
 <p><font size =5 color = red>This is error.jsp</font>
  <font size=2>
  <% String s = request.getParameter("mess");
  	out.println("<BR>傳遞過來的錯誤信息"+s);
  %>
 <BR><img src = "back.jpg" width = "120" height = "120"></img>
	</font>

</body>
</html>

四、實驗結果
實驗2_1結果截圖:
在這裏插入圖片描述
在這裏插入圖片描述
(漢字亂碼問題還不知怎麼解決,有知道的歡迎告知,不勝感激)

實驗2_2結果截圖:
在這裏插入圖片描述

實驗2_3結果截圖:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

五、討論

1.一個JSP頁面可由普通的HTML標記、JSP標記、成員變量和方法的聲明、Java程序片和Java表達式組成。JSP引擎把JSP頁面中的HTML標記交給用戶的瀏覽器執行顯示,負責處理JSP標記、變量和方法,同時負責運行Java程序片、計算Java表達式,並將需要顯示的結果發送給用戶的瀏覽器。
2.JSP頁面中的成員變量是被所有用戶共享的變量。Java程序片可以操作成員變量,任何–個用戶對JSP頁面成員變量操作的結果,都會影響其他用戶。
3.如果多個用戶訪問一個JSP頁面,那麼該頁面中的Java程序片就會被執行多次,分別運行在不同的線程中,即運行在不同的時間片內。運行在不同線程中的Java程序片的局部變量互不干擾,即一個用戶改變Java程序片中的局部變量的值不會影響其.他用戶的Java程序片中的局部變量。
4.page指令用來定義整個JSP頁面的一些屬性和這些屬性的值。比較常用的兩個屬性是contentType和import。page 指令只能爲contentType指定一個值,但可以爲import屬性指定多個值。
5.include指令標記是在編譯階段就處理所需要的文件,被處理的文件在邏輯和語法上依賴於當前JSP頁面,其優點是頁面的執行速度快;而include動作標記是在JSP頁面運行時才處理文件,被處理的文件在邏輯和語法上獨立於當前JSP頁面,其優點是可以使用param子標記更靈活地處理所需要的文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章