JSP中使⽤哪种输出⽅式更好?
提问:JSP中使⽤哪种输出⽅式更好?
已经学习过使⽤ out.println() 和 <%=%>输出的形式,那么在开发中使⽤哪种输出⽅式更好呢?
回答:
在JSP的开发中,实际上就是在HTML中加⼊了⼀些控制及输出的语句,所以在输出时为了使HTML代码和Java代码相分离,最好的做法就是只输出右JSP产⽣的变量,那么这时使⽤表达式输出就⽐使⽤ out.println()更加⽅便。
在说明两者的优点之前,先来看⼀下⼀个题⽬:“输出10以内的乘法⼝诀”,下⾯是⽤out.println()和表达式完成这样的输出。
使⽤out.println()输出:
<%@ page contentType="text/html;charset=UTF-8"%>
<html>
<head><title>乘法⼝诀</title></head>
<body>
使⽤out.println()打印乘法⼝诀:<br/>
<%
int cols,rows; //列、⾏
out.println("<table border='1'>");
for(cols=1;cols<10;cols++){
out.println("<tr>");
for(rows=1;rows<=cols;rows++){
out.println("<td>"+cols+"*"+rows+"="+cols*rows+"</td>");
}
jsp页面输出的三种方式
out.println("</tr>");
}
out.println("</table>");
%>
</body>
</html>
分析:这样的输出会使程序代码混乱,因为是将HTML和JAVA代码紧密耦合在⼀起,以后的调试会很⿇烦,所以最好的做法是将HTML代码和JAVA代码进⾏分离。
使⽤<%= %>表达式输出:
<%@ page contentType="text/html;charset=UTF-8"%>
<html>
<head><title>乘法⼝诀</title></head>
<body>
使⽤<%=%>表达式打印乘法⼝诀:<br/>
<table border='1'>
<%
int cols,rows; //列、⾏
for(cols=1;cols<10;cols++){
%>
<tr>
<%
for(rows=1;rows<=cols;rows++){
%>
<td><%=cols%>*<%=rows%>=<%=cols*rows%></td>
<%
}
%>
</tr>
<%
}
%>
</table>
</body>
</html>
分析:这样的程序代码很好的达到了HTML代码和JAVA代码分离的作⽤,这样的代码以后再使⽤类似于Dreamweaver这样的⽹页设计⼯具调整时也⾮常⽅便。
但是,有些读者可能会认为以上的代码太复杂了,要写很多Scriptlet代码,看起来会有些乱,在这⾥笔者给读者这样的⼀个建议:“⼀定要收悉以上的代码编写,在以后的学习中将会对这种代码进⾏不断的优化,使之更容易读懂,⼀定记住,绝对不能使⽤out.println()进⾏输出。”
⽽且在以上代码编写中,如果⼀个for语句写在了多个Scriptlet中,⼀定要写上“{}”,否则程序将出现错误。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。