这是刚才我帮一个朋友调式的一个页面:
但是不建议把操作数据库的代码放到jsp里面,应该用javabean或者servlet封状起来。
<%--发表通知首页--%><%@ page language="java" import="java.sql.*"%>
<%@ page contentType="text/html;charset=GB2312"%><Head>
<TITLE>广东工业大学--成人教育学院最新通知列表</TITLE>
<link href="../css/guestbook.css" type=text/css rel=stylesheet>
</Head>
<BODY bgColor=#999999>
<center>
<font size=5 color=yellow><b>成人教育学院最新通知列表</b></font><br>
<table cellSpacing=3 cellPadding=5 width=600  border=2> 
<tr>
  <td class=font2 align=middle width=100 ><font size="3" color=black><b>部门</b></font></td>
  <td class=font2 align=middle width=100 ><font size="3" color=black><b>标题</b></font></td>
  <td class=font2 align=middle width=100 ><font size="3" color=black><b>时间</b></font></td>
</tr><%!
 public static String UnicodeToChinese(String s){
  try{
     if(s==null||s.equals("")) return "";
     String newstring=null;
     newstring=new String(s.getBytes("ISO8859_1"),"gb2312");
     return newstring;
    }
  catch(Exception e)
  {
  return s;
  }
  }%>
<% 
try {
Connection sqlCon; //数据库连接对象 
Statement sqlStmt; //SQL语句对象 
ResultSet sqlRst; //结果集对象 
String strCon; //数据库连接字符串 
String strSQL; //SQL语句 
int intPageSize; //一页显示的记录数 
int intRowCount; //记录总数 
int intPageCount; //总页数 
int intPage; //待显示页码 
String strPage; 
int i; 
intPageSize =8; 
strPage = request.getParameter("num"); if(strPage==null){
intPage = 1; 

else{
intPage = java.lang.Integer.parseInt(strPage); 
if(intPage<1) intPage = 1; 
} //连接数据库
Class.forName("oracle.jdbc.driver.OracleDriver");
sqlCon = DriverManager.getConnection("jdbc:oracle:thin:@chjxy:1521:orasv","chjxy", "anther");
DatabaseMetaData conMD = sqlCon.getMetaData(); 
sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); 
strSQL = "select fID,fDepartment,fTitle,fDATETIME from T_wzInform";
sqlRst = sqlStmt.executeQuery(strSQL); 
sqlRst.last(); intRowCount = sqlRst.getRow(); 
intPageCount = (intRowCount+intPageSize-1) / intPageSize; 
if(intPage>intPageCount) intPage = intPageCount; 
if(intPageCount>0){ 
 sqlRst.absolute((intPage-1) * intPageSize + 1); 
i = 0; 

while(i<intPageSize && !sqlRst.isAfterLast())
{
 %>         <tr>
         <td><%=new String(sqlRst.getString("fDepartment").getBytes("ISO8859_1"),"gb2312")%></td>
         <td><a href="view.jsp?id=<%=sqlRst.getString("fId")%>"><%=UnicodeToChinese(sqlRst.getString("fTitle"))%></a></td>
         <td><%=sqlRst.getString("fDATETIME")%></td>
         </tr><%
        sqlRst.next();
        i++;
       }}
%></table> <center><p><a href="input8.jsp" class=font2><font size=3 color=blue>[发表通知]</font></a>
<a href="#" class=font2><font size=3 color=blue>[删除通知]</font></a>
<a href='#' class=font2><font size=3 color=blue>[查询通知]</font></a>
<a href='#' class=font2><font size=3 color=blue>[修改密码]</font></a> <%--显示页码--%>
<p>
第<%=intPage%>页 共<%=intPageCount%>页 <%if(intPage<intPageCount){%><a href="index11.jsp?num=<%=intPage+1%>">下一页</a><%}%> <%if(intPage>1){%><a href="index11.jsp?num=<%=intPage-1%>">上一页</a><%}%> <%
sqlRst.close(); 
sqlStmt.close(); 
sqlCon.close(); 
}
catch(Exception e){out.println(e);}
%>
</center> 
</BODY>

解决方案 »

  1.   

    谢谢笑着悲伤!
    我现在就是不明白怎样在servlet中输出WEB页面(如:表格)给调用这个servlet的jsp显示?不知道怎样重新输出页面给原来的那个JSP?
    用getServletContext.getRequestDispatcher().forward()可以吗?
    那如果用sendRedirect()行吗?
    我是新手。没用过这些方法。不知行不行呀?
      

  2.   

    在jsp中的写法我明白,现在就是搞不懂怎样先用JSP调用servlet,然后再用servlet查询并输出WEB页面(如:表格)给调用这个servlet的jsp显示?应该用哪种重定向方法输出WEB页面给原来那个调用servlet的JSP呢?
      

  3.   

    使用bean
    servlet里面
    request.setAttribute("记录集名称",记录集);web页面里面
    <jsp:useBean id="记录集名称" class="类名" scope="request"/>
      

  4.   

    我不想用<jsp:useBean>这种形式。我想直接用servlet调用javabean,然后把表格输出到JSP中的某个具体位置显示。请问该怎么做呀?
      

  5.   

    你可以把数据封装到数组里面,然后用session传递给jsp。
      

  6.   

    用session不太好吧?那整个项目用户比较多,将用到很多很多的session,对性能会影响很大吗?还有没有其它的方法呀?