C/S框架(客户机和服务器)
Socket、servlet、awt、swing。做一个客户端软件。
建好servlet连接后。通过IO流来交换数据,数据格式有各个开发者确定。Name:ddd unname:aaaa
B/S框架(浏览器和服务器)
浏览器也是客户端软件。
http 定义了浏览器和服务器通讯的基本规则之一。
浏览器和服务器之间的交互
1.交互模式是:请求。响应
2.客户端先发出请求,服务器根据请求内容再发送响应内容。
客户端发出请求的格式应该是怎么样的?
1.首先是服务器的端口、地址,资源地址。请求行。
2.请求头。
3.请求实体。
注意:客户端向服务器传递参数,如果将参数放到请求行,是以get方式!如果将参数放到请求实体中,是以post方式!
服务器根据请求内容发送响应内容
1.响应内容怎么定义
a)状态行{(200请求成功)、(404未找到资源)、(500内部服务器 错误)}
b)响应头
c)响应实体
客户端收到响应内容之后,该如何显示这些内容?
1.首先是HTML诞生了 显示的内容 你好!
2.希望HTML元素可以动起来,这样就出现了javascript。
3.我们希望有个技术可以精准的、更加漂亮的控制页面元素的显示, 于是就诞生了css。
服务器根据请求内容发送响应内容
1.如何收到请求内容
a)建立监听,ServletSocket,s.accept()。
b)启动一个线程(轻量级的进程),为请求的客户提供服务。
c)为了封装一个客户端的请求信息,于是定义一个对象: HttpServletRequest对象。
d)为了封装回送客户端的内容信息,于是定义了一个对象: HttpServletResponse对象。
2.根据请求内容调用相应的程序(servlet)
a)我们通过web.xml中的uri 和servlet的关系,找到相应的servlet 程序。
b)于是我们定义了HttpServlet,并且增加了servlet(HttpServletRequest request,HttpServletResponse response)方法。
c)将response对象中的信息转译成http协议的响应内容,再将这 些响应内容通过Socket返回到客户端。
为了统一处理上述的流程,就有了Tomcat服务器,我们也把服务器 叫做web容器,servlet容器。
怎么使我们的servlet程序更加规范,更加强大?
1.浏览器发送给服务器的请求内容。HttpServletRequest对象。
2.服务器回送给浏览器的响应内容。HttpServletResponse对象。
3.Servlet类读取web.xml中自己的信息配置。servletConfig
4.读取web.xml中公共信息
5.将所有servlet放入一个容器中统一管理。servletConttext。
6.保存以前操作的状态 :客户端保存Cooke,服务器保存Session
这时候我们发现servlet善于做好业务逻辑的处理,但是不善于做页面展示的代码处理,与是我们对servlet进行了处理,jsp诞生了。Jsp也是servlet,也是java类。访问一个jsp也就执行了对应的java类。我们需要一个统一的转译程序,可以将jsp文件内容转译成java类代码,于是产生了jsp引擎(一般服务器都自带了这中功能)。
Ajax(异步模式,局部刷新效果)
通过增加XMLHttpRequest对象,使用 XHR 对象发送请求,获得数据后,首先传给XHR对象,再通过javascript代码操作dom模型,实现局部刷新效果。
HTML
超文本语言
非表单标签
1. B粗体 ,u 下划线,i斜体,del删除效果
2. A 超链接 href,targe=_blank
3. Img 图片
4. Frameset(fram)框架集
5. table表格 th tr td ,colspan、rowspan
6. 列表标签 ul,li,or
7. Embed 用来播放视频、MP3等
8. Div虚拟矩形区域 ,span 行
表单标签
1.
2.表单域(表单域中一定要有name属性,否则该表单域的值不会被 提交)
a).文本域(text单行文本域,password密码框,testarea多行文本 域)
b) radio单选按钮(组,name属性一致即为一组,每一组只能提 交一个值)
c).checkbox复选框(组,name属性一致即为一组,每一组可以提 交多个值)
d).select,option下拉框(可以实现多选一,多选多)
e).file 文件域,实现文件的上传(method=post,enctype= “multipart/from-data”)
f). hidden 隐藏域(不需要用户输入,但是服务器又需要的值)
g).reset 重置
h).sumbit 提交按钮
i).butten 普通按钮(通常用来激活一个js函数)
CSS
1.如何引用css信息
a) 通过htnl元素的 style属性,class 属性
b) 通过块
c) 通过引用外部的css文件
2.Css选择器
a) ID选择器 #myRed(color:red) 红色
b) CLASS 选择器 .myRed(color:red) 红色
c) 元素选择器 b{color:red; font-size:”2”} zhang
3. css属性
a).文本属性
b)定位属性(静态定位、绝对定位、相对定位、固定定位、z-index)
c)列表属性
d)布局属性
e)边框属性
JAVASCRIPT
JS的基本属性
1.基本数据类型:undefined,null,number,字符串、boolean, object
2.变量的定义:var
3.控制语句
4.内置语句:eval(), escape(),unescape()区别?
5.常用的对象:Date,String,Math,RegExp,Arry
6.数组: var a= []; var b = new Arry();
7.对象的定义
8. json
var User = ( name : ‘zhangsan’ ,pwd:’123456’,sleep:function(){ alter(“xxxxx”); }); user sleep(); |
9.函数也是对象
10.继承是通过prototype属性来模拟。
String.prototype.trim = function(){
return this.replace(“(^\s+)||(\s+$)”,” ”)
}
DOM操作
1.如何获得节点
a)直接获得
Ⅰ. document.getElementById()
II. document.getElementByName()返回的是数组
III. document.getElementByTagName()根据标签名字获取,返回 的是数组
b)间接获得
I . 通过父节点获取子节点
1)childNodes
2)firstChild,lastChild
II. 通过子节点获取父节点
parentNode
III. 兄弟节点
nextSibling,preSibling
2.如何操作节点
a)判断节点类型:nodeType:
b)节点的属性
c)节点的文本内容:innerHTML
3.改变DOM结构
a) 增加节点:appendChild,insertBefore
b) 删除节点:removeChild
c) 替换节点:replaceChild
4.表单的操作
a) 通用属性:value,disabled,表单对象elements
b) 单选按钮和复选框操作的时候,一般采用遍历
c) 表单验证:
I.
II.
Servlet
1.浏览器发送给服务器的请求内容。HttpServletRequest对象。
getParameter(), getParameterValue()处理复选框
作为作用域:setAttribute, getAttribute, removeAttribute.
GetRequestURL,getRequestURI,getQueryString,getContextPath
获得客户端的IP和端口:getRemoteAddr,getRemotePort
request.setCharacerEncoding设置请求实体的编码,它对get无效,对post有效。如果要让对get方式有效的话,可以改变tomcat配置文件servlet.xml对counection元素增加一个属性:useBodyEncondingForURL=”true”;
2.服务器回送给浏览器的响应内容。HttpServletResponse对象。
setCharacerEncoding, setContextType(“text/html:charset= gbk”)
getWriter输出文本 getOutputStream输出非文本
重定向:response.sendRedirect(“http://www.baidu.com”);
3.Servlet类读取web.xml中自己的信息配置。servletConfig
4.读取web.xml中公共信息
获得:this.getServletConetext()
作用域:可以被所有的servlet共享
其他方法:getRealPath(“1.jsp”),获得子目录信息getResourcePath
5.将所有servlet放入一个容器中统一管理。servletConttext。
6.保存以前操作的状态 :客户端保存Cooke,服务器保存Session
客户端保存cookie的流程:
a)服务器端写代码:Cookie c = new Cookie(“a”,”aaa”); c.setMaxAge(2000); response.setCookie(c);
b)响应头就会有一个:setCookie: a = aaaa;
c)浏览器收到以后,先放到内存中。如果Cookie设置了有效期,则会 写到硬盘的Cookie文件中。
d)浏览器以后访问服务器的时候,就会自动携带(在请求头中)有效 的Cookie信息。
服务器如何保存信息(session的跟踪机制)
a) 服务器会new一个session对象,同时,指定一id给session对象。
b) 通过响应头设置:setCookie;sessionId=1523454545;
c) 浏览器收到sessionId这个信息,下次访问一定会携带sessionId
d) 服务器收到sessionId后,根据sessionId找到相应的session对象, 然后就可以查看对象里面的内容了。实现了状态的保存。
Servlet生命周期:
1.加载和实列化
a) 第一个请求的时候(servlet是单列,只有一个servlet对象)
b) 如果配置了
2.初始化状态
调用init
3.执行状态
Service, doGet, doPost
4.销毁状态
destroy()
JSP
1.<% %>
2.<%= %>表达式
3.<%! %>声明
4.<%-- --%>注释
5.<%@ include file=”2.jsp”%>静态导入,两个jsp文件翻译的时候就 合在一起了。
6.
7.Jsp的九大内置对象:page,pageContext,request,response,application,session,out,congfig,Exception
EL和JSTL
EL表达式操作的是作用域的属性:
格式:$( )
JSTL标签库
1. foreach
2. if
3. Chose ,when,otherwise
4. set
5. Improt
Ajax
核心技术,通过XHR (XML Http Request )对象发送请求,通过XHR对象接受响应,在通过js操作dom对象,将接受的新信息,付给某个元素,从而实现局部刷新效果。
如何使用XHR对象
1.创建XHR对象
if(window.XMLHttpRequest){ req = new XMLHttpRequest(); }else if(window.ActionXObject){ Req = new ActionXObject(“Msxml2.XMLHTTP”); } |
2.创建一个请求
Req.open(“get”,”DemoServlet?Username=”+”username.value+”&aaa=”+new Date()); |
3.设置监听,处理服务器返回的响应内容
requset.onreadystatechange = function(){ if(request.readyState == 4){ var result = request.responseText; document.getElementById(“div2”).innerHTML=result;
} } |
4.发送请求
Request.send(null); |
DWR框架
客户端编程:javascript
服务器端编程:java
1.首先配置一个DwServlet
|
2.创建dwr.xml
|
3.页面中增加js文件
|
4.调用方式
function(){ var uname= document.getElementById(); P1.test(callbackFun4);
} function callbackFun(flag){ if(flage){ alter(“可以使用此名字”); }else{ alter(“次名字不允许使用”); } } |