1.首先打开eclipse,新建一个Dynamac web project项目文件

2.在WebContent单击右键创建JSP File

3.过程

4.简单的jsp代码

运行结果:

5.导出war文件

5.1关闭tomcat

5.2  Export →WAR file

5.3导出的.war 文件放在apache-tomcat-9.0.0.M20文件的webapps里

5.4进入bin文件,开启tomcat

5.4.1回到webapps文件夹得到:

5.4.2  aaa文件夹中出现如下5个文件

6.jsp应用实例,关键是学习mvc设计理念

6.1、什么是MVC?

mvc(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型  (Model)、视图(View)和控制器(Controller)。       MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部份分离的同时也赋予了各个基本部分应有的功能。专业人员可以通过自身的专长分组:

•    (控制器Controller)- 负责转发请求,对请求进行处理。

•    (视图View) – 界面设计人员进行图形界面设计。

•    (模型Model) – 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。

模型(Model) “数据模型”(Model)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“模型”有对数据直接访问的权力,例如对数据库的访问。“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何被操作。但是模型中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可以了解在数据模型上发生的改变。

视图(View) 视图层能够实现数据有目的的显示(理论上,这不是必需的)。在视图中一般没有程序上的逻辑。为了实现视图上的刷新功能,视图需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。

控制器(Controller) 控制器起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据模型上的改变。

6.2用mvc理念打印出艾宾浩斯记忆曲线

6.2.1  艾宾浩斯记忆曲线:

遗忘曲线由德国心理学家艾宾浩斯(H.Ebbinghaus)研究发现,描述了人类大脑对新事物遗忘的规律。你想知道怎么利用艾宾浩斯遗忘曲线进行复习记忆吗?今天,学习啦小编为大家推荐遗忘曲线复习记忆的方法。

6.2.2:需要实现的图

6.2.3:jsp代码

 <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>
<%
Calendar cd = new GregorianCalendar();//向上转型
int m=Calendar.MONTH;
int d=Calendar.DAY_OF_MONTH;
int m1=cd.get(m)+1;
int d1=cd.get(d);
int n=0,p=0,w=0;
int m2=m1+1;
int m3=m1+2;
int m4=m1+3; int group=72;//代表有多少篇课文需要背诵
int days=group+15;
for(int i=0;i<days;i++){
String day=(m1+"月"+(d1-4+i)+"日")+"";//加一个空字符串,定义日期
if((d1-3+i)>31){
n++;
day=(m2+"月"+(n)+"日")+"";//六月
if(n>30){
p++;
day=(m3+"月"+(p)+"日")+"";//七月
if(p>31){
w++;
day=(m4+"月"+(w)+"日")+"";//八月
}
}
} String task1="";//当天需要工作的第一个任务
String task2="";
String task3="";
String task4="";
String task5="";
String task6="";
//求算任务1
if(i<=group-1){
task1=(i+1)+"";
}
else{
task1="--";}
//求算任务2
if(i<=0||i>group){
task2="--";
}else{
task2=i+"";
}
//求算任务3
if(i<=(0+1)||(i-1)>=(group+1)){
task3="--";
}else{
task3=(i-1)+"";
}
//求算任务4
if((i-3)<=0||(i-3)>=(group+1)){
task4="--";
}else{
task4=(i-3)+"";
} //求算任务5
if((i-6)<=0||(i-6)>=(group+1)){
task5="--";
}else{
task5=(i-6)+"";
}
//求算任务6
if((i-14)<=0||(i-14)>=(group+1)){
task6="--";
}else{
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>

6.2.4:实现了的效果图

6.3:总结

 %>
86 <tr>
87 <td><%=day %> </td>
88 <td><%=task1%> </td>
89 <td><%=task2%> </td>
90 <td><%=task3%> </td>
91 <td><%=task4%> </td>
92 <td><%=task5%> </td>
93 <td><%=task6%> </td>
94 </tr>
95 <%

今天的例子是艾宾浩斯记忆曲线的学习计划表。重点不是怎么算,重点是学习jsp中的一个重要的思想,作为展现层,jsp中不应该出现业务逻辑代码。

即便上图,<%%>代码也会在后续的学习中改为其它方式显示,如JSTL和EL表达式。

 

 

本人还在初学java阶段,高手,大神请指教,欢迎提出建议与意见。

谢谢你这么忙还能抽空来看我的随笔!

java_web学习(三) eclipse_jsp学习的更多相关文章

  1. Html学习(三) 分类学习

    代码: <h1>这是一级分类吗</h1> <h2>这是二级分类吗</h2> <h3>这是三级分类吗 </h3> 效果: 介绍: ...

  2. HTTP学习三:HTTPS

    HTTP学习三:HTTPS 1 HTTP安全问题 HTTP1.0/1.1在网络中是明文传输的,因此会被黑客进行攻击. 1.1 窃取数据 因为HTTP1.0/1.1是明文的,黑客很容易获得用户的重要数据 ...

  3. 20145213《Java程序设计》第三周学习总结

    20145213<Java程序设计>第三周学习总结 教材学习内容总结 正所谓距离产生美,上周我还倾心于Java表面的基础语法.其简单的流程结构,屈指可数的基本类型分类,早已烂熟于心的运算符 ...

  4. 20145304 Java第三周学习报告

    20145304 <Java程序设计>第三周学习总结 教材学习内容总结 1.定义类: 类定义时使用class关键词,建立实例要使用new关键词. 代码如下: /*定义类 书上例子 衣服的型 ...

  5. 20145330《Java程序设计》第三周学习总结

    20145330 <Java程序设计>第三周学习总结 第三周知识的难度已经逐步上升,并且一周学习两章学习压力也逐渐加大,需要更高效率的来完成学习内容,合理安排时间. 类与对象 对象(Obj ...

  6. 20145337《Java程序设计》第三周学习总结

    20145337 <Java程序设计>第三周学习总结 教材学习内容总结 类与对象 类与对象的关系:要产生对象必须先定义类,类是对象的设计图,对象是类的实例.我觉得在视频中对类与对象关系的描 ...

  7. 20145218 《Java程序设计》第三周学习总结

    20145218 <Java程序设计>第三周学习总结 教材学习内容总结 定义类 编写程序要产生对象就要先定义类.类是对象的设计图,对象是类的实例.类定义时使用class关键词,建立实例时, ...

  8. 《Java程序设计》第三周学习总结

    20145224-陈颢文 <Java程序设计>第三周学习总结 教材学习内容总结 一.定义类: ·类定义时使用class关键字,要对类中变量(值域成员/对象数据成员)行类型声明. class ...

  9. JDBC第三次学习

    这是我的JDBC第三次学习了,在学习的过程中,老是会忘掉一些知识,不记下笔记实在不行啊! 使用JDBC调用存储过程 (1)关于如何使用Navicat(11.1.13) for MySQL如何创建存储过 ...

随机推荐

  1. C#:StreamReader读取.CSV文件(转换成DataTable)

    using System.Data; using System.IO; /// <summary> /// Stream读取.csv文件 /// </summary> /// ...

  2. Asp.Net Web API(四)

    HttpResponseException-----HTTP响应异常 如果Web API控制器抛出一个未捕捉的异常,会发生什么呢?在默认情况下,大多数异常都会转换为一个带有状态码500的内部服务器错误 ...

  3. ftp 只需上传禁止下载

    一.首先在ftp / 主目录下给所有用户授予读写权限 二.给子目录授予写入权限,不允许读取

  4. 【Uva623】500!(高精)

    Description 求N! \(N \leq 1000\) Sample Input 10 30 50 100 Sample Output 10! 3628800 30! 265252859812 ...

  5. phpexcel导出成绩表

    效果图如下: 代码如下:代码注释不全,请大家参考phpexcel中文帮助手册 <?php require_once 'PHPExcel.php'; function bfb($n) { retu ...

  6. AdaBoost对实际数据分类的Julia实现

    写在前面 AdaBoost是机器学习领域一个很重要很流行的算法,而Julia是一门新兴的发展迅速的科学计算语言.本文将从一个实际例子出发,展示如何用Julia语言实现AdaBoost算法. 什么是Ad ...

  7. Linq To EF

    l简单查询:var result = from c in Entities.Customer select c; l条件查询: 普通linq写法: var result = from c in Ent ...

  8. Java自己动手写连接池四

    Java自己动手写连接池四 测试: package com.kama.cn; import java.sql.Connection; public class Test { public static ...

  9. Spark 核心概念 RDD 详解

    RDD全称叫做弹性分布式数据集(Resilient Distributed Datasets),它是一种分布式的内存抽象,表示一个只读的记录分区的集合,它只能通过其他RDD转换而创建,为此,RDD支持 ...

  10. Xamarin.Android 使用Timer 并更改UI

    http://blog.csdn.net/ozhangsan12345/article/details/72653070 第一步:创建timer对象 //创建timer对象 Timer _dispat ...