输出方式尽量不要用out.println()这样会让html和java紧密耦合在一块 显得程序很乱而且不易调试 一般输出用<%=%>

下面两种输出方式比较---输出10x10表格

table1.jsp

<html>
  <head>
    <title>表格</title>
   </head>
   <body>
   <%
   int rows=10;//行数
   int cols=10;//列数
   out.println("<table border=\"1\"width=\"100%\">");//输出表格开始标签
   for(int x=0;x<rows;x++){                             //循环输出行标签
   out.println("<tr>");                             //输出行开始标签
   for(int y=0;y<cols;y++)                          
   {out.println("<td>"+(x*y)+"</td>"); 
 
   }
   out.println("</tr>");
   }
   out.println("</table>");  //输出表格结束标签
     %>
     </body>
 </html>

 table2.jsp

<html>
  <head>
    <title>表格</title>
   </head>
   <body>
   <table border="1" width="100%">              <!--输出表格开始签-->
   <%
   int rows=10;//行数
   int cols=10;//列数
   for(int x=0;x<rows;x++){                             //循环输出行标签
  %>
  <tr>              <!--输出行开始签-->
<%
   for(int y=0;y<cols;y++)                          
   {
	  %>
	  <td><%=(x*y)%></td> <!--输出列表签-->
 <%
   }
 %>
   </tr>
  <% 
  }
 %>
   </table>  <!--输出表格结束签-->
   
     </body>
 </html>

 table2中使html和java代码进行分离,以后便于调试,看的不混乱