关于MVC三层架构
三层架构是什么三层架构是一种架构思想, 通常意义上的三层架构就是将整个业务应用划分为:
表现层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层 (Data access layer)。
表现层 :通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
业务逻辑层 :针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
数据访问层 :该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。
注:在各种开发框架中,没有什么是加一层解决不了的事情,如果一层不行,那就再加一层。
MVC是什么MVC模式是软件工程中常见的一种软件架构模式,该模式把软件系统(项目)分为模型(Model)、视图(View)和控制器(Controller)三个部分,并赋予各个部分不同的功能,进而实现“业务逻辑”、“数据模型”、”页面显示”之间的解耦。
目前,基于MVC模式的Web服务器主流架构,如下图所示:
(1)模型(Model)
主要负责:
处理业务逻辑(Service层)
数据持久化(DAO层 ...
break和continue的作用和区别
1. break和continue的作用break和continue都是用来控制循环结构的,主要作用是停止循环。
2. break和continue的区别1、break用于跳出一个循环体或者完全结束一个循环,不仅可以结束其所在的循环,还可结束其外层循环。
注意:
(1)只能在循环体内和switch语句体内使用break。
(2)不管是哪种循环,一旦在循环体中遇到break,系统将完全结束循环,开始执行循环之后的代码。
(3)当break出现在循环体中的switch语句体内时,起作用只是跳出该switch语句体,并不能终止循环体的执行。若想强行终止循环体的执行,可以在循环体中,但并不在switch语句中设置break语句,满足某种条件则跳出本层循环体。
2、continue语句的作用是跳过本次循环体中剩下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为只是中止(跳过)本次循环,接着开始下一次循环。
注意:
(1)continue语句并没有使整个循环终止。
(2)continue 只能在循环语句中使用,即只能在 for、while 和 do…while 语句中使用。
参考链接
使用Ajax获取数据时,应该选择同步还是异步
一、 问题描述我们在web项目中经常在JS中使用ajax函数获取数据,并将获得的数据返回供其他函数所用。例如定义如下函数:12345678910111213141516171819function getData(){ var dataVal = null; //(默认)使用异步获取数据 $.ajax({ type:'POST', url:'URl', dataType:'text', cache : false, //不缓存 success:function(data){ dataVal = data; return dataVal; //其实这个return只是 //返回ajax中function的返回值。 //而不是getData()的返回值。 } }); ...
三次握手和四次挥手
1、三次握手TCP协议位于传输层,作用是提供可靠的字节流服务,为了准确无误地将数据送达目的地,TCP协议采纳三次握手策略。
三次握手原理:第1次握手:客户端发送一个带有SYN(synchronize)标志的数据包给服务端;
第2次握手:服务端接收成功后,回传一个带有SYN/ACK标志的数据包传递确认信息,表示我收到了;
第3次握手:客户端再回传一个带有ACK标志的数据包,表示我知道了,握手结束。
其中:SYN标志位数置1,表示建立TCP连接;ACK标志表示验证字段。
三次握手过程详细说明:1、客户端发送建立TCP连接的请求报文,其中报文中包含seq序列号,是由发送端随机生成的,并且将报文中的SYN字段置为1,表示需要建立TCP连接。(SYN=1,seq=x,x为随机生成数值);
2、服务端回复客户端发送的TCP连接请求报文,其中包含seq序列号,是由回复端随机生成的,并且将SYN置为1,而且会产生ACK字段,ACK字段数值是在客户端发送过来的序列号seq的基础上加1进行回复,以便客户端收到信息时,知晓自己的TCP建立请求已得到验证。(SYN=1,ACK=x+1,seq=y ...
Java基础知识-数组
什么是数组
数组是相同类型数据的有序集合。
数组中的每一个数据称作一个数组元素,我们可以通过下标来访问数组元素。
数组是最简单的数据结构。
数组的基本特点
数组的长度是确定的。
数组一旦被创建,它的大小就是不可改变的。
要对数组进行扩容(或缩容),就必须新建一个空间更大(或更小)的数组。【详见动态数组】
同一个数组的元素的数据类型必须相同,不允许出现混合类型。
数组中的元素可以是任何数据类型,包括基本类型和引用类型。
数组属于引用类型,数组本身就是对象(可以被new出来),数组元素相当于对象的成员变量。
数组的声明和创建(定义)数组变量必须先声明后使用。
数组的声明
方式一:
1数组元素类型[] 数组名;//首选
方式二:
1数组元素类型 数组名[];//(参照C++)效果相同,不首选
数组的创建
Java语言使用new操作符来创建数组。
1数组元素类型[] 数组名 = new 数组元素类型[数组长度];
数组的初始化
(1)静态初始化
在定义数组的同时就为数组元素分配空间并赋值。如:
1int[] a = {1,2,3,4,5};
1Ma ...
Java方法
方法的设计原则在Java的语言中,方法相当于C语言中的函数。
方法的本意是功能块。因此,在设计方法时,最好保持方法的原子性(即:一个方法只完成一个功能),这样有利于我们后期的扩展。
方法的定义在Java中,声明一个方法的语法格式如下:
1234修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) { 方法体语句; return 返回值;}
修饰符:如public、static等。
return关键字:用于结束方法以及返回方法指定类型的值。
方法的调用(1)调用方法:对象名.方法名(实参列表)
(2)调用方式:Java支持两种调用方法的方式。
当方法返回一个值的时,方法调用通常会被当做一个值。如:
1int larger = max(30,40);
当方法返回值为void时,方法调用一定是一条语句。如:
1System.out.println("Hello!");
方法重载(1)重载:就是在一个类中,函数名相同,但形参不同的函数。
(2)方法重载的规则:
方法名称必须相同。
参数列表必须不同(个数不同、类型不 ...
Java流程控制
顺序结构Java的基本结构就是顺序结构。
除非特殊说明,否则程序就会按顺序一句一句地往下执行。
选择结构
if单项选择结构
123if(条件){ 代码块 //可以是一条语句,也可以是一组语句 }
if双项选择结构
12345if(条件){ //代码块1 }else{ //代码块2 }
if多项选择结构
1234567if(条件1){ //代码块1}else if(条件2){ //代码块2}else{ //代码块3}
嵌套的if结构
123456789if(条件1){ if(条件2){ //代码块1 }else{ //代码块2 }}else{ //代码块3}
switch多项选择结构
123456789101112switch(表达式){ case 常量1: //代码块1; break; cas ...
Java基本语法
一. 关键字Java关键字是对Java编译器有特殊含义的字符串,是编译器和程序员的一个约定,程序员利用关键字来告诉编译器其声明的变量类型、类、方法特性等信息。
Java语言定义的关键字如下:
二、标识符标识符是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义。在计算机编程语言中,标识符是用户编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。
注意:
所有的标识符都应该以字母(大写或小写)、美元符($)、或下划线(_)开始,不能以数字开头;
首字符后面可以是字母(大写或小写)、美元符($)、下划线(_)或数字的任意组合;
不能使用Java关键字作为标识符;
标识符是大小写敏感的。
可以使用中文命名,但一般不建议使用,也不建议使用拼音。
三、数据类型Java是一种强类型语言。
强类型语言&弱类型语言
强类型语言
强类型语言是一种强制类型定义的语言。
一旦某一个变量被定义类型,如果不经过强制转换,则它永远就是该数据类型了。
强类型语言包括:Java、.net 、Python、C++等语言。如:定义了一个整数,如果不进 ...
Markdown 格式练习
测试如何写文章你好Lotlyz!欢迎来到我的小世界去尝试吧无论做什么道阻且长,行则将至!水平线
文本样式This is bold text
This is bold text
This is italic text
This is italic text
Strikethrough
列表无序
Create a list by starting a line with +, -, or *
Sub-lists are made by indenting 2 spaces:
Marker character change forces new list start:
Ac tristique libero volutpat at
Facilisis in pretium nisl aliquet
Nulla volutpat aliquam velit
Very easy!
有序
Lorem ipsum dolor sit amet
Consectetur adipiscing elit
Integer molestie lorem at massa
You ...