一些基本的Web理论知识适当结合了一些实例。
主要涵盖内容有:HTML+CSS+JSP+JDBC+AJAX+XML+WebService+EJB+Servlet。
- Web 概述
- Web是Internet上一种应用或者服务,使人们能方便快速的发布和获取信息。Web服务由Web服务器和浏览器共同提供。
- Web服务器就是由软件和硬件构成的能提供Web服务(相应用户请求,处理请求并返回处理结果的)的系统。
- 静态页面和动态页面:静态页面是网站发布时就写好的,动态页面是用户请求时生成的。
- Web服务器与浏览器之间通过HTML进行交互。
- Web站点体系结构:静态模式(所有页面都是提前编辑好的静态页面),一般动态(增加了数据库服务器,通过实时获取数据库信息更新页面),多层动态(增加了一层服务器,将显示和逻辑分离同时减轻了Web服务器的负担:ASP.net,EJB).
- URL:统一资源定位术:protocol :// hostname[:port] / path / [;parameters][?query]#fragment
- HTTP:超文本传输协议,定义了浏览器怎么将请求发送给服务器以及服务器怎么将响应返回给客户端:
GET :浏览器将参数和值通过?附加在URL后面进行传递,服务器将资源放在响应报文的数据部分
POST :将用户请求以键值对形式封装在保温数据部分,用于传输大量数据
HEAD PUT DELETE OPTIONS TRACE CONNECT 8
- 客户端动态技术:JS,由浏览器解释执行的脚本代码(这里应该有JS代码)
服务器端动态技术:JavaBean,JSP,Servlet,ASP,PHP
异步刷新技术Ajax:异步JS和XML,不刷新整个页面而更新其中的一部分
- Applet是下载到本地运行的.class为后缀的JAVA编写的小程序,出于安全考虑访问本地信息受限
- JavaScript是位于Java和HTML之间的事件驱动的编程语言,由浏览器而非JVM*解释*执行
- DHTML在下载网页后仍能实现实时的元素变换,是CSS,HTML4.0,HTML DOM(文档对象模型)技术的体现
- Servlet,在服务器端运行,能处理HTTP请求产生响应的动态页面,缺点是页面和逻辑交织,自己写的Servlet应继承HttpServlet类并重写doGet(),doPost()
- JSP(Java Server Page)服务器的JSP引擎解释JSP,并以HTML形式返回浏览器,JSP可通过JDBC链接数据库。JSP和其他服务器端动态技术的区别是它最终被编译为Servlet并由JVM执行,且编译只发生在第一次请求JSP页面时,所以执行效率高。
- JavaBean:可重用组件。
- WebService:向外界暴露一组能通过Web调用的API,实现通过Web调用完成一些功能。可被描述,发布,查找以及调用:
XML做数据的基本格式+SOAP做信息交换的协议+WSDL做描述文档的语言+使用RPC调用WebService+UDDI实现注册,查找,调用。
Question:脚本语言的工作原理是什么?
客户端动态技术和服务器端动态技术的区别?
- HTML
- 每个HTML元素都可以看成是一个在浏览器中显示的对象。HTML是一种文档结构语言,HTML文件结构包含HEAD(描述浏览器所需信息)和BODY两部分.
- HTML文档中标签的id属性和name属性有什么区别①Id是html中所有元素都有的元素,而非表单元素没有name属性,如:div,span等。②使用css是通过元素id来选择元素的,而request对象是操纵name属性获取元素的。(比如表单发送给Servlet,Servlet调用request.getParam()中参数是表单元素的name名)③id在整个页面中应是唯一的,而不同表单中可以出现相同name属性的元素。
- 对于HTML中的单选框radio,value="aihao1"都是name属性一样时表示为同一组单选框,用checked表示默认选中。
- CSS层叠样式表
- Cascading Style Sheets使用CSS的好处:①将样式与结构分离,使得样式得到复用,一个html中可以包含多个样式文件,实现了对样式的集中管理。②对网页上的元素精准定位。
- CSS中的三种选择器:类选择器,id选择器,元素选择器。
元素选择器就是直接是元素名称,如p,div,span......
类选择器的格式是“.类名”
Id选择器是“#id名”
交集选择器格式:元素选择器.类选择器/id选择器,选择该元素下特定id或class的元素
并集选择器:使用“,”将三种选择器相连
后代选择器:一种表示嵌套关系的选择器,用space来连接各个选择器名,如:div div .class 选中的是div下div下的所有具有类名的元素
子代选择器:使用大于号表示:父代>子代,且只选中直接子代,若父代和子代还有其他层的则不被选中
*行内样式>ID样式>类别样式>元素样式
以下两个有些浏览器中并不兼容。(虚元素和虚类都是用:连接的)
虚类:选择符:虚类(link,visited,active,hover)一般用于<a>元素
虚元素:一般用于p,div,span的首行或首字母的显示。选择符/选择符.类:first-letter/first-line
- 链入外部样式表的文件以.css为文件后缀名文件中只包含样式,通过在html中用:
<link href="style.css" rel="stylesheet" type="text/css" />
导入外部样式表(通常用于CSS文件中导入另一CSS文件)在CSS文件中可以通过@import url("public.css");导入另一个CSS文件,但是需要将该指令放在CSS文件的第一句。
联入样式表:写在页面的<Head>下的<Style>
内联样式:混合在HTML标记中使用,最不推荐这种写法,通过style=”属性:值;......”
*内联样式>联入(<style>)样式>导入外部样式,同级之间后定义优先。
- CSS中的margin和padding的区别:
- CSS元素的定位position:absolute/relative
- CSS的滤镜:alpha,blue通过“opacity:0.2;”设置透明度
- 动态网页制作(主要就是JavaScript技术的应用)
1.JavaScript能对浏览器中用户事件做出响应,JS的特性:简单性 JavaScript是简化的编程语言,不像高级语言有严格的使用限制,使用简洁灵活。例如在JavaScript中可直接使用变量,不必事先声明,变量类型规定也不十分严格。
基于对象 JavaScript是一种基于对象(object-based)的语言,允许用户自定义对象,同时浏览器还提供大量的内建对象,可以将浏览器中不同的元素作为对象处理,体现了面向对象编程的思想。但JavaScript并不完全面向对象,不支持类和继承。
可移植性 JavaScript可在大多数浏览器上不经修改直接运行。
动态性 JavaScript是DHTML的重要组成部分,是设计交互式动态特别是客户端动态页面的重要工具。
安全性 JavaScript是一种安全性语言,它不允许访问本地的硬盘,并不能将数据存入到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互,从而有效地防止数据的丢失。
2.Java与JS的区别:
①Java是SUN公司推出的新一代面向对象的程序设计语言,主要应用于网络编程;JavaScript主要用于Web页面编写脚本,是Netscape公司的产品。
②JavaJava虚拟机去执行。JavaScript源代码嵌入HTML文件中,由浏览器对它进行识别、解释并执行.
③Java采用强变量检查,即所有变量在编译之前必须声明。JavaScript中变量声明,采用弱变量,在使用前不需作声明,而是解释器在运行时检查其数据类型。
④Java程序可单独执行,而JavaScript程序只能嵌入HTML中,不能单独执行。
⑤Java程序的编写、编译需要专门的开发工具,如JDK(Java Development Kit)、Visual J++等;而JavaScript程序只是作为网页的一部分嵌入HTML中,编写JavaScript程序只要用一般的文本编辑器即可。
- 理论上JS可以插入HTML的任何位置,但一般将他放在<Head>标签下的<Script>标签下。或者通过<script src=””>来引入一段JS代码。<!-- //-->用来兼容不支持JS的浏览器,不支持则不执行。
- JS的数据类型有字符型,数值型和布尔型。字符型用单引号或双引号包围,如果字符串中有单引号,则用双引号包围,如果有双引号则用单引号包围。JS默认所有数值型为浮点数,以0打头表示8进制数,以0x打头为16进制数。冷知识!JS没有8进制和16进制的小数形式。JS中的null表无值/无对象,undefined表示对象属性不存在或者未赋值。变量命名和C相同,无最大长度限制。 JavaScript 中 null 和 undefined 的主要区别是 null的操作如同数字0,而 undefined 的操作如同特殊值NaN (不是一个数字)。对null 值和undefined值作比较总是相等的。(55=='55') è true,JS中“===”来判断相等
JS函数中变量作用域:在函数内用var保留声名的变量是局部变量,作用域仅局限于该函数;在函数外用var声明的变量是全局变量,作用域是整个HTML文件。函数内未用var声明的变量也是全局变量。局部变量与全局变量同名时,其操作互不影响。
天哪!一定要注意中间的大小写行嘛!!!!坑skr人!!!!!!!!!且JavaScript脚本程序必须放在按钮和文本框定义之后
- Number.NaN 是一个特殊的属性,被定义为“不是数值”。例如被0除返回 NaN。试图解析一个无法被解析为数字的字符串同样返回Number.NaN。把NaN与任何数值或本身作比较的结果都是不相等。不能通过与Number.NaN比较来测试 NaN 结果,而应该使用isNaN() 函数。PurseInt函数用来将String类型转换为Int类型。
- escape函数和unescape函数用于将URL中的非ASCII字符进行编码和解码:(在用于发送中文数据的时候很有作用)
escape(string) //用%xx 16进制形式编码
unescape(string) //将用escape编码过的字串复原
- JS创建自定义对象的几种方法:
①对象字面常量的方式,创建的对象不能复用,创建时就完成初始化工作。赋予一组属性和方法,在后面的使用中调用方法操作对象:
图1 图2 图3
②工厂模式创建自定义对象:先创建一个Object类型对象,再使用实参为它初始化属性。返回这个对象,并在以后使用它。
③构造函数方式。
- HTML DOM:HTML的文档对象模型,是一种结构化的文档对象。HTML DOM将网页上的各个元素也看成是对象,可以通过JS获取各个对象,动态的完成对文档中元素的控制。提供存取和更新文挡内容、结构和样式的编程接口。W3C推荐使用document.getElementById(“...”);来操纵对象
- DOM的浏览器对象navigator,使用它可以获取有关浏览器信息和实现窗口的跳转打开关闭等操作:alert("浏览器平台:"+navigator.platform+"浏览器语言:"+navigator.language+"浏览器版本:"+navigator.appVersion);
使用location对象可以实现网页的定位:
window.location.href="http://www.qq.com"; //在同一页面中打开网页
window.location.assign("http://www.qq.com");//前进后退功能不丧失
window.location.replace("http://www.qq.com");//后退功能丧失,回到主页
window.navigate("http://www.qq.com?x=5");
在页面中使用location.search就可以获得上面传递的参数
history.go(-1); //实现返回以前页面的过程