对jsp的初步了解及规范问题(二)
前言
今天的例子是用jsp制作简单的“艾宾浩斯记忆曲线的学习计划表”。
重点不是算法,重点是学习jsp中的一个重要的思想,作为展现层,jsp中不应该出现业务逻辑代码。
当中<%%>代码也会在后续的学习中改为其它方式显示,如JSTL和EL表达式。
什么是“艾宾浩斯记忆曲线”?百度一下,你就知道!
1.例一
来看下代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <table border=1> <tr> <td>日期</td> <td>新学期</td> <td>复习前1课</td> <td>复习前2课</td> <td>复习前4课</td> <td>复习前7课</td> <td>复习前15课</td> </tr> <% int group = 72; int days = group+15; for(int i=0;i<days;i++){ String day = (i+1)+""; String task1 = ""; String task2 = ""; String task3 = ""; String task4 = ""; String task5 = ""; String task6 = ""; %> <tr> <td>第<%=day %>天</td> <td><% //求算任务1 if(i<=group-1) task1 = (i+1)+""; out.println(task1); %> </td> <td><% //求算任务2 if(i<group+1&&i>=1) task2 = i + ""; out.println(task2); %></td> <td><% //求算任务3 if(i-1<group+1&&i>=2) task3 = i-1 + ""; out.println(task3); %> </td> <td><% //求算任务4 if(i-3<group+1&&i>=4) task4 = i-3 + ""; out.println(task4); %></td> <td><% //求算任务5 if(i-6<group+1&&i>=7) task5 = i-6 + ""; out.println(task5); %></td> <td><% //求算任务6 if(i-14<group+1&&i>=15) task6 = i-14 + ""; out.println(task6); %></td> </tr> <% }%> </table> </body> </html>
我们看以看到当中的代码部分
一眼看去,并不能很好的的阅读代码!
当然,运行是可以的。但这要的对于代码的可读性、规范性是不合格!
运行结果:
2.例二
再看下面的代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <table border=1> <tr> <td>日期</td> <td>新学期</td> <td>复习前1课</td> <td>复习前2课</td> <td>复习前4课</td> <td>复习前7课</td> <td>复习前15课</td> </tr> <% int group = 72; int days = group+15; for(int i=0;i<days;i++){ String day = (i+1)+""; String task1 = ""; String task2 = ""; String task3 = ""; String task4 = ""; String task5 = ""; String task6 = ""; //求算任务1 if(i<=group-1) task1 = (i+1)+""; //求算任务2 if(i<group+1&&i>=1) task2 = i + ""; //求算任务3 if(i-1<group+1&&i>=2) task3 = i-1 + ""; //求算任务4 if(i-3<group+1&&i>=4) task4 = i-3 + ""; //求算任务5 if(i-6<group+1&&i>=7) task5 = i-6 + ""; //求算任务6 if(i-14<group+1&&i>=15) task6 = i-14 + ""; %> <tr> <td>第<%=day%>天</td> <td><%=task1 %></td> <td><%=task2 %></td> <td><%=task3 %></td> <td><%=task4 %></td> <td><%=task5 %></td> <td><%=task6 %></td> </tr> <% }%> </table> </body> </html>
例二与例一相比,无论是可读性、规范化,还是美观度来说,例二都是完胜的!
jsp作为展现层,jsp中不应该出现业务逻辑代码。
在后续的学习中,jsp的<%%>代码也会改为其它方式显示,如JSTL和EL表达式。
------------------------------------------------