对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表达式。
对jsp的初步了解及规范问题(二)的更多相关文章
- 编码规范(二)之Code Templates的设置(转)
		
http://swiftlet.net/archives/1199 编码规范(二)之Code Templates的设置(转) 文件(Files)注释标签:/** * @Title: ${file_na ...
 - Servlet 3.0 规范(二)注解驱动和异步请求
		
Servlet 3.0 规范(二)注解驱动和异步请求 在 Servlet 3.0 时支持注解启动,不再需要 web.xml 配制文件. 一.Servlet 3.0 组件 Servlet 容器的组件大致 ...
 - JSP页面和属性命名规范
		
1.页面命名: 登陆 Login注册 Register用户 User创建 Create修改 Update删除 Delete查询 Selete控制器 Controller用户名 Username密码 ...
 - 对jsp的初步了解及生成war包(一)
		
1.jsp与html的区别 最简单的说:jsp是动态网页,html是静态网页 HTML(Hypertext Markup Language)文本标记语言,它是静态页面,和JavaScript一样解释性 ...
 - Java高级规范之二
		
二十一.提交java代码前应该检查是否有没用的语句,如:System.out.println(); jsp页面上面是否有alert调试信息 不规范示例:暂无 规范实例:暂无 解析:因为如果保留了有可能 ...
 - JSP网站开发基础总结《十二》
		
前两篇已经简单为大家介绍了一下,有关Filter接口的知识,本篇就让我们以一个登录小功能,来具体实现一下过滤器的作用,便于大家掌握.具体为大家介绍一下如何使用Filter对访问进行过滤,及如何防止中文 ...
 - JSP 文件上传下载系列之二[Commons fileUpload]
		
前言 关于JSP 文件上传的基础和原理在系列一中有介绍到. 这里介绍一个很流行的组件commons fileupload,用来加速文件上传的开发. 官方的介绍是: 让添加强壮,高性能的文件到你的se ...
 - Java编程规范(二)
		
二.格式规范 在上一篇的java编程规范(一)中我们讲述了在Java编码中的一般原则,虽然这些原则并不涉及具体的代码规范,但是这些原则却是我们在Java开发过程中所应该遵循的规范与思想.今天我们将学习 ...
 - Servlet与Jsp的结合使用实现信息管理系统二
		
PS:前面说了抽取框架的搭建,接着就要我们开始进入网址的时候就要查到全部信息并显示在首页,我们用到的MySql数据库,具体步骤是: 创建数据库,创建表,添加信息 项目中调入mysql的jar包 mys ...
 
随机推荐
- .net 做工作流时,生成项目后工具箱里有关工作流的东西不显示解决方法
			
在做工作流模块时,遇到一个比较棘手的问题,那就是生成项目后工具箱里有关工作流的东西不显示,这个问题令人百思不得其解,经过查阅英文网站,终于找到解决方法: 把项目中的建模项目移除掉,再重新生成,奇迹出现 ...
 - bzoj4828 [Hnoi2017]大佬
			
Description 人们总是难免会碰到大佬.他们趾高气昂地谈论凡人不能理解的算法和数据结构,走到任何一个地方,大佬的气场就能让周围的人吓得瑟瑟发抖,不敢言语.你作为一个OIER,面对这样的事情非常 ...
 - Laravel 5.2 教程 - 文件上传
			
一.简介 Laravel 有很棒的文件系统抽象层,是基于 Frank de Jonge 的 Flysystem 扩展包. Laravel 集成的 Flysystem 提供了简单的接口,可以操作本地端空 ...
 - nginx与apache配合反向代理技术1
			
序:最近在看Dimitri Aivaliotis的<Mastering Nginx>,刚好跆拳道课下班在路上看了反向代理服务器,准备在自己的博客VPS尝试一下 web代理服务器可以实现分布 ...
 - [HNOI2004]宠物收养场 Treap前驱后继
			
凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领 ...
 - PHP获取指定页面的指定内容
			
在刚入手PHP的时候,经理让我自己做一个文章的管理系统为了方便管理微信端发的消息.除了简单的添加分类.管理分类.添加文章.管理文章,还有一个功能就是要从微信文章网址中拿到网址上的标题.作者以及发表时间 ...
 - weblogic java.lang.OutOfMemoryError: PermGen space 问题解决方法
			
文章转自:http://blog.csdn.net/cuihaiyang/article/details/6679735 最近安装了WebLogic10.3.4,测试在weblogic上部署项目,没过 ...
 - docker安装hadoop集群
			
docker安装hadoop集群?图啥呢?不图啥,就是图好玩.本篇博客主要是来教大家如何搭建一个docker的hadoop集群.不要问 为什么我要做这么无聊的事情,答案你也许知道,因为没有女票.... ...
 - o(n)线性排序算法
			
O(n) 排序算法 前言 前面有总结过各类常用的排序算法,但是那些排序算法最优的时间复杂度是O(nlogn),所以我要介绍三种时间复杂度为O(n)的线性时间复杂度的排序算法. 计数排序 计数排序利用了 ...
 - C# 时间格式总结
			
C#时间/日期格式大全 C#时间/日期格式大全,C#时间/日期函数大全 有时候我们要对时间进行转换,达到不同的显示效果 默认格式为:2005-6-6 14:33:34 如果要换成成200506,06- ...