JavaWeb之tomcar&HTTP

1 DOM4j Xml解析
1.1 JAXP
 JDK内置,不需要导入第三方jar包,简单工具优先选择。
 支持两种解析方式:DOM、SAX
1.1.1 JAXP—DOM
加载xml 生成一个DOM树。获得整个文档的描述对象Document
解析 api

  1. 获得工厂
    DocumentBuilderFactory –》 .newInstance()
  2. 获得解析器  factory.newDocumentBuilder()
  3. 解析  Document builder.parser(new File(“…xml”))
  4. 遍历
    NodeList document.getElementsByTagName(“”);
    nodeList.getLength() nodeList.item(i)
    document.getDocumentElement() 根元素
    element.getChildNodes()
    1.1.2 JAXP–SAX
    逐行解析,事件触发。每解析一行,将触发一个事件,之后使用完成将释放资源。只能进行读操作。
    核心api操作
  5. 获得工厂 SAXParserFactory.newInstance()
  6. 获得解析器 SAXParser -> factory.newSAXParser()
  7. 解析,指定处理类,提供事件 saxParset.parser(new File(xml), new DefaultHanlder())
    startElement / characters() / endElement
    1.2
    Dom4j 非常流行第三方解析工具包
    核心api
  8. 核心类 SAXReader
  9. 解析获得document , read(new File(xml))
  10. 操作
    根元素 getRootElement()
    获得所有子元素 elements()
    获得指定名称所有子元素 elements(“title”)
    获得指定名称的一个元素 element(…)
    设置属性 addAttribute(name,value)
    添加元素 addElement(“”)
    标签体内容 getText() | setText()
  11. 回写
    XmlWriter(out , OutputFormat)
    writer(document)
    注意:关闭流

2 XML约束方式:Schema
2.1 介绍
Schema与dtd都是约束xml内容,通过约束编写规定xml内容。
XML Schema 是基于 XML 的 DTD 替代者。
基于xml:文档内容为xml,扩展名为其他的。
希望使用xml进行内容描述,但内容有很多,需要特殊的编辑器,扩展名就是用于确定编辑器的。
当约束文档读取到内存之后,就是xml的。
XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。
Schem扩展名:*.xsd

2.2 Xml关联schema

3 Web入门
3.1 介绍
WEB采用B/S通信模式,通过超文本传送协议(HTTP, Hypertext transport protocol)进行通信。无状态通信。
通信模式:B/S、C/S
B/S : Browser/Server 浏览器/服务器模式。
常见应用:淘宝、web QQ等
特点:浏览器不需要更新内容,显示效果等更改。效果一般的。
B/S是特殊的C/S –浏览器有内置不需要安装的。
C/S:client/server 客户端/服务器模式
常见应用:QQ、大型游戏 等
特点:客户端必须要更新(下载)。画面、特效很炫。
使用HTTP协议(超文本传输协议),下午主要讲解
浏览器与服务器通信,采用 无状态,及:当服务器关闭时,浏览器不知道的,只有当再次请求时才知晓。
3.2 Web资源
通过浏览器访问服务器端的资源
服务器端资源分类:动态资源、静态资源
静态资源:html、css、javascript、xml等,编写完成之后固定的。
动态资源:程序运行时生成的资源。例如:jsp、php、aspx等
例如:用户登录,每一个人看到登录信息不能,其他内容相同的。
3.3 URL
浏览器 必须通过请求路径 访问服务器端资源。
请求路径一般称为URL
URL:统一资源定位符,用于全球唯一标记一个资源命名方式。
格式:协议://ip地址:端口/资源相对路径?参数
Ip地址
本地ip:127.0.0.1,表示自己的计算机
局域网ip:192.168.17.95 (不用花钱的,需要提供设备)
外网ip:182.48.112.83, 上网使用ip (必须花钱的)
域名:提供一个快速访问名称,别名。
DNS:域名解析服务(服务器),将域名和 ip绑定。
端口:0—65535 之间任何数,但1024之前预留系统,不建议使用。
TCP端口、UDP端口
例如:http://192.168.17.95:8080/day06/a/b/1.html?username=jack&password=1234
对比:URI:统一资源标识符,用于描述一个相对路径。
URL 是URI的子集。
例如: /a/b/1.html – URI

3.4 常见web服务器
WebLogic : Oracle ,支持JavaEE 13核心技术,但收费。
WebSphere :IBM,支持JavaEE 13核心技术,但收费。
tomcat:免费开源,支持JavaEE规范:servlet 和 jsp
其他服务器
JavaWeb之tomcar&HTTP_第1张图片

4 Tomcat
4.1 入门
4.1.1 安装
下载:http://archive.apache.org/dist/tomcat/
JavaWeb之tomcar&HTTP_第2张图片

将下载好的zip文件解压,到任意位置(建议:路径没有中文和空格)

JavaWeb之tomcar&HTTP_第3张图片

注意:  可以运行的tomcat源码
	Tomcat 使用java开发的,将tomcat6.zip 解压导入myeclipse即可。

4.1.2 Tomcat安装目录
JavaWeb之tomcar&HTTP_第4张图片

bin 脚本目录,启动和停止脚本。
startup.bat 启动脚本
shutdown.bat 停止脚本

JavaWeb之tomcar&HTTP_第5张图片

conf 配置目录
核心配置文件:server.xml
web项目默认配置文件:web.xml
账号配置文件:tomcat-users.xml
环境配置(上下文配置):context.xml  --》 content内容
lib 依赖jar包,tomcat支持servlet和jsp,及oracle提供规范(接口),tomcat编写实现类。

logs 日志目录,如果出错,可以阅读
temp 临时目录
webapps : tomcat用于存放web项目的目录
work:tomcat处理jsp的工作目录。

4.1.3 访问

在浏览器的地址栏输入:http://127.0.0.1:8080/
或:http://localhost:8080/  localhost 本地域名,与 127.0.0.1 之间绑定。
4.1.4 配置JAVA_HOME
注意:必须配置JAVA_HOME
如果没有配置,双击“startup.bat”闪烁之后没有效果,日志中没有记录

JavaWeb之tomcar&HTTP_第6张图片
配置错误
在这里插入图片描述

4.2 myeclipse整合tomcat
4.2.1 配置tomcat
JavaWeb之tomcar&HTTP_第7张图片

4.2.2 启动tomcat
相当于 执行 %tomcat%/bin/startup.bat
JavaWeb之tomcar&HTTP_第8张图片
JavaWeb之tomcar&HTTP_第9张图片

4.2.3 发布web项目
4.2.3.1 方式1:一个项目可以选择多个服务器

JavaWeb之tomcar&HTTP_第10张图片

4.2.3.2 方式:一个服务器可以有多个项目
JavaWeb之tomcar&HTTP_第11张图片

4.3 web项目
项目名称
| – WEB-INF 目录,可以省略。通过浏览器不能直接访问。(tomcat进行过滤)
| – classes 目录,用于存放web项目的class文件。类似与java项目bin目录
| – lib 目录,用于存放web项目依赖第三方jar包
| – web.xml 文件,当前web项目的配置文件
对比:%tomcat%/conf/web.xml tomcat管理的所有web项目的默认目录。如果自己没有配置,将使用默认。
给当前web项目配置欢迎页面


    1.html

![在这里插入图片描述](https://img-blog.csdnimg.cn/672311ab84744910b05429dd06086457.png)

4.4 tomcat 常见配置
4.4.1 配置账号
点击 管理 所有的web项目时,需要输入账号和密码,点击取消tomcat会给出提示
%tomcat%/conf/tomcat-users.xml 添加 角色role 和 用户 user

访问时,需要使用webapps管理web项目的名称。例如:manager、xxx等
/  表示是  ROOT 目录,必须是大写的。tomcat规定的。

如果使用# http://localhost:8080 浏览器将自动添加/,表示访问ROOT目录。
4.4.2 tomcat端口占用
tomcat默认端口号:8080
异常:
java.net.BindException: Address already in use: JVM_Bind :8080 表示8080端口已经被使用了,及占用了
查询是否已经占用了
方式1:cmd --》 netstat –abo
方式2:使用360

注意:一个程序可以占用多个端口,一个端口只能被一个程序占用。
修改端口号,如果在一台计算机上运行两个tomcat,必须修改3个端口号。
文件位置:%tomcat%/conf/server.xml

 http协议默认端口:80

4.4.3 虚拟路径
在tomcat配置其他位置处的一个项目,访问路径相当于虚拟的
访问路径:http://localhost:8080/webmy/1.html ,访问的是 F盘下的内容
方式1:在%tomcat%/conf/server.xml 配置虚拟路径 – 必须重启tomcat

path相当于项目名称
docBase F盘指定的路径,直接从操作系统复制即可,必须设置到web项目的根,及目录下可以看到WEB-INF
注意:Context 必须是大写
标签必须结束
path就是名称,不需要/
方式2:在%tomcat%/conf/Catalina/localhost/xxx.xml 文件
位置:在%tomcat%/conf/引擎名称/主机名称/xxx.xml 文件
文件名:自定义,xml文件就是需要访问路径
文件内容:

访问路径:http://localhost:8080/abc/1.html  f:\myweb\1.html文件

xml位置通过 %tomcat%\conf\server.xml 配置获得
tomcat处理服务名称:catalina
使用引擎名称,catalina
主机名称:localhost

4.4.4 虚拟主机
思考:F盘有多个项目,其中某一个项目,访问路径如何编写成 www.itheima.com ???
配置虚拟注解

  

name 为URL访问域名,appBase表示访问所有项目的父目录。
修改hosts文件
本地计算机配置文件,hosts文件

  • 用于配置IP和域名对应关系

  • 位置:C:\Windows\System32\drivers\etc\hosts
    访问路径:http://www.itheima.com:8080/myweb/1.html

    通过学习配置信息修改访问路径

  1. 省略“1.html”,配置欢迎页面。给当前项目的添加web.xml 配置
  2. 省略“/myweb” 修改项目名称:ROOT
  3. 省略“8080”,HTTP协议默认端口80,修改端口号
    4.5 tomcat版本
    JavaWeb之tomcar&HTTP_第12张图片

4.6 默认主机
 配置虚拟注解,http://www.itheima.com:8080 / http://localhost:8080 通过操作系统hosts文件关联到127.0.0.1
 如果此时使用 http://127.0.0.1:8080 进行访问,使用localhost还是itheima ??

5 HTTP协议
5.1 安装软件

解压所有内容,点击下一步进行安装。(建议:将IE浏览器设置默认)
httpwatch IE浏览器插件,用于查看HTTP协议详情。

5.2 HTTP协议介绍
基于TCP传输协议。TCP协议采用三次握手建立连接。
浏览器 –》 服务器 ,服务器在吗?
服务器 –》 浏览器,浏览器我在,你呢?
浏览器—》 服务器 ,服务器我也在。
默认端口:80
基于请求—响应模式协议
浏览器发送请求,服务器接收
服务器响应给浏览器,浏览器获得服务器传回来的数据,
一次请求结束
请求/响应成对,必须先有请求,再有响应
协议版本:1.0 、1.1
1.0 一次连接一次请求
1.1 一次连接,可以多次 请求
注意:浏览器与服务器之间的连接,有浏览器自己维护。
window 操作系统 提供给 telnet命令,模拟浏览器建立连接,发送请求过程。
之后使用很少。
JavaWeb之tomcar&HTTP_第13张图片

5.3 HTTP协议请求
http请求包括三部分:请求行、请求头、请求体
浏览器将自动生成3部分内容发送给服务器。
JavaWeb之tomcar&HTTP_第14张图片

5.3.1 请求行
请求的第一行
例如:GET /demo/1.html HTTP/1.1
格式:请求方式 请求路径 协议/版本
请求方式:7种
常用2种:GET、POST
7中:POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT
请求路径:为URL之后相对路径
协议/版本:http 1.0和1.1 版本
5.3.2 GET和POST请求对比
GET请求现象:将请求内容,追加到URL之后。
例如:http://localhost:8080/demo/1.html?username=jack&password=1234
请求路径URL长度有限的,GET请求追加的内容有限的。一般:1024字节(1k)
GET请求将‘请求内容’追加在‘请求行’的‘请求路径’上
例如:GET /demo/1.html?username=jack&password=1234 HTTP/1.1

POST请求,将请求内容存在请求体
存在请求体,请求体没有限制,POST可以给服务器发送任意多的数据。

5.3.3 请求头
Accept: text/html,image/* --支持数据类型
Accept-Charset: ISO-8859-1 --字符集
Accept-Encoding: gzip --支持压缩格式
Accept-Language:zh-cn --语言环境
Host: www.itheima.com:80 --访问主机
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT --缓存时间
Referer: http://www.itcast.com/index.jsp --来自哪个页面、防盗链 – 如果没有通过超链接访问2.html返回null
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) 用户数据
Cookie 表示cookie技术
Connection: close/Keep-Alive --链接状态
Date: Tue, 11 Jul 2000 18:23:51 GMT --时间
MIME类型:(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型
格式:大类型/小类型;参数
大类型:分7类,表示互联网所有资源。
Text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的;
Multipart:用于连接消息体的多个部分构成一个消息,这些部分可以是不同类型的数据;
Application:用于传输应用程序数据或者二进制数据;
Message:用于包装一个E-mail消息;
Image:用于传输静态图片数据;
Audio:用于传输音频或者音声数据;
Video:用于传输动态影像数据,可以是与音频编辑在一起的视频数据格式。
例如:
text/css css文件
text/html html文件
text/javascript js文件
image/* 所有图片
image/jpeg jpg图片
5.3.4 请求体
注意:请求体 与 最后一个请求头之间 存在一个空行
浏览器发送给服务器内容,存放在请求体中
内容格式: k=v&k=v&……
例如:username=jack&password=1234

5.4 HTTP协议响应
3部分:响应行、响应头、响应体
5.4.1 响应行
服务器 响应 浏览器 状态信息描述
例如:HTTP/1.1 200 OK
格式:协议/版本 状态码 状态码对应描述信息
5.4.2 状态码
1xx: 服务器响应浏览器,数据正在发送中。一般使用很少。
2xx: 服务器响应浏览器已经正常结束。常用:200 表示正常。
3xx: 服务器响应浏览器,请求还没有完成,需要浏览器进一步操作,来完成整个请求。
常用状态码:
302 (307):与响应头location 结合完成页面重新跳转。
304:页面读取缓存
4xx: 服务器响应浏览器,浏览器操作有误。
常见:404 页面找不到。(一般请求页面找不到表示用户URL写错)
5xx: 服务器响应浏览器,服务器异常

5.4.3 响应头
Location: http://www.it315.org/index.jsp --跳转方向
Server:apache tomcat --服务器型号
Content-Encoding: gzip --数据压缩
Content-Length: 80 --数据长度
Content-Language: zh-cn --语言环境
Content-Type: text/html; charset=GB2312 --数据类型
Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT --最后修改时间
Refresh: 1;url=http://www.it315.org --定时刷新
Content-Disposition: attachment; filename=aaa.zip --下载
Set-Cookie:SS=Q0=5Lb_nQ; path=/search
Expires: -1 --缓存
Cache-Control: no-cache --缓存
Pragma: no-cache --缓存
Connection: close/Keep-Alive --连接
Date: Tue, 11 Jul 2000 18:23:51 GMT --时间

你可能感兴趣的:(前端,Java,http,前端,java)