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. 开发wordpress主题

    查看我的wordpress站点 第一步:下载wordpress安装包 官网下载==> 第二步:本地安装开发环境 官网给出的环境要求: 可以选择安装wamp/xampp集成PHP开发环境,安装很简 ...

  2. 「mysql优化专题」你们要的多表查询优化来啦!请查收(4)

    一.多表查询连接的选择: 相信这内连接,左连接什么的大家都比较熟悉了,当然还有左外连接什么的,基本用不上我就不贴出来了.这图只是让大家回忆一下,各种连接查询. 然后要告诉大家的是,需要根据查询的情况, ...

  3. Laravel学习笔记(二)

    解决了类自动加载的问题,剩下的问题就是看文档了,laravel的官方文档虽然简单,但是却包含了很多基础知识,学习Laravel最好先看看官方文档,我感觉帮助很大,因为laravel框架的源码看起来并不 ...

  4. 【java API基本实现】ArrayList

    ArrayList: package com.tn.arraylist; public class ArrayList { Object[] objects=new Object[10]; int i ...

  5. Node之Express服务器启动安装与配置

    首先安装express-generator cnpm i -g express-generator 使用express --version查看express版本 生成express服务 express ...

  6. JNI的使用总结初篇

    前言:以下内容是个人在写JNI Demo前后进行查找理解总结得出的一些结论,如有错误的地方希望路过的朋友能够指正. 一.JNI是Java native interface的简称,目前就我所知这类方法的 ...

  7. 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

    引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...

  8. c语言文件分割与合并

    一.综述 c语言操作文件通过文件指针FILE*,每个要操作的文件必须打开然后才能读写. 注意事项: @1分割与合并文件最好使用二进制模式即"rb"或"wb",这 ...

  9. KVM 初探

    KVM 是业界最为流行的 Hypervisor,全称是 Kernel-based Virtual Machine.它是作为 Linux kernel 中的一个内核模块而存在,模块名为 kvm.ko,也 ...

  10. ArcGIS API for JavaScript 4.2学习笔记[6] goTo()地图动画

    这是个很有意思的例子,不过例子给的比较复杂,需要查很多API,我会在文章最后给出关键的类和属性解释. 同样发现一个很有意思的事儿:博客园似乎有爬虫,我4号发布的blogs,5号就在百度和google搜 ...