实验二 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实验二
最新推荐文章于 2024-09-01 00:00:00 发布
1614

被折叠的 条评论
为什么被折叠?



