大二上假期学习——Day04——javaweb简介、tomcat、HTTP协议简介
一、JavaWEB入门
1.两种架构:C/S 和 B/S
Client/Server:QQ、游戏客户端、网盘
优点:客户端可以任意的设计,可以实现非常绚丽的效果和特殊的功能;
只需要下载一次客户端,以后只依赖网络传输变化的数据,对网络的依赖没有B/S那么强
缺点:第一次使用时需要下载客户端;
当需要更新时,所有的客户端都需要进行更新,有的情况下这是不可接受的;
Browser/Server:WebQQ、网页游戏
优点:不需要客户端就可以使用,有浏览器就能使用;
当程序需要更新时,只需要在服务器进行就可以了;
缺点:浏览器的展示能力还比较有限,对于绚丽的画面难以展示;
所有资源都需要从服务器获取,对网速的依赖严重;
2.javaweb:互联网开发 和 开发B/S架构的企业级应用
互联网开发:
门户网站:广告
搜索引擎:竞价排名 广告联盟
电子商务:卖
开发B/S架构的企业级应用:
金融行业/能源行业/电信行业/国安行业/物流行业......
3.Android:
管理、设计、销售
二、Tomcat
1.端口占用:netstat -ano
查看占用端口的进程pid,再用任务管理器关闭
JAVA_HOME环境变量:指定tomcat启动时使用的jdk所在的位置
Catalina_Home环境变量:指定tomcat在启动时启动哪个位置的tomcat
PS:tomcat5:jdk1.4
tomcat6:jdk1.5
tomcat7:jdk1.6
2.tomcat目录结构:
3. 虚拟主机/web应用:
1)虚拟主机:
一个tomcat可以认为是一台真实主机,在一台真实主机中可以配置多个站点。这些站点在访问者看来,访问他们就像在访问各自独立的主机一样,所以我们可以认为,这些站点都运行在tomcat这台真实主机当中的各自虚拟主机当中,一个网站就可以认为是一个虚拟主机。
2)web应用:
一个虚拟主机中会有很多的web资源,但是web资源不能直接交给虚拟主机,需要按照一定方式组织成web应用,虚拟主机才能使用,一般来说我们会按照功能将某一功能相关的所有web资源组织成一个web应用后再交给虚拟主机。
·1.web应用目录结构:若目录结构不合法可能会出现各种问题
news
|
| -- 静态资源和jsp文件都可以直接放置在web应用的目录下,直接放在web应用下的内容,浏览器可以直接访问到
|
| -- WEB-INF -- 可以没有,但是最好有,如果有一定要保证它的目录结构是完整的,放置在WEB-INF目录下的所有资源,浏览器没办法直接进行访问
| -- classes -- 动态web资源运行时的class文件要放在这个目录下
| -- lib -- 动态web资源运行时所依赖的jar包要放在这个目录下
| -- web.xml -- 整个web应用的配置文件,配置主页/Servlet的映射/过滤器监听器的配置都需要依赖这个文件进行
3)配置虚拟主机:
在conf/server.xml中<Engin>标签下配置<Host>标签就可以为tomcat增加一台虚拟主机。
name -- 指定虚拟主机的名称,浏览器通过这个名称访问虚拟主机。
appBase -- 虚拟主机管理的目录,放置在这个目录下的web应用,当前虚拟主机可以自动加载。
*由于浏览器访问地址时,需要将地址翻译成对应的IP才能找到服务器,这其中翻译的过程是DNS服务器来实现的,我们在做实验的时候没有办法去修改DNS服务器,此时可以使用hosts文件模拟DNS的功能,从而完成实验。
缺省虚拟主机:如果来访者是通过ip来访问,这个时候服务器无法辨别当前要访问的是哪台虚拟主机中的资源,此时访问缺省虚拟主机,缺省虚拟主机可以在server.xml中engin标签上通过defaultHost属性进行配置。
4)为虚拟主机配置web应用:
(1)在Server.xml的<Host>标签中,配置<Context>标签,就可以为该虚拟主机配置一个web应用。name -- docBase
若将path设置为空,则这个web应用为缺省web应用。
这种配置方式需要重启服务器,不推荐。
(2)在tomcat/conf/[Engine]/[Host]/ 在这个目录下写一个xml文件,其中xml文件的名字就是虚拟路径,在这个xml中可以配置<Context>标签,其中配置真实路径,如果所配置的虚拟路径中有“/”,由于文件名不允许包含“/”需要用“#”替代。
只要将文件名设置为ROOT.xml,则这个xml描述的web应用就成为了缺省web应用。
这种配置方式不需要重启服务器,推荐。
(3)直接将web应用放置到虚拟主机管理的目录下,虚拟主机就可以找到这个web应用,从而管理这个web应用。
只要将web应用文件夹的名称改为ROOT,这个web应用就是缺省web应用。
5)*web应用的虚拟路径映射 -- 为web应用的真实存在的路径配置一个浏览器访问的虚拟路径
6)*配置缺省web应用 -- 默认的web应用,当不写web应用名时,就访问这个web应用
4.零散知识
1.war包:减少web应用的体积方便传输,并且在虚拟主机管理的目录下,war默认可以自动解压。
cmd命令:jar -cvf xxx.war *
2.通用Context配置、通用web.xml配置
3.tomcat服务器的管理平台
4.tomcat体系架构
三、HTTP协议
1.HTTP = hypertext transfer protocol(超文本传输协议),它是TCP/IP协议的一个应用层协议,用于定义web浏览器与web浏览器之间交换数据的过程。
2.
规定客户端和服务器如何进行交互;
基于TCP/IP协议的应用层协议;
3.
HTTP协议基于请求响应模型;
一次请求对应一次响应;
请求只能由客户端发出,服务器只能被动的等待请求做出响应;
4.HTTP请求 和 HTTP响应
1)HTTP请求
·1.请求行
GET /books/java.html HTTP/1.1
请求方式:GET、POST、HEAD、OPTIONS、DELETE、TRACE、PUT;
真正使用:POST/GET
请求区别在于请求参数在传递的过程中方式不同
GET:请求参数将会附加在请求的URL后面作为请求地址的一部分带到服务器端,可传输的数据大小一般有限制,一般不允许超过1k
POST:请求参数将会在HTTP请求的实体内容中进行传输,传输数据大小无限制
除了利用form表单提交数据时,form表明明确的声明要用POST提交,这时请求参数就是POST提交;
除此以外所有方式的请求参数都是GET提交。
请求的资源部分的名称
所遵循的协议版本
·2.若干请求头
·3.实体内容
2)HTTP响应
·1.状态行
HTTP/1.1 200 OK
协议版本
状态码 -- 用来表示本次请求的处理结果的代码
200 -- ok
302 -- 请求重定向
304/307 -- 使用缓存
404 -- 找不到资源
500 -- 服务器端错误
原因叙述
·2.若干响应头
Expires:-1 -- 通知浏览器是否缓存当前资源,;若值以毫秒为单位,则通知浏览器缓存资源到指定的时间点;若值为0或-1,则通知浏览器禁止缓存。
·3.实体内容