当前位置: 代码迷 >> J2EE >> jsp小有关问题求教
  详细解决方案

jsp小有关问题求教

热度:12   发布时间:2016-04-22 03:01:29.0
jsp小问题求教
Java code
<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循环中吗

------解决方案--------------------
程序中把大括号分开写是什么原理,?
如果她不分开,系统会将其当做是java代码,但那些标签是html呀,所以就会报错了

jsp编译后会知道那table中的代码块是在while循环中吗
当然知道了,因为有成对的<% 和%>,系统会把他们之间的代码当做是java代码

------解决方案--------------------
可以这么理解jsp省略了servlet里的out.print()。html标签就是被out.print出来的。<%%>就是告诉tomcat这里要开始写html了。

jsp其实是被转换成servlet来执行的,可以在Tomcat6.0\work\Catalina\localhost\对应的工程下找到生成的servlet。看一下其源代码就知道了。
------解决方案--------------------
你记到一点就是java代码要用<%%>括起来,而其他的html代码就要写在<%%>之外
<tr>
<td><%=rs.getInt("id") %></td>
<td><%=rs.getString("cont") %></td>
</tr>
上面的代码就要和java代码分离开来。发送请求时,jsp会转换成servlet,最终在service()方法里显示转换后的所有java代码,原来的java代码照写,而html代码则用out.write()语句输出
------解决方案--------------------
大括号不分开写怎么写?while循环里面夹杂着html代码,说明这段代码是循环输出表格的行的。

在web容器里面,是先解析jsp,把他解析成html代码之后返回给浏览器的,在JSP编译的时候JSP它不知道你生成出来的html代码是什么,生成完之后到浏览器上一看,你就知道了……
  相关解决方案