本节讲述如何通过循环生成一系列超级链接,且这些超级链接可以分别链接到不同的页
面结果。
具体来看一个示例:
实现效果:
完成教师信息列表导航与详情页面设计。见图1、图2所示。

图1

图2
分析:
第一步:两个页面的数据来源。
第二步:将数据进行呈现。
设计思路:
(1)编写类
编写一个实体类:TeacherInfo
包括:编号、姓名、年龄、性别、职称等字段。
编写一个管理类:ManagerTeachers
提供至少两个方法:
①获取全部教师数据。(此处假设5个教师数据已经从数据库获得,并作为5个TeacherInfo对象全部由ArrayList管理)getAllTeachers方法即是通过ArrayList获得所有的教师数据。
②根据教师编号查询教师其他信息。
getTeacher方法通过编号在ArrayList中查询,获得编号对应的教师详情信息。
(2)编写页面
设计第一个页面用于显示这5个教师姓名,并且提供超级链接:可进一步查看详情
设计第二个页面用于显示详情。详情包括:编号、姓名、年龄、性别、职称等。
具体项目文件结构和源码:

实体类:
Teacherinfo.JAVA:
管理类(两个方法)
①获取全部教师数据。
②根据教师编号查询教师其他信息。
源码:
Teacherinfo.JAVA:
package payroll;
public class Teacherinfo implements JAVA.io.Serializable {
private String tno;
private String teachername;
private Integer age;
private String sex;
private String title;
public Teacherinfo() {
}
public Teacherinfo(String tno) {
this.tno = tno;
}
public Teacherinfo(String tno, String teachername, Integer age, String sex, String title) {
this.tno = tno;
this.teachername = teachername;
this.age = age;
this.sex = sex;
this.title = title;
}
public String getTno() {
return this.tno;
}
public void setTno(String tno) {
this.tno = tno;
}
public String getTeachername() {
return this.teachername;
}
public void setTeachername(String teachername) {
this.teachername = teachername;
}
public Integer getAge() {
return this.age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getSex() {
return this.sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getTitle() {
return this.title;
}
public void setTitle(String title) {
this.title = title;
}
}
ManageTeachers.JAVA源码:
注意:教师信息通过一个Arraylist存储。
package payroll;
import JAVA.util.ArrayList;
public class ManageTeachers {
ArrayList<Teacherinfo> teachers;
public ArrayList<Teacherinfo> getAllTeachers(){
teachers = new ArrayList<Teacherinfo>();
teachers.add(new Teacherinfo("00001","张三",27,"男","副教授") );
teachers.add(new Teacherinfo("00002","李四",35,"男","教授"));
teachers.add(new Teacherinfo("00003","王五",47,"女","副教授"));
teachers.add(new Teacherinfo("00004","赵六",29,"男","教授"));
teachers.add(new Teacherinfo("00005","孙七",28,"男","副教授"));
return teachers;
}
public Teacherinfo getTeacher(String sno){
Teacherinfo t=null;
for(Teacherinfo teacher:teachers){
if (teacher.getTno().equals(sno))
{t=teacher;break;}
}
return t;
}
public static void main(String[] args) {
}
}
思考:
此处的数据来源是集合对象,如果更换成数据库中数据,此程序在更改时,需要修改哪
些代码?哪些代码可以保持不变?
teachers.jsp源码:
显示教师列表时,可将教师编号作为每一行的超级链接中的参数。
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="payroll.*" %>
<%@page import="JAVA.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/
html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<%
ManageTeachers m= new ManageTeachers();
ArrayList<Teacherinfo> teachers = m.getAllTeachers();
%>
<table>
<tr>
<th>序号</th>
<th>姓名</th>
<th>详情</th>
</tr>
<%
for( int i=0 ;i<teachers.size();i++){
%>
<tr>
<td>第<%=i+1 %>个<br></td>
<td><%=teachers.get(i).getTeachername()%></td>
<td><a href =teacher.jsp?tno=<%=teachers.get(i).getTno() %>>进入</a></td>
</tr>
<%
}
%>
</table>
</body>
</html>
teacher.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="payroll.*" %>
<%@page import="java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/
html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<link href ="css/page.css" rel="stylesheet" type="text/css" />
</head>
<body>
<%
request.setCharacterEncoding("UTF-8");
String tno = request.getParameter("tno");
%>
<%
ManageTeachers m= new ManageTeachers();
ArrayList<Teacherinfo> teachers = m.getAllTeachers();
Teacherinfo teacher= m.getTeacher(tno);
%>
您的编号是:<%=teacher.getTno()%><br>
您的姓名是:<%=teacher.getTeachername() %><br>
您的年龄是:<%=teacher.getAge() %><br>
您的性别是:<%=teacher.getSex() %><br>
您的职称是:<%=teacher.getTitle() %><br>
<a href =teachers.jsp>>返回教师列表</a>
</body>
</html>
测试题
完成班级学生信息列表导航与详情页面设计。要求:
(1)编写类
编写一个类Student,位于pack包中,具有6个属性:sno、sname、age、sex、sclass、photo
编写一个管理类:ManagerStudents
提供至少两个方法:
①获取全部教师数据。(此处假设5个学生数据(本班的5个同学数据)已经从数据库获得,并作为5个Studnet对象全部由ArrayList管理)getAllStudents方法即是通过ArrayList获得所有的教师数据。
②根据学生编号查询学生全部信息。
getStudnet方法通过编号在ArrayList中查询,获得编号对应的学生详情信息。
(2)编写页面
设计第一个页面用于显示这5个学生师姓名,并且提供超级链接:可进一步查看详情
设计第二个页面用于显示详情。详情包括:编号、姓名、年龄、性别、班级、个人照等。
其中,个人照的实现细节提示:
<!--全部。使用统一类型格式的照片例如png,
放置在WebContent->img文件夹中
将照片的文件名全部设为相应的编号值,注意扩展名也需要 ,例如00001.png
-->
<%
String s = "00001";
s = s + ".png";
%>
<img alt="" height=100px width=70px src="img/<%=s%>">
本页面内容全部由作者姚远原创,请使用者写明出处后再行使用。

