(1)如何准确的定位网络上的一台或者多台主机
(2)找到主机后如何可靠的进行有效的数据传输
TCP提供可靠的或是非可靠的数据传输机制
物理层-数据链路层-网络层-传输层-会话层-表示层-应用层
TCP/IP模型
网络接口层-网络层-传输层-应用层
(1)应用层:HTTP-超文本传输协议
(2)传输层:TCP、UDP协议
TCP:面向连接的可靠的协议,比UDP多了一个建立连接的时间
UDP:无连接不可靠协议,有大小限制,64KB以内,传输效率高
1XX:指示信息-表示请求已经接收,继续处理
2XX:成功-表示请求已经被成功接收,理解
3XX:重定向-要完成必须进行进一步操作
4XX:客户端错误-请求无法实现或请求语句错误
5XX:服务端错误-服务器未能实现合法请求
200:OK-客户端请求成功
301:资源(网页等)被永久转移到其它URL
302:临时移动,(重定向)
400:客户端请求有语法错误,不能被服务器所理解
401:请求未经授权
403:接收到请求但是拒绝服务
404:请求资源不存在
500:服务器发生了不可预期的错误
503:服务器当前不能处理客户端请求,一段时间之后可能恢复正常
Http1.1默认保持长连接,数据完成传输后TCP连接不断开
Http1.0默认保持短连接,每进行一次Http操作,就建立一次操作
(1)Http1.1支持长连接
(2)Http1.1增加了host字段
(3)HTTP/1.1 加入了一个新的状态码 100(Continue)
(1)get请求的数据会附在URL之后,即HTTP协议头中,以?分割URL和传输数据,参数之间以&相连post把提交的数据放在Http包的包体中
(2)get方式请求有大小限制(1024),post没有
(3)post的安全性比get高
(1)重定向是客户端行为,请求转发是服务端行为
(2)重定向:两次请求两次响应,浏览器地址发生变化,可以访问自己web之外的资源,传输的数据会丢失
请求转发:一次请求一次响应,浏览器地址不会发生变化,访问的是自己本身的web资源,传输数据不会丢失
(1)init()方法:初始化servlet对象
(2)service()方法:用于响应客户的请求
(3)destroy()方法:当servlet对象退出生命周期时,负责释放占用的资源
(1)编写一个普通类,实现servlet接口,或者继承HttpServlet
(2)编写web.xml文件
封装了客户请求信息,HttpServletRequest是ServletRequest的实现类
该接口为Servlet提供了返回响应结果的方法
三个阶段:初始化阶段、响应客户阶段、终止阶段
对应的三个方法:init()(只会调用一次)、service(),destroy()
当Servlet容器启动Web应用时,并为每个Web应用创建唯一一个ServletContext对象,可以将其理解为一个Web应用服务器端组件的共享内存
setAttribute(String name,Object object)把一个对象和一个属性名绑定,存储在ServletContext中
最佳的解决办法是:去除实例变量,使用局部变量
用户-请求-查找对应的Jsp-是否存在-是-是否第一次调用或者修改过jsp-是-调用jsp解析引擎-将jsp编译为.class文件
否-字节码文件-执行字节码文件
(1)编译器指令
(2)脚本语法
(3)动作语法
<%--注释(非开发人员不可见)--%>
(1)request
(2)response
(3)out
(4)pageContext
(5)session
(6)Application
(7)config
(8)page
(9)exception
${sessionScope.user.name} ${sessionScope.user[“name”]}
因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。
${pageContext.request.contextPath}
value defult
value var scope
text scope
,(text),
var item="${str}"
(1)cookie是用户访问Web浏览器时,服务器在硬盘上存放的信息, session是存放在web服务器端的一块信息
(2)无论客户端怎样设置,session都可以正常工作,当客户端禁用cookie时无法使用cookie
(3)session可以存储任意java对象,cookie只能存储String类型的对象
(1)jsp是html页面中内嵌Java代码,侧重于页面展示
(2)Servlet是html和Java代码分离,侧重于逻辑控制
(1)自闭合
(2)有开始有结束
段落
内嵌样式表、内部样式表、外部样式表
(1)Js是基于对象的,Java是面向对象的
(2)Js是动态语言,Java不是动态语言
(3)Js是解释性语言,Java是编译性语言
原始数据类型包括数字,字符串,boolear,和null、undefined(任何未被赋值的变量都是这个类型。)
(1)警告框 alert("文本")
(2)确认框 confirm("文本")
(3)提示框 prompt("文本")
(1)onbulr 失去焦点
(2)onchange 值域发生改变触发事件
(3)onclick 鼠标点击事件
(4)onfocus 获得焦点事件
(5)onkeydown 键盘按下事件
是客户端和服务器的脚本语言,是基于对象的解释性语言
(1)存储数据 (2)分离数据 (3)交换数据 (4)共享数据
Xml是一种可拓展标记语言,支持自定义标签,使用DTD和Scheme标准化Xml的结构
优点:用于配置文件,格式统一,复合标准
缺点:数据传输需要流量
解析器有两种:DOM和SAX,其中,使用DOM解析,xml文档以DOM树形结构载入内存,而SAX采用的是事件模型
可以实现局部刷新,在不更新整个页面的前提下维护数据,提升用户体验度