實驗二 JSP語法
一、 實驗目的
1. 掌握JSP局部變量和成員變量的使用
2. 掌握JSP程序片和表達式的使用
3. 掌握JSP指令標記和動作標記的使用
二、 實驗重點和難點
1. 實驗重點:成員變量、指令標記、動作標記
2. 實驗難點:指令標記、動作標記
三、 實驗內容
1. 程序片應用實例
2. 成員變量應用實例
3. include指令標記應用實例
4. 動作標記應用實例
四、 實驗方案
1. 編寫1個JSP頁面,在JSP頁面中使用Java程序片輸出26個小寫的英文字母表。
參考代碼如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>practiceOne</title>
</head>
<body>
<%
for(char x='a';x<='z';x++){
out.println(" "+x);
}
%>
</body>
</html>
2. 在瀏覽器中輸出大小爲15*10表格,頁面效果如圖所示。
參考代碼如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>practiceTwo</title>
</head>
<body>
<%
out.print("<table border=1>");
for(int i=1;i<=10;i++){
out.print("<tr>");
for(int j=1;j<=15;j++){
out.print("<td>");
out.print(i*j);
out.print("</td>");
}
out.print("</tr>");
}
out.print("</table>");
%>
</body>
</html>
3. 利用成員變量被所有客戶共享這一性質,實現一個簡單的計數器,頁面效果如圖所示。
運行效果如圖:
參考代碼如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
歡迎訪問本網站!<br>
<%! int i=0;%>
<%
i++;
out.print("您是第"+i+"個訪問本站的客戶。");
%>
</body>
</html>
4. 編寫3個JSP頁面index.jsp、main.jsp和head.jsp,在index.jsp和main.jsp頁面中分別使用include指令靜態嵌入head.jsp(導航欄)。導航欄head.jsp的運行效果如圖所示。
參考代碼如下:
(1) head.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div>
<ul>
<li style="float: left;width:50px"><a>首頁</a></li>
<li style="float: left;width:50px"><a>體育</a></li>
<li style="float: left;width:50px"><a>熱點</a></li>
<li style="float: left;width:50px"><a>股市</a></li>
<li style="float: left;width:50px"><a>經濟</a></li>
</ul>
</div>
</body>
</html>
(2) index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%@include file="head.jsp" %><br>
<p align="left">網頁首頁面</p>
</body>
</html>
(3) main.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%@include file="head.jsp" %><br>
<p align="left">網頁主頁面</p>
</body>
</html>
5. 編寫3個JSP頁面:input.jsp、first.jsp和second.jsp,將3個JSP文件保存在同一個Web服務目錄中,input.jsp使用include動作標記加載first.jsp和second.jsp頁面。first.jsp頁面可以畫出一個表格,second.jsp頁面可以計算出兩個正整數的最大公約數。當first.jsp被加載時獲取input.jsp頁面中include動作標記的param子標記提供的表格的行數和列數,當second.jsp被加載時獲取input.jsp頁面中include動作標記的param子標記提供的兩個正整數的值。
參考代碼如下:
(1) input.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
使用include動作標記加載first.jsp頁面,畫出一個表格。<br>
<jsp:include page="first.jsp">
<jsp:param value="10" name="row"/>
<jsp:param value="20" name="col"/>
</jsp:include>
<br>
使用include動作標記加載second.jsp頁面,求兩個最大正整數的公約數。<br>
<jsp:include page="second.jsp">
<jsp:param value="64" name="firstNumber"/>
<jsp:param value="48" name="secondNumber"/>
</jsp:include>
</body>
</html>
(2) first.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
int row=Integer.parseInt(request.getParameter("row"));
int col=Integer.parseInt(request.getParameter("col"));
out.print("<table border=1>");
for(int i=1;i<=row;i++){
out.print("<tr>");
for(int j=1;j<=col;j++){
out.print("<td>");
out.print(i*j);
out.print("</td>");
}
out.print("</tr>");
}
out.print("</table>");
%>
</body>
</html>
(3) second.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
int firstNumber=Integer.parseInt(request.getParameter("firstNumber"));
int secondNumber=Integer.parseInt(request.getParameter("secondNumber"));
out.print("<br>"+firstNumber+"和"+secondNumber+"的最大公約數是:");
if(firstNumber<secondNumber){
int a=firstNumber;
firstNumber=secondNumber;
secondNumber=a;
}
while(firstNumber%secondNumber!=0){
int temp=firstNumber%secondNumber;
firstNumber=secondNumber;
secondNumber=temp;
}
out.print(secondNumber);
%>
</body>
</html>
6. 編寫3個JSP頁面:login.jsp、validate.jsp和success.jsp,login.jsp輸入用戶名與密碼信息,提交給validate.jsp進行用戶驗證,如果驗證爲合法用戶(用戶名:tom,密碼:jenny)則轉到(forward動作標記)success.jsp頁面,否則轉到login.jsp頁面重新登錄。
(1) login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="validate.jsp">
用戶名:<input type="text" name="name"><br>
密碼:<input type="password" name="password"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
(2) validate.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String name=request.getParameter("name");
String password=request.getParameter("password");
if("tom".equals(name)&&"jenny".equals(password)){
%>
<jsp:forward page="success.jsp"/>
<%
}else{
%>
}<jsp:forward page="login.jsp"/>
<%
}
%>
</body>
</html>
(3) success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
登錄成功!
</body>
</html>
五、課外實驗
1. 在頁面上由小到大顯示字符串“WELCOME!”。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String str="WELCOME!";
for(int i=0;i<str.length();i++){
%>
<font size=<%=i %>>
<%
out.print(str.charAt(i));
%>
</font>
<%
}
%>
</body>
</html>
JSP實驗二
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.