对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表达式。

------------------------------------------------
原文地址:https://www.cnblogs.com/jyiqing/p/6840659.html