一、实验目的
建立数学模型并运用Java面向对象的技术进行JSP脚本编程
二、实验内容与设计思想
编写JSP页面并在本地Eclipse for JavaEE中测试,要求在命令行窗口以及浏览器上输出如下图所示的数字斜塔(必须画出程序流程图),鼓励一题多解!页面测试通过后发布到云端ECS服务器并浏览访问效果。
三、实验使用环境
操作系统: Windows 10
编程环境:JDK1.8 、 TOMCAT 8.0 、 Eclipse IDE for JavaEE Developer
四、实验步骤和调试过程(建议画出程序流程图,要求给出源码并配有清晰的效果截图)
1.代码编写和流程图
<%@ page contentType="text/html; charset=utf-8" language="java" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>数字斜塔</title>
<style>
.blue-number {
color: blue;
font-weight: bold;
font-size: 20px;
margin-right: 15px; /* 新增间距控制 */
}
</style>
</head>
<body>
<%
int size = 5;
int base = 1;
for (int line = 1; line <= size; line++) {
for (int indent = 1; indent < line; indent++) {
out.print(" ");
}
int current = base;
int elements = size - line + 1;
for (int col = 1; col <= elements; col++) {
out.print("<span class='blue-number'>" + current + "</span>");
current += line + col;
}
base += line;
out.println("<br>");
}
%>
</body>
</html>
- 命令行输出
①进入D盘:
②进入文件所在目录:
③使用javac编译文件:
④编译成功后生成number.class文件
⑤在命令行窗口运行结果:
以下是在命令行运行的代码:
1.设定图案行数size为 5,起始数字start为 1。
2.外层for循环控制行数,从第 1 行到第 5 行。
3.内层for循环控制每行的数字个数,每行数字从当前start开始。
4.按col + 1的步长递增数字并输出,每行结束后换行。
5.更新start值进入下一行。
package a1;
public class Number {
public static void main(String[] args) {
int size = 5;
int start = 1;
for (int line = 1; line <= size; line++) {
int current = start;
for (int col = line; col <= size; col++) {
System.out.printf("%-4d ", current);
current += col + 1;
}
start += line;
System.out.println();
}
}
}
- 浏览器输出
Eclipse内置浏览器中输出效果:
本地浏览器中输出效果:
- 云端输出
①在DreamWeaver新建站点,站点目录和jsp文件目录一致,站点要选用FTP链接,并且链接网址是云端ecs服务器的公网地址。
②建立云端ecs服务器与本地服务器的远程连接。
③将jsp文件从站点中上传到云端,要在远程服务器中可以看到,然后在云端服务器的浏览器中输入http://<公网地址>:9090/项目名/文件名,即可在云端浏览jsp文件的效果。(因为我前面修改了端口号,所以这里使用了9090)
五、实验小结(必写环节,要体现每位组员的解题思路、调试过程,鼓励小组写实验博客分享心得)
1.HTML 部分:构建了基本的网页结构,包括设置页面编码为 UTF - 8,定义页面标题为 “数字斜塔”,并引入了 CSS 样式来设置数字的显示效果,如蓝色字体、加粗、20px 字号以及每个数字右侧 15px 的间距。
2.Java 部分:在 JSP 页面的<body>标签内嵌入 Java 代码。通过定义变量size来控制数字斜塔的规模(本实验设置为 5),变量base作为数字计算的基础起始值(初始化为 1)。
3.成功在浏览器中打开 JSP 页面,展示出了预期的数字斜塔结构。
4.实验实现了特定数字图案的输出功能,通过 Java 代码完成。核心思路是利用嵌套for循环,外层循环控制行数,内层循环控制每行数字个数与输出。
5.在实现过程中,设定了起始数字和行数,数字按特定规律递增。这让我加深了对循环结构的理解与运用,体会到循环嵌套在处理复杂输出模式上的作用。
6.一开始没办法在命令行输出,找不到或无法加载主类,后发现是类路径出现问题,设置不正确,java无法找到相应的类文件,通过使用-cp明确指定类路径,最后成功输出
7.云端ecs服务器访问过程中,出现了输入网址后页面出现404的情况,但若只输入端口号又可正常运行,所以配置上没有问题的,问题出在文件上。查阅资料并经过尝试后发现,应该新建一个文件夹并把jsp文件放入文件夹里面,或可以是在上传文件时直接上传一整个项目,这样可以保证文件的正常运行。
六、附录参考
《Web编程技术》,余元辉,清华大学出版社,2019.5第2版
《JSP设计》(第三版),Hans Bergsten主编,林琪、朱涛江翻译 O'Reilly Media,Inc 2019年。