求助!高分相送~

saviourlee 2003-05-25 11:07:38
我在做一个考试系统。老师的要求是每个页面显示一道选择题。那20道题岂不要20个jsp页面? 有没有简单一点的办法?
btw: 老师还要求能回到原来的所选择的答案(cookie)

要是哪位大侠有参考代码就更佳!
我的email: saviour_2001@163.com



多谢!
望不吝赐教!
...全文
7 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
flystar326 2003-05-26
不需要20个页面了,我觉得可以参照分页的做法
回复
leshui 2003-05-26
分页就可以了
只要是有规律的东西
都可以用循环来做
回复
asdmonster 2003-05-26
怎么现在流行要代码?
回复
satyrping 2003-05-26
看这个例子,肯定对你又帮助
productList.jsp :

<!-- JSP Directives -->
<%@ page errorPage="myError.jsp?from=productList.jsp"
%>
<html>
<head>
<title>Product List</title>
</head>
<body>
<basefont face="Arial">
<jsp:useBean id="pBean" scope="session" class="bean.ProductBean"/>
<!-- Build table of products -->
<table align="center" width="600">
<tr>
<td width="20%"><b>Product ID</b></td>
<td width="30%"><b>Description</b></td>
<td width="35%"><b>Manufacturer</b></td>
<td width="15%"><b>Price</b></td>
</tr>
<%
int rowCount = 0;
int startRow = 0;
if (pBean.populate()) {
String start = (String) request.getParameter("start");
if (start != null) {
startRow = new Integer(start).intValue();
pBean.setStartRow(startRow);
}
while (rowCount < 10 && pBean.nextRow() > 0) {
rowCount++;
%>
<tr>
<td width="20%"><jsp:getProperty name="pBean" property="prodID"/></td>
<td width="30%"><jsp:getProperty name="pBean" property="prodDesc"/></td>
<td width="35%"><jsp:getProperty name="pBean" property="prodManuf"/></td>
<td width="15%"><jsp:getProperty name="pBean" property="prodPrice"/></td>
</tr>
<%
}
}
%>
<!-- Display the back and next links -->
<tr>
<td colspan="2" align="center">
<br><a href="?start=<%= (startRow > 9) ? startRow - 10 : 0%>">Back</a>
</td>
<td colspan="2" align="center">
<br><a href="?start=<%= pBean.getCurrentRow() %>">Next</a>
</td>
</tr>
</table>
</body>
</html>


ProductBean.java :

package bean;

import java.util.*;
import java.sql.*;

public class ProductBean implements java.io.Serializable {
/* Member Variables */
private String prodID;
private String prodDesc;
private String prodManuf;
private float prodPrice;
/* ArrayLists to hold recordsets */
private List prodIDList, prodDescList, prodManufList, prodPriceList;
/* Helper Variables */
private int currentRow;
private int rowCount;
private Connection db = null;
/* Constructor */
public ProductBean() {
/* Initialize bean properties */
setProdID("");
setProdDesc("");
setProdManuf("");
setProdPrice(0.00f);
/* Initialize arrayLists to hold recordsets */
prodIDList = new ArrayList();
prodDescList = new ArrayList();
prodManufList = new ArrayList();
prodPriceList = new ArrayList();
/* Initialize helper variables */
currentRow = 0;
rowCount = 0;
/* Get database connection */
dbConnect();
}
/* Get Database Connection */
private void dbConnect() {
if (db == null) {
try {
Class.forName("org.gjt.mm.mysql.Driver");
db = DriverManager.getConnection("jdbc:mysql://localhost:3306/catalog","root","appleping");
}
catch (Exception e) {
System.out.println("Error Connecting to catalog DB: "+ e.toString());
}
}
}
/* Accessor Methods */
public String getProdID() {
return prodID;
}
public void setProdID(String _prodID) {
prodID = _prodID;
}
public String getProdDesc() {
return prodDesc;
}
public void setProdDesc(String _prodDesc) {
prodDesc = _prodDesc;
}
public String getProdManuf() {
return prodManuf;
}
public void setProdManuf(String _prodManuf) {
prodManuf = _prodManuf;
}
public float getProdPrice() {
return prodPrice;
}
public void setProdPrice(float _prodPrice) {
prodPrice = _prodPrice;
}
/* Read-only attribute */
public int getCurrentRow() {
return currentRow;
}
/* Populate Record List */
public boolean populate() {
/* If prodIDList is empty, then execute the query to populate it */
if (prodIDList.isEmpty()) {
try {
/* Execute Query */
Statement s = db.createStatement();
ResultSet rs = s.executeQuery("select * from product");
prodIDList.clear();
prodDescList.clear();
prodManufList.clear();
prodPriceList.clear();
rowCount = 0;
while (rs.next()) {
prodIDList.add(rs.getString("id"));
prodDescList.add(rs.getString("description"));
prodManufList.add(rs.getString("manuf"));
prodPriceList.add((new Float(rs.getFloat("price"))));
rowCount++;
}
}
catch (Exception e) {
System.out.println("Error populating productBean: "+ e.toString());
return false;
}
}
/* Return status of operation (assume success if it made it this far) */
return true;
}
/* Reset current row */
public void setStartRow(int _start) {
if (_start < rowCount) {
currentRow = _start;
}
}
/* Move to next row */
public int nextRow() {
if (currentRow == rowCount) {
currentRow = 0; // Reset for next page request
return 0; // return 0 to indicate end of recordset
}
/* Populate bean properties with current row */
setProdID((String)prodIDList.get(currentRow));
setProdDesc((String)prodDescList.get(currentRow));
setProdManuf((String)prodManufList.get(currentRow));
Float price = (Float)prodPriceList.get(currentRow);
setProdPrice(price.floatValue());
currentRow++;
/* return currentRow*/
return currentRow;
}
}
回复
vidaboy 2003-05-26
不需要
只需要当点击下一页时,调出下一道题的文本即可以了。
代码暂时没有
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2003-05-25 11:07
社区公告
暂无公告