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如何创建存储过 ...
随机推荐
- 管道设计CAD系统中重量重心计算
管道设计CAD系统中重量重心计算 eryar@163.com Abstract. 管道设计CAD系统中都有涉及到重量重心计算的功能,这个功能得到的重心数据主要用于托盘式造船时方便根据重心设置吊装配件. ...
- 【java设计模式】【行为模式Behavioral Pattern】策略模式Strategy Pattern
package com.tn.策略模式; public class Client { private Strategy strategy; public void setStrategy(Strate ...
- cors解决Web跨域访问问题
首先了解一下什么是跨域以及解决的几种常见方式. 跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器施加的安全限制. 所谓同源是指,域名,协议,端口均相同. 举例: 相对于 ...
- css em单位
本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/41 为什么要有em 为了弹性布局.更准确的说是界面元素根据浏览器 ...
- seo我告诉你
seo我告诉你,这回seo真的告诉你百度云链接 链接:http://pan.baidu.com/s/1qYpM9y8 密码:mad6 seo优化教程:
- ES6 二进制数组
二进制数组(ArrayBuffer对象.TypedArray视图和DataView视图)是JavaScript操作二进制数据的一个接口.这些对象早就存在,属于独立的规格(2011年2月发布),ES6将 ...
- 5.Nginx作为web缓存服务器
Nginx作为web缓存服务器 从0.7.48版本开始,Nginx支持类似Squid的缓存功能.Nginx的web缓存服务主要由proxy_cache相关命令集合fastcgi_cache相关命令集构 ...
- Golang fmt包使用小技巧
h1 { margin-top: 0.6cm; margin-bottom: 0.58cm; direction: ltr; color: #000000; line-height: 200%; te ...
- gitlab 接入 openldap、AD
=============================================== 20171009_第2次修改 ccb_warlock === ...
- JDK动态代理[4]----ProxyGenerator生成代理类的字节码文件解析
通过前面几篇的分析,我们知道代理类是通过Proxy类的ProxyClassFactory工厂生成的,这个工厂类会去调用ProxyGenerator类的generateProxyClass()方法来生成 ...