今天是学习Java的第26天。
今天的内容是运用学过的知识去做手写服务器的项目。
手写服务器的项目需要综合前面的知识,并在eclipse中建立框架。
预备知识:
编写服务器的内容和用到的知识点 :
1) Socket 编程
2) HTML
3) HTTP 协议
4) 反射
5) XML 解析
6) 服务器编写
Socket 编程:
C/S 结构:客户端与服务器端一次双向通信
B/S 结构:浏览器与服务器
相关练习程序:C/S结构:
在网页输入http://localhost:8005/
得到:
结果
上面的得到的结果中也包含了HTTP的相关知识;
HTTP:Hypertext Transfer Protocol 超文本传输协议,是网 络应用层的协议,建立在 TCP/IP 协议基础上,HTTP 使用可 靠的 TCP 连接,默认端口为 80。 用户打开 Web 浏览器(常见的 HTTP 客户端),输入 URL 地址,就能接收到远程 HTTP 服务器端发送过来的网页,即 HTTP 遵循请求(Request)/应答(Response)模型。Web 浏览器 向 Web 服务器发送请求,Web 服务器处理请求并返回适当 的应答,所有 HTTP 连接都被构造成一套请求与应答。
HTTP 客户端和服务器分别由不同的软件开发商提供,它 们都可以用任意的编程语言编写,如用.NET 编写的客户程序 与用 Java 编写的服务器程序顺利通信,就必须遵守 HTTP 协议,这样才能彼此都懂对方发送的消息,HTTP 协议严格规 定了 HTTP 请求和 HTTP 响应的数据格式。
HTTP 请求格式 :
1) 请求方式、URI(统一资源定位符)、HTTP 协议/版本
2) 请求头 Request Header a) 请求头包含许多有关客户端环境和请求正文的有用信息。例如,请求头可以声明浏览器所用的语言,请求 正文的长度等。
3) 请求正文 Requet Content (只有在 post 方式才有) 请求头和请求正文之间必须有符号行(回车符或行结束符) ,请将求头分开。这个行非常重要,它表示请求头已结束,接 下来的是请求正文。通常 post 方式的数据存放于此,请求正文中可以包含客户提交的查询字符串等信息。在实际应用中, HTTP 请求正文可以包含更多的内容
HTTP 响应格式 :
1) HTTP 协议版本、状态代码、描述
2) 响应头(Response Head)
3) 响应正文(Respose Content)
HTML:
含义:HyperText Markup Language 超文本标记语言 用于描述网页文档的一种标记语言 。
表单 form :
作用:与用户之间进行交互
method:请求方式 get/post
get :数据量小,安全性低,默认方式
post :数据量大,安全性高
action:请求的服务器路径
id : (用户的的浏览器在文档里区分唯一性)前端区分唯一 性。
name:名称,后端(服务器)区分唯一性,获取值,只要提交数据 给后台(服务器)必须存在 name
例:
代码
浏览器显示
浏览器返回结果
Tomcat 简介:
Tomcat 是 在 SUN 公 司 的 JSWDK( JavaServer Web DevelopmentKit ,是 SUN 公司推出的小型 Servlet/JSP 调试工具)的基础上发展起来的一个优秀的 Servlet 容器,Tomcat 本身完全用 Java 语言编写。
需要注意安装过程;
tomcat文件夹作用:
“ lib ”目录下存放了tomcat运行的jar包。
“ logs ”中存放的是日志文件。
conf:目录文件夹中:存放相关的配置文件,作用是便于修改服务器代码运行规则,多为.xml文件。
“ temp ”中存放的是tomcat的临时文件,可以理解为缓存。
“ webapps ”想使用tomcat时,可以将自己的项目部署到此文件夹中。另外,此文件夹中也存放了默认的项目,也可以理解为放代码的容器。
“ work ”工作文件夹;存放jsp编译文件和java文件。
启动 Tomcat 服务器:startup.bat 关闭 Tomcat 服务器:shutdown.bat
Tomcat 的运行原理 :
客户浏览器发出要求访问特定的 Servlet 的请求。
1) Tomcat 服务器接收到客户请求并解析。
2) Tomcat 服 务 器 创 建 一 个 ServletRequest 对 象 , 在 ServletRequest 对象中包含了客户请求信息及其他关于客 户的信息,如请求头,请求正文,以及客户机的 IP 地址 等。
3) Tomcat 服务器创建一个 ServletResponse 对象
4) Tomcat服务器调用客户所请求的Servlet的service服务方 法,并且把 ServletRequst 对象和 ServletResponse 对象做 为参数传给该服务方法。
5) Servlet 从 ServletRequest 对象中可获取客户的请求信息。
6) Servlet 利用 ServletResponse 对象来生成响应结果。
7) Tomcat 服务器把 Servlet 生成的响应结果发送给客户。
图解
安装HttpWatch 便于分析网页数据
使用: IE 浏览器——> 查看——> 浏览器栏——> HttpWatch Professional
预备工作结束。
开始搭建手写服务器的项目框架
框架项目文件
编写 XML 文档 :
编写 IOCloseUtil 类:
Entity 实体类的编写 :
Mapping 实体类的编写 :
解析 XML 文件:
晚安!