java_web学习(三) eclipse_jsp学习
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学习的更多相关文章
- Html学习(三) 分类学习
代码: <h1>这是一级分类吗</h1> <h2>这是二级分类吗</h2> <h3>这是三级分类吗 </h3> 效果: 介绍: ...
- HTTP学习三:HTTPS
HTTP学习三:HTTPS 1 HTTP安全问题 HTTP1.0/1.1在网络中是明文传输的,因此会被黑客进行攻击. 1.1 窃取数据 因为HTTP1.0/1.1是明文的,黑客很容易获得用户的重要数据 ...
- 20145213《Java程序设计》第三周学习总结
20145213<Java程序设计>第三周学习总结 教材学习内容总结 正所谓距离产生美,上周我还倾心于Java表面的基础语法.其简单的流程结构,屈指可数的基本类型分类,早已烂熟于心的运算符 ...
- 20145304 Java第三周学习报告
20145304 <Java程序设计>第三周学习总结 教材学习内容总结 1.定义类: 类定义时使用class关键词,建立实例要使用new关键词. 代码如下: /*定义类 书上例子 衣服的型 ...
- 20145330《Java程序设计》第三周学习总结
20145330 <Java程序设计>第三周学习总结 第三周知识的难度已经逐步上升,并且一周学习两章学习压力也逐渐加大,需要更高效率的来完成学习内容,合理安排时间. 类与对象 对象(Obj ...
- 20145337《Java程序设计》第三周学习总结
20145337 <Java程序设计>第三周学习总结 教材学习内容总结 类与对象 类与对象的关系:要产生对象必须先定义类,类是对象的设计图,对象是类的实例.我觉得在视频中对类与对象关系的描 ...
- 20145218 《Java程序设计》第三周学习总结
20145218 <Java程序设计>第三周学习总结 教材学习内容总结 定义类 编写程序要产生对象就要先定义类.类是对象的设计图,对象是类的实例.类定义时使用class关键词,建立实例时, ...
- 《Java程序设计》第三周学习总结
20145224-陈颢文 <Java程序设计>第三周学习总结 教材学习内容总结 一.定义类: ·类定义时使用class关键字,要对类中变量(值域成员/对象数据成员)行类型声明. class ...
- JDBC第三次学习
这是我的JDBC第三次学习了,在学习的过程中,老是会忘掉一些知识,不记下笔记实在不行啊! 使用JDBC调用存储过程 (1)关于如何使用Navicat(11.1.13) for MySQL如何创建存储过 ...
随机推荐
- Linux主机SSH免密设置解析
为了保证一台Linux主机的安全,所以我们每个主机登录的时候一般我们都设置账号密码登录.但是很多时候为了操作方便,我们都通过设置SSH免密码登录.那么该如何设置?是不是免密码登录就不安全了呢? 一.被 ...
- 在jQuery中使用canvas时遇到的问题
正常的情况下一般在JavaScript中使用canvas,会用到如下代码: var canvas=document.getElementById("canvas"); var co ...
- SUID、SGID、Sticky BIT
添加SUID: chmod 4755 可执行文件名 或 chmod u+s 可执行文件名 删除SUID: chmod 755 可执行文件名 或 chmod u-s 可执行文件名 [root@local ...
- springboot 入门七-静态资源处理
Spring Boot 默认配置的/**映射到/static(或/public ,/META-INF/resources),/webjars/**会映射到classpath:/META-INF/res ...
- 前端构建之gulp与常用插件(转载)
原博主:幻天芒 原文地址:http://www.cnblogs.com/humin/p/4337442.html gulp是什么? http://gulpjs.com/ 相信你会明白的! 与著名的构建 ...
- iOS UIWebView 加载进度条的使用-WKWebView的使用,更新2017.6.26
1.由于项目中加载网络插件,直接使用了webview加载.使用了三方NJKWebViewProgress进度条的使用,近期在测试时发现,网络缓慢时出现白屏,有卡顿现象. 于是采用了WKWebView进 ...
- MySQL操作时间的函数集
求两个Timestamp之间的秒差值: select TIMESTAMPDIFF(SECOND,TIMESTAMP("2017-03-01 07:58:20"),timestamp ...
- bzoj 4345: [POI2016]Korale
Description 有n个带标号的珠子,第i个珠子的价值为a[i].现在你可以选择若干个珠子组成项链(也可以一个都不选),项链的价值为所有珠子的价值和.现在给所有可能的项链排序,先按权值从小到大排 ...
- 【WebGL】《WebGL编程指南》读书笔记——第6章
一.前言 最近重感冒发烧,妈蛋好难受,请假了3天,驾校也没去,简直僵硬!今天继续WebGL的学习. 二.正文 A. GLSL支持两种数据值类型: 整数型(int)与浮点型( ...
- Tomcat 到底依赖JRE还是JDK
Tomcat 6.0 以上可以不再依赖JDK运行,直接使用JRE即可,但Tomcat 5.5以下,是必须安装JDK的. 这主要是由于,Tomcat 5.5及以下版本主要是依赖JDK去编译JSP文件生成 ...