课程总结
C/S架构:
socket、serversocket、awt/swing做一个客户端软件。
建好socket连接后,通过IO流来交换数据。数据格式由各个开发者自己确定。name:ddd uname:ddd。
B/S架构:
浏览器也是一种客户端软件。
HTTP协议定义了浏览器和服务器通讯的基本规则之一。
浏览器和服务器之间的交互:
- 交互模式是:请求-响应。
- 客户端先发出请求,服务器根据请求内容发送响应内容。客户端根据响应内容进行显示。
客户端发出请求的格式应该是什么样的?
- 首先服务器的地址、端口、资源地址。 请求行
- 请求头
- 请求实体
注:客户端向服务器传参,如果将参数放到请求行,即为get方式!如果将参数放到请求实体中,即为post方式!
服务器受到请求内容后发送响应内容
- 响应内容怎么定义:
a) 状态行(200,404,500)
b) 响应头
c) 响应实体
客户端收到响应内容之后,该如何显示这些内容?
- 首先HTML诞生了。 <b>哈哈哈哈</b> <font color=red>五星红旗</font>
- 希望HTML元素可以动起来,这样就诞生了javascript(livescript)。
- 我们希望有个技术可以精确的、更加漂亮的控制页面元素的显示。于是CSS诞生了。
服务器根据请求内容发送响应内容
- 如何收到请求内容?
a) 建立监听。ServerSocket, s.accept()。
b) 启动一个线程(轻量级的进程),为请求的客户提供服务。
c) 为了封装客户端提供的请求信息,于是我定义一个对象:HttpServletRequest对象。
d) 为了封装回送给客户端的响应内容,我们定义一个对象:HttpServietResponse对象。
- 根据请求内容调用相应的程序(Servlet)
a) 我们通过web.xml中定义的url和servlet的关系,找到相应的servlet程序。
b) 于是我们定义了HttpServlet,并且增加
service(HttpServletRequest req, HttpServletResponse response) 方法
c) 将response对象中的信息,转译成基于http协议的响应内容。再将这些响应内容通过socket传送给客户端。
为了统一处理上述流程,于是我们编写了一个程序,叫做tomcat服务器。 我们也把服务器叫做web 容器,servlet容器。
下面要解决的问题就是怎么样使我们的Servlet程序,更加规范,更加强大?
- 浏览器发送给服务器的请求内容。 HttpServletReqeust对象
- 服务器回送给浏览器的响应内容。 HttpServletResponse对象
- servlet类读取web.xml中自己的配置信息。 ServletConfig
- 需要读取web.xml中的公共信息<context-param>。 ServletContext
- 将所有servlet放入一个容器中统一管理。 ServletContext
- 保存以前操作的状态。 客户端保存Cookie 服务器保存Session
这时,我们发现servlet擅于做业务逻辑处理,但是不善于做页面展示的代码处理。于是,我们对servlet进行了改进处理,jsp诞生了! jsp也是servlet,也是java类。你访问一个jsp实际上是执行了对应的java类。 我们需要一个统一的转译程序,可以将jsp文件内容转译成java类代码,于是产生了jsp引擎(一般服务器软件自带了这样的功能)。
ajax—>异步模式,局部刷新效果。
通过增加XMLHttpRequest对象,使用XHR对象发送请求,获得数据后,也是首先传给XHR对象,再通过javascript代码操作dom模型,实现局部刷新效果。