荟聚奇文、博采众长、见贤思齐
当前位置:公文素材库 > 计划总结 > 工作总结 > 第二阶段WEB开发基础学习总结

第二阶段WEB开发基础学习总结

网站:公文素材库 | 时间:2019-05-29 07:17:41 | 移动端:第二阶段WEB开发基础学习总结

第二阶段WEB开发基础学习总结

WEB开发基础学习总结

第二阶段任务:学习掌握HTML、CSS、JavaScript等与web开发相关的基础知识。在第二阶段的学习中,主要都是针对web开发基础的知识,其中html用于来表现网页的结构与内容,css用来控制页面的外观和表现,javascript用来控制页面的行为。其中分别针对每一部分分别总结如下:

HTML的学习总结:

(1)、HTML、XHTML的不同:

①XHTML中属性名称必须小写;

②XHTML属性值必须加引号③XHTML属性不能简写;

④XHTML在属性中增加了ID属性,它可以取代name的功能;⑤XHTMLDTD定义了强制使用的HTML元素。

总的来说,XHTML比HTML更加严格与规范。它只着重强调用来表现网站的结构而非样式,样式的内容交由CSS来控制。

(2)、HTML中注释的形式是:,注释部分的内容,将不会显示在网页中。(3)、HTML中的标签有两种形式:

①带结束标记的标签,如:,etc。②不带结束标记的标签,如:,etc。

在标签内部,可以是允许的属性=“值”对出现。最重要的几个标签如下:

标签在文档的最外层,其它所有标签都在它的内部,它表示该文档是由html语言写的。

它是头部标签,它其中的内容是不会被网页显示在正文中的,常常在其中插入标题,或者说明文件的一些公共属性,例如内部样式表的定义,外部样式表的导入,javascript的编写,外部javascript脚本的导入。

标签是文本的正文,它其中的内容将显示在网页之中。(4)、HTML元素具有四种形式:

①空元素,如它只是起到换行的作用,没有属性,也不能跟任何属性;

②带有属性的空元素,如,与空元素相对应,这类元素自然就是具有属性,但是无法体现任何元素;

③带有内容的元素,如XXXX,它表示该标签没有属性,但是在开始标签与结束标签之间可以插入元素;

④带有内容和属性的元素,如链接,它表示标签内部可以有多个属性,在开始标签与结束标签之间可以插入元素。(5)、有一些特殊的字符,在HTML中不能直接用键盘上的键来表示,像不间断空格,回车,还有html中的保留字等都需要引用的方式才能输入。如不换行空格: 。(6)、常常使用到的标签:①用来表示段落的标签,

②列表的建立,还有等等,其中内部标签不是而是、③还有就是表格的标签,一般形式是:

表格的标题表格的一行用于定义表头用于定义单元格

④表示创建表单,其中有两个重要的属性:method属性指定向服务器发送数据时使用的HTTP方法,可以是get或者post(get方法提交表单时,提交的数据被附加到URL中,作为URL的一部分发送到服务器,缺乏安全。Post方法是将菜单中的信息作为一个数据块单独发送到服务器,更加安全)。另一个属性anction用来表示对表单进行处理的脚本的地址,即表示表单提交到服务器后,由谁来处理这些数据。在标签中,会用到标签,input标签常用到的属性有:type,value。Type用来制定要创建的控件类型,value指定控件的初始值。⑤,超链接的符号,可以用它的href属性来制定连接到那个位置上去。

⑥表示嵌入一张图片到网页中。它其中的属性width,height等可以设置图片显示时候的宽高。

CSS的学习总结:

(1)、CSS它的目标就是将结构与表现相分离,也就是让html的标签只专注于定于网页内容的结构,CSS来决定这些网页的内容如何显示。使用CSS的一大好处就是,简化了网页的格式代码,加快网页的下载显示速度。同时在进行后期维护的时候,由于结构与表现的分离,更加易于维护。

(2)、CSS中注释的方法是:/*注释内容*/(3)、CSS的选择器分类:①元素选择器:就是某个HTML元素作为选择器,如:a,h1,p,etc;

②类选择器,这也是非常常用的一个选择器,它的名字可以任意取,只是在.css文件中定义它的样式时,需要在这个名字前面加一个小黑点,使用它的时候,只需要在html标签中使用class来选择这个样式即可;

③ID选择器,它有些类似于类选择器,但又有自身的一些特点,首先,ID选择器前面有一个#号,其次ID选择器的使用时,它需要通过ID属性值来指定,而不是通过class来指定,最后,在一个HTML文档中,ID选择器会使用一次,并且进使用一次;④属性选择器,属性选择器可以根据元素的属性及属性值来选择元素,例如,如果在网页文档中有部分元素包含title这个属性,而我们希望将这些元素都变成红色,以突出显示,这时就可以使用属性选择器简单实现,如:*[title]{color:red};

⑤后代选择器,它的别名是包含选择器,其实际效果可以通过这个小例子来进行解释:我只想对标签中的em元素引用样式,我可以这样定义:pem{color:red};后代选择器定义时需要注意,样式规则左边的选择器一段包括两个或者多个用空格分隔的选择器(这个选择器可以是其他的任意选择器,而不仅仅是元素选择器)。⑥子元素选择器,它是相对于后代选择器来讲的,是在其基础上缩小了范围,它只对它后面挨着的元素有效。样式定义格式:p>em{color:red}⑦相邻兄弟选择器,如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,即可使用它。样式定义格式:h1+p{color:red}

⑧伪类选择器,是指对同一HTML元素的各种状态和其所包括的部分内容的一种定义方式。如:a:link{color:red}(4)、CSS的样式分为三种:

①行内样式,即HTML标签直接使用style属性,它一般用于某个独立的元素。如:

。如果使用了行内样式,一般需要在标签内添加:

②内嵌样式,它是将标签放在标签中,如:

P{padding:10px;font-size:16px}

③外部样式,这是最建议使用的,因为它将CSS单独保存在一个文件中,通过

将样式引入进来。它的优点是可以同时作用于多个页面,而无需重复编写样式,减少了工作量,并且修改时,只需要修改一个.css文件,就可以将整个使用它的页面样式都修改掉。

三种样式的使用顺序在html标签中,如果有多种样式,而规定的样式没有冲突,则叠加,如果有冲突,则最先考虑行内样式,没有的话,再考虑内嵌样式,还没有,就采用外部样式,如果它也没有,就使用html的默认样式显示。(5)、框模型:

padding,border,margin都是可选的,默认值均为0,其中width与height指的是内容区域的宽度和高度,padding,margin,border尺寸的变化,不会影响内容区域的尺寸,但是会增加元素框的总尺寸。额外需要注意的是:margin的合并,它是指,当两个垂直外边距相遇时,他们将形成一个外边距,合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。(6)、CSS定位,它有三种方式,分别是:

①相对定位,相对于其默认初始位置,通过设置垂直或水平位置,让这个元素相对于它的起点进行移动。要进行相对定位,需要在样式中使用:position:relative

②绝对定位,绝对定位让元素脱离了文档流,故它不占据空间,定位后生成一个块级元素,而不管原来它在正常流中生成何种类型框。

③浮动,在标准浏览器中,浮动元素脱离了文档流,不占据外围容器空间。浮动可以向左或者向右,知道它的外边缘碰到包含框或另外一个浮动框的边框为止。

JavaScript的学习总结:

(1)、关于javascript的一些语法:javascript是一种弱类型语言,它属于面向对象编程语言。它也有构成编程语言的一些基本元素,如:数据类型,变量(虽然全部都用var关键字来声明变量,甚至可以不用该关键字),表达式和运算符,数组,控制结构(if(){}else{})和循环结构(for()),函数,正则表达式等等概念。其中大部分与其他语言的差不多,只有个别的需要作出说明。

①对象,javascript也属于面向对象编程语言,因此它其中的所有事物都是对象,这点与其他面向对象编程语言相同,一切皆对象(字符串,数值,数组,函数等等)。当然,虽然javascript有许多内置对象,它也是允许自定义对象的。对象之中也包含属性与方法,对象访问属性跟方法的方式也与java中的访问方式一样,通过.来进行访问。Javascript中的主要对象有:window,document,文本对象,按钮对象,location对象,history对象,字符串对象,日期对象,数组对象等

②变量,javascript是弱类型语言,用它声明的变量,可以保存任意类型的数据,或者只用变量名对其直接赋值。

③数组,它的数组是一个对象,需要使用的时候,可用这种方式:arr=newArray();(实质上还有其他两种方式)这点有些类似java中创建对象,调用构造函数。数组类主要有toString(),subString()等等方法。

④函数,javascript中的函数是很具有独特气质的,它没有返回值,可以在参数列表中只给出变量名而不要数据类型(因为它是弱类型),甚至它可以不要函数名字,并且定义一个函数,需要使用关键字function来说明这是一个函数的定义。而且在一个函数内部可以再定义一个匿名函数,这些特点在其他语言中是很不可思议的事情。虽然javascript是面向对象编程语言,但是它并不具备类似于C++,JAVA这类语言的某些功能,如:函数的重载。

(2)、在HTML中使用javascript是非常简单的一件事情,它有两种形式:①内部引入:就是将js代码直接写在HTML代码中,如:

alert(“=============”);②外部引入:就是将js代码单独放在一个文件中,其后缀名是.js,在要使用它的html文件中使用如下代码引入:

这段代码一般放在之间。(3)、javascript中的事件,事件简单说就是用户在使用页面时执行的操作,比如点击鼠标,按键盘等等。一般处理事件都是通过一个函数,如常在js脚本中使用的这种方式:window.onLoad=myFunction;其中onLoad是页面加载完成时要触发的一个事件,该事件的处理函数式myFunction。Javascript中有非常多的时间,比如:onclick(鼠标点击),onsubmit(按钮提交),onchange(下拉菜单),onblur(失去焦点)等等。(4)、javascript和cookie,cookie是一小段信息,当用户第一次访问服务器时,服务器将它发给用户,这样,以后当用户访问这个站点时,服务器就可以通过cookie来识别用户了。Cookie它的格式是有特定格式的,格式如下:

cookieName=cookieValue;expires=expirationDate;path=URLpath;domain=siteDomain其中只有第一部分cookieName是必须赋值的。(5)、DOM(文档对象模型),它要求将HTML文档看做是由节点组成的树结构。通过DOM给出的一些属性及方法,我们可以添加、删除和操作特定的节点,以及在页面上插入和替换节点。

①访问节点:getElementByTagName()获取标签名;getElementsByName()获取name特性等于指定值的元素;getElementById()返回id特性等于指定的元素。②创建和操作节点:createElement()创建标签元素;createTextNode()创建文本节点;appendChild()把文本节点追加到标签元素中;removeChild()删除节点;replaceChild()替换节点;insertBefore()插入节点。

(6)、关于ajax,它并非一个新的技术,而是将很多原本存在的技术进行了一个组合,其中的核心是XMLHttpRequest,Ajax技术让自己的站点具有更好的响应性、更吸引人,这会使站点的用户在浏览过程中更愉快。它主要由下面这些技术组成:①使用HTML和CSS控制页面结构和表示方式;②使用DOM显示和操纵页面;

③使用浏览器的XMLHttpRequest对象在客户机和服务器之间传输数据;④使用XML(JSON)作为在客户机和服务器之间传输的数据的格式;⑤使用JavaScript动态地显示所有内容并且提供交互功能。使用ajax技术,我们一般需要通过以下几个步骤:①首先通过XMLHttpRequest获得一个对象xhr;

②设置xhr的onreadystatechange事件处理程序。每当xhr.readyState属性值发生变化时,就会触发这个处理程序。③调用open()并且传递3个参数:一个HTTP请求方法(例如"GET"、"POST"或"HEAD")、服务器上一个文件的URL和一个布尔值,这个布尔值告诉服务器请求是否异步(也就是说,我们是否会等待请求完成)。

④最后,我们用send()发送刚才创建的请求。如果要请求POST,就传递这里给出的参数;若是GET,直接将参数设置为null。(7)、javascript一些其他知识点:

①alert(“xxxxxxxxxx”)跳出提示框,只有提示信息;confir6(“xxxxxxx”),有两个按钮,用来确认用户的选择;prompt(“xxxxxxxxx”,””),提示用户输入一个字符串,然后对这个字符串进行操作。

②document.write(),用来向页面输出内容;window.location完成页面的转换;

③比较字符串的时候,在javascript中只需要通过==即可,不需要像java一样使用equals()。

④javascript中也有this,JavaScript关键字this使脚本能够根据使用这个关键字的上下文将值传递给函数。

⑤javascript中的匿名函数,样式是:thisImage.onmouseout=function(){this.src=this.outImage.src;}

第一行开始定义一个匿名函数(也就是没有函数名的函数)。本来也可以给它指定一个名称(比如rollOut()),但是因为它只有一行代码,所以不需要命名。⑥在编写脚本时,常常要检查浏览器是否能够理解我所使用的对象,常用于兼容中,我们常用对象探测技术,如:if(document.getElementById){}else{}如果对象存在,if语句就为true,脚本继续执行。但是,如果浏览器不理解这个对象,测试就返回false,并执行条件语句的else部分。在之前还有使用浏览器探测技术。

本周几天时间对HTML、CSS、JavaScript进行了学习,HTML相对来说是比较简单的,要掌握其中的标签难度也不是很大,主要是要明白它只控制文档的结构,表现相关的交给CSS,行为相关的交给JavaScript;CSS中有众多的属性还不是很熟悉,因为自己真正完整布局的网站并没有,但是对CSS大体结构了解,因为它的形式相对来说很单一,在实践中多多运用,私下自己做几个简单的单页,个人觉得问题不大;对于JavaScript之前并没有接触过,经过这段时间学习,明白了其中的一些入门的含义,对其中具有的众多对象,对象的很多方法与属性还不是很熟悉,目前能够进行一些简单脚本的编写与阅读,后面也需要再编写一些复杂的脚本来提高自己这方面的能力。对于这三方面知识点尚有疏漏的地方,望刘老师给予指导。

何磊

201*年11月6日

扩展阅读:java学习总结(基础加web)

Java考试题

Java基础部分

1、请简要描述oop的主要特征,并谈谈对这些特征的理解。

Oop主要特征:抽象,封装,继承,多态;抽象:忽略与当前主题无关的部分,抓住重点

封装:使用方法将类的属性隐藏起来,控制用户对类的修改和数据访问的程度,

继承:子类继承父类的方法和属性,使程序结构清晰,提高挨骂复用,一种isa的关系。多态:不同对象对统一消息进行回应。一种多种同名方法共存

2、char型变量中能不能存贮一个中文汉字?为什么?

能,java中编码方式是unicode,char占2个字节,一个汉字刚好两个字节所以可以

3、shorts1=1;s1=s1+1;有什么错?shorts1=1;s1+=1;有什么错?

错,需要强制转型为short,+=是java定义的运算符故编译是jvm会自动处理

4、请说明break,continue,return的作用。

Break,可用于switch分支一条case语句结束以后,可用于跳出循环Contiue:用于跳出里层循环

Return:也可用于终止循环,有返回类型的方法是用与返回

5、用abstract修饰符修饰的类和方法有什么特点?

修饰的类为抽象类,包含有抽象方法,

修饰的方法,为抽象方法只有方法体而没有具体实现

6、protect修饰的方法与不加任何修饰的方法有什么不同?

加上为修饰后访问为同一包中和该类的子类,不加为默认的包访问权限。

7、什么是对象?什么是类?它们之间有什么关系

对象:具有某些属性和行为的名词,类:具有相同属性以及相同行为的一组对象,关系:对象是类的实例化

8、请描述对象的初始化顺序。

对象初始化顺序:加载类,分配内存空间,清零,加载变量然后方法。先父类静态变量,父类静态块,子类静态成员变量,子类静态块,父类非静态变量,父类构造函数,子类非静态变量,子类构造函数

9、什么是继承?继承的特性可给面向对象编程带来什么好处?

继承:子类继承父类的方法和属性,使程序结构清晰,提高代码复用,一种isa的关系。

10、什么是方法的覆盖?与方法的重载有何不同?方法的覆盖与属性的隐藏有何不同?

方法覆盖:子类重写与父类同名的方法,拥有相同的参数名和返回值,多态的一种体先,重载:具有相同的方法名但是有不同的返回类型或参数。

属性隐藏:子类定义与父类同名的属性,父类的属性就会被隐藏。

11、请简述接口和抽象类的区别。并分别举例说明应用场景。

接口:接口中全是抽象方法,若一个类实现这个接口就必须是先接口中所有的方法。关键字implements和interface抽象类:用关键字abstract修饰,包含抽象方法(仅有方法体而没有具体实现),可以包含普通方法和构造方法,使用时不能用new创建实例

12、说出ArrayList,Vector,LinkedList的存储性能和特性

ArrayList和Vector都是集合,按数组的方式存储,查找比较快,vector是线程安全的,但效率上低于arraylist,Linkedlist:链式集合双向链表,按序号索引数据进行向前向后遍历,所以插入和删除数据最快。

13、请说明Collection和Collections的区别。

Collection是一个j集合的接口,set和list都实现这个接口

Collection:是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作

14、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?

hashset我们自己区分的时候利用迭代器iterator,内部利用hashcode然后equals方法实现区分是否重复。

15、Error和Exception它们继承自哪个类?有什么区别?

继承Throwable这个类,

区别:error错误,一般来说很难回复,如内存溢出,exception,则为程序正常运行时永远不会发生的的异常,程序员需要处理。

16、什么情况出现NullPointerException异常?怎样处理?

使用一个对象是,对象为null,在适用对象前进行判断

17、请列举Java类中的方法修饰符,并简述其含义。

18、try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前

还是后?

会,在return前

19、Java中如何读写文件,请写出Java代码实现读写文件的基本过程。20、常见的xml解析方式有哪些?区别是什么?

Sax,dom:dom一次性全部读取xml文件,创建一个一颗文档树,故读取大文件是熟读缓慢

21、简要描述数据库连接池的工作机制,并列出使用数据库连接池的优点。

程序运行时,创建一定数量的池连接,比在以后维持不少于这个数量的连接。提高程序运行的效率

22、对于一个Linux命令,可以通过哪些方法了解其具体的使用方法。

Help,info,man,使用格式helpls;lshelp;infols;manls;

23、Linux系统中,请简要描述文件和目录的访问权限的9个权限位的作用,请列举修改权限的命令。

Xxxxxxxxx;前三位表示所有者的可读可写可操作权限,中间所有者的所在用户组;后三位是其他用户,Chmod777要更改权限的对象。

24、数据库中,什么叫视图(View),什么叫索引(Index)?什么情况下会用到索引,视图的主要作用有哪些。

视图:一张虚拟的逻辑表。并不包含实际的数据,相当于一个窗口,可通过该窗口对数据进行查询和修改。作用:使复杂查询变得容易,提供数据独立性,限制数据访问。索引:帮助查找数据。用指针加速取回数据。

Javaweb部分

1、请简述对J2EE的理解。

由sun公司提供的一种企业级基于组件的java开发规范。J2EE定义了13种组件如servlet,jsp,jdbc等。2、简要描述对mvc的理解,并举例说明在项目中的实现思路

Mvc是一种开发模式,优点:耦合性低,可维护性高。,分别代表三个单词:Modle,Veiw,Control,模型层控制程序的业务逻辑,视图层,是接受用户输入和显示数据给用户与用户交互,控制层:控制程序走向,模型层与视图层的中间桥梁。3、Javascript有什么特点?并说明其主要用途。

Javascript:一种脚本语言,是基于事件的面向对象语言,弱数据类型,安全,运行速度快,有强大的函数库,

主要用途:客户端验证用户输入,给用户动态的提示。美化页面。4、什么是servlet容器?它的作用是什么?

Servlet容器:用于创建和维护servlet,提供一个运行环境给servlet的东西。5、请描述servlet的生命周期以及在每个阶段所调用的方法。

实例化:有容器进行。初始化:调用init()方法。处理请求:根据请求方式的不同调用service()中的不同方法如:doget,dopost。销毁:调用destroy方法。6、怎样在web.xml文件中注册一个servlet?

主要两大块:

7、请描述在servlet中forward和redirect的区别与联系。

Forword:请求转发,服务器跳转,一次请求,地址栏不改变,request对象中的信息不丢失。Redirect:请求重定向,客户端跳转,两次请求,地址栏改变,request对象中的信息丢失。8、请描述jsp的执行过程。

Jsp执行经过两个阶段:1、转译阶段,将jsp转译为servlet,

2、编译servlet,生成.class文件,

3、调用.class文件生成html页面显示给用户。

9、如何执行一个线程安全的JSP?

10、Jsp的9个内置对象是什么?他们分别有什么作用。

Jsp九大内置对象:page,request,response,session,application,pagecontext,config,exception,out。四个域对象:out输出信息,e:处理异常,config:拿到一些配置信息。11、请列举出至少5个request对象的常用的方法。12、Jsp的四个域对象是什么?他们的“域”指的是什么?

Page,requerst,session、,application,域表示有效时间,及在什么范围内有效。13、请列列举四个jsp指令,并说明它们的含义。

Page:设置页面属性,taglib,:标签指令,include:包含指令。14、Jsp有哪些动作?作用是什么?

15、请描述Jsp和servlet的区别与联系。

。。。。。。。。

16、请说出在jsp中静态包含和动态包含技术的异同点。

静态是先包含再执行,动态为先执行在编译。

17、在JSP开发过程中,对于同一个用户的会话,要想在不同的页面之间共享数据,可以有几种选择?请一一列举

Request,session,application,cookie,重写地址栏,隐藏域。18、请说明过滤器的工作原理以及重要的接口。

过滤器:当一个请求到达是过滤器会进行拦截,服务器响应消息时也会同样拦截。根据编写的故偶滤器确定是否放行和是否要做相应的处理。重要接口:filter,filterchain,filterconfig。19、什么是监听器?它的作用是什么,请举例说明。

监听器是:专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时。监听域对象自身的创建和销毁的事件监听器监听域对象中的属性的增加和删除的事件监听器

监听绑定到HttpSession域中的某个对象的状态的事件监听器

20、使用http传输协议将客户端的请求传送至服务器端最常用的是哪两种方式,他们的区别是什么。

Get,post,

Get:方式相对来说速度较快,当传输的数据量要小于1kb,传输的信息会在地址栏显示,安全性存在隐患。Post:比get方式安全,传递的数据量也比之要大。21、简述struts2的工作流程。

Struts2:核心为一个过滤器,当一个请求到达的时候,服务器对之进行拦截,参考struts.xml文件,寻找到对应配置的action,寻找到action类,对请求做出相应的处理。处理完后返回一个String,参考struts.xml文件中的配置的result显示相应的页面给用户

22、Struts2配置文件struts.xml中有哪些常用的配置项,它们分别有什么作用?23、请说明在ognl表达式中#、$、%的作用。

Ognl表达式:#是取非valuestack中的值时使用,如request.还有操作集合是时也可以用到。

$配置文件中那取action中的值是会使用到。国际化资源文件中引用ognl表达式%当强制声明为ognl表达式或字符串是会使用到

24、写出3组常见的Struts标签,并简述其作用。

25、valuestack是什么?它的作用是什么?在页面中怎样访问?

Struts的值栈,存放一些请求响应信息,直接访问。26、请简要描述Struts2中拦截器的主要作用、配置及执行流程。

拦截器,servlet中的过滤器相似,当客户端请求到达是经过拦截器,响应是也会经过,是一种aop的思想。配置:interceptor

Servlet是线程不安全的,采用多线程的方式调用service方法。CGI就是单线程,所以servlet比之效率高。Servlet实现单线程的方法:实现singleThreadmodel。

创建线程的两种方式:继承Thread这个类,或实现runnable这个接口,启动线程:statrt(),启动后会调用run方法。Sleep和wait()区别:sleep不会释放锁。Wait()释放锁,必须有notify()唤醒。多线程中实现线程安全:利用关键字synchronized,一把锁,实现同步。死锁的条件:互斥条件,不可剥夺资源,循环等待,请求与保持条件。反射:加载驱动,Class.forName(“类的完整类名”)通过一个class对象拿到其相应的方法属性。组件:就是对数据和方法进行了简单封装。

友情提示:本文中关于《第二阶段WEB开发基础学习总结》给出的范例仅供您参考拓展思维使用,第二阶段WEB开发基础学习总结:该篇文章建议您自主创作。

来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。


第二阶段WEB开发基础学习总结》由互联网用户整理提供,转载分享请保留原作者信息,谢谢!
链接地址:http://www.bsmz.net/gongwen/673064.html
相关文章