需求
利用脚本+声明+表达式打印如下表格
分析
观察发现:
行数10,列数15。得两个变量row = 10,col=15;
第二行是第一行的2倍,第三行是第一行的3倍…类推得出当前行是上一行的i+1倍
数的关系是有规律的,为累加;所以合适用for循环实现
实现
首先我们在java中实现:
//按照我们之前分析的,声明行数列数
int row = 10; //10行
int col = 15; //15列
for(int i=1; i<=row; i++){ //声明循环变量,i代表了有多少行;从第一行开始到第十行结束,i++表示每次循环结束后i自增1;
for(int j=1; j<=col; j++){ //声明循环变量,j代表了有多少列;从第一列开始到第十五列结束,j++表示每次循环结束后j自增1;
System.out.print(j*i+" "); //当前行的值*当前是第几行
}
System.out.println();
}
然后再去JSP实现:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%! int row=10; int col=15; %>
<table border="1",width="100%">
<% for(int i=1;i<=row;i++){ %>
<tr>
<% for(int j=1;j<=col;j++){ %>
<td><%=j*i %></td>
<% } %>
</tr>
<% } %>
</table><br>
<hr>
</body>
</html>
因为我们目前没有学到out,所以不用out方式实现。
这道例题主要是想表达的是,我们需要JSP与HTML实现动态交互的时候,需要在JSP代码中插入HTML代码。但是<%%>脚本不支持在<%%>里书写HTML代码。所以JSP提供了一个功能就是作用域。观察以上代码时,我们可以发现。HTML代码是可以参杂在我们Java代码中的,但是需要频繁的去使用<%%>来做一个作用域。这种方式虽然可以实现功能,但是在不够简易与辨识。在后期学到out时我们可以使用out的方式去优化它。