<table border=1>
<%
while(rs.next())
{
%>
<tr>
<td><%=rs.getInt("id") %></td>
<td><%=rs.getString("cont") %></td>
</tr>
<%
}
 %>
 </table></body><%
rs.close();
stmt.close();
conn.close();
 %>程序中把大括号分开写是什么原理,jsp编译后会知道那table中的代码块是在while循环中吗

解决方案 »

  1.   

    程序中把大括号分开写是什么原理,?
    如果她不分开,系统会将其当做是java代码,但那些标签是html呀,所以就会报错了jsp编译后会知道那table中的代码块是在while循环中吗
    当然知道了,因为有成对的<% 和%>,系统会把他们之间的代码当做是java代码
      

  2.   

    可以这么理解jsp省略了servlet里的out.print()。html标签就是被out.print出来的。<%%>就是告诉tomcat这里要开始写html了。jsp其实是被转换成servlet来执行的,可以在Tomcat6.0\work\Catalina\localhost\对应的工程下找到生成的servlet。看一下其源代码就知道了。
      

  3.   

    你记到一点就是java代码要用<%%>括起来,而其他的html代码就要写在<%%>之外
    <tr>
            <td><%=rs.getInt("id") %></td>
            <td><%=rs.getString("cont") %></td>
            </tr>
    上面的代码就要和java代码分离开来。发送请求时,jsp会转换成servlet,最终在service()方法里显示转换后的所有java代码,原来的java代码照写,而html代码则用out.write()语句输出
      

  4.   

    大括号不分开写怎么写?while循环里面夹杂着html代码,说明这段代码是循环输出表格的行的。在web容器里面,是先解析jsp,把他解析成html代码之后返回给浏览器的,在JSP编译的时候JSP它不知道你生成出来的html代码是什么,生成完之后到浏览器上一看,你就知道了……