一. Web的简单介绍
MyEclipse:
Word Completion --> 默认是 alt+/
Content Assist --> 默认是 ctrl+space
1. 什么是Web?
在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。
Internet上供外界访问的Web资源分为:静态web资源和动态web资源。
2. 软件的架构:
C/S:Client/Server:客户端和服务器 如 QQ、迅雷、暴风影音... 需要在 客户端进行安装
优点:可以在客户端 写出 炫的效果.
缺点:一旦服务器代码进行更新 所有的客户端 都需要更新.
B/S:Broswer/Server:浏览器和服务器 如 WebQQ、支付宝、网银系统... 不需要进行安装 只需要浏览器即可
优点:服务器更新 客户端不需要 更新.
缺点:对服务器压力比较大.
AJAX --- 对 代码写在 客户端浏览器上.(RIA) Rich Internet Application.
软件发展趋势:B/S方向发展. 前端 --- 增强 用户 体验.主要使用Java开发B/S结构的软件.
3. WEB网站资源:
静态web资源:html css js 图片 视频...
动态web资源:
做网站 JSP/Servlet 没有优势. 开发系统 --- 网银、OA、....
SUN : Servlet/JSP
微软: ASP
开源: PHP (LAMP Linux Apache Mysql Php 模板 --- )
日本: Ruby
python
4. 服务器:
硬件:一个电脑.
软件:安装一个 服务器 软件.
* 一台电脑 安装 了 服务器软件的话 就可以称为 web服务器。
公网ip : 独立ip.
作用:在我的电脑上安装服务器 我的电脑上有一个1.html 然后 所有人通过我的ip就可以访问1.html.
服务器底层:Socket.
5. 常见的web服务器:
WebLogic :BEA公司产品. 收费的web服务器 现在已经被Oracle收购了. 支持所有的JAVAEE规范
WebSphere :IBM公司产品. 收费的web服务器 支持所有的JAVAEE规范
Tomcat :apache组织 开源的 免费的web服务器 支持Servlet/JSP规范.
6. 启动的常见问题:
1.没有配置JAVA_HOME
2.端口号冲突: tomcat默认端口号 8080。
http默认端口号 :80
***** 修改tomcat端口号。
去 tomcat/conf/server.xml 重启服务器.
80端口 很容易占用了.
异常:java.net.BindException: Address already in use: JVM_Bind
端口被占用了.
* 1.将占用80端口的进程 结束.
xp: FPort工具
win7: 使用doc命令:netstat -ano
win7自带一个服务器 IIS --- 占用80 开机自动启动.
进入服务界面:services.msc
* 2.将tomcat的80端口 修改了.
3.配置了一个环境变量:
CATALINA_HOME:配置 配置错了。 tomcat启动不了.
配置正确了 --- 启动机器上任何一个tomcat 都相当于 启动CATALINA_HOME配置的tomcat.
7. Tomcat服务器目录结构:
bin :启动和关闭服务器.
conf : tomcat的配置 ---- 重点.
lib :tomcat支持的类库
logs :tomcat的日志.
temp : 存放临时文件.
webapps : 网站 放在路径下 就可以被其他人访问. --- 重点.
work : jsp编译成servlet后的文件 session序列化 --- 重点.
8. web应用目录结构.
website
|---- html css js 图片
|---- WEB-INF
|---- web.xml --- 针对当前项目的配置文件 (必须的)
|---- classes --- Java类编译后的class文件 存在在这个路径下.
|---- lib --- 存放第三方的jar包.
9. tomcat配置虚拟路径.
1.将项目copy到 webapps下.
2.在'conf'下'server.xml'中 配置标签<Context>
在<Host>标签下配置:
<Context path="/itheima" docBase="c:\bb"></Context>
注意: 一个Context即代表一个web应用,context元素在配置文件中除用于映射虚似目录外,
它还可用于为web应用配置一些资源,
例如:配置web应用使用的数据库连接池,javamail session等(这些本配置以后会用到)。
3.推荐使用 在'conf'下新建一个'/Catalina/localhost/xxx.xml'
在xxx.xml中配置<Context docBase="c:\bb"></Context>
--> path就是文件名xxx
10. 通过WAR方式发布部署web应用
jar包:java项目可以制作成jar包
war包:web项目可以制作成war包
* 使用压缩软件 选择 zip格式 进行压缩
* 使用开发工具 Myeclipse 发布项目时候 选择 发布一个模式了.
11. 访问网站全过程分析
1、在浏览器输入url地址
2、访问本机域名解析文件 hosts ======= c:\windows\system32\drivers\etc\
3、如果本机没有查找到域名,查找网络上DNS服务器
4、域名解析后,获得域名对应ip地址。根据ip和port访问网络上指定主机和服务
12. 真实开发网站过程
1、开发网站
2、将网站发布web服务器上 (公网ip)
3、在DNS域名解析服务器上注册域名,和服务器ip绑定
13. 配置虚拟主机(搭建百度网站)
1、抓取baidu主页
2、在c盘 新建虚拟主机目录'c:\baidu'
3、在c:\baidu下新建百度网站目录'website'(复制网站页面到 website目录)
4、在conf/server.xml 配置虚拟主机
<Host name="www.baidu.com" appBase="C:\baidu"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
5、在本机 hosts文件添加 --> 192.168.1.250 www.baidu.com
测试 cmd中 ping www.baidu.com 测试hosts是否配置成功
6、将'website'配置成缺省网站 在<Host>标签内内部添加<Context>标签
<Context path="" docBase="website" />
7、将'baidu.htm'添加到默认欢迎页面 (修改conf/web.xml配置文件)
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>baidu.htm</welcome-file>
</welcome-file-list>
二. HTTP协议入门
1. Http协议:
协议:双方达成一致.
浏览器和服务器端如何进行通信.
HTTP协议.---超文本传输协议.
基于TCP的协议.
默认的端口80
基于请求响应模型:
* 必须先有请求 后有响应.
* 请求和响应必须成对出现.
是TCP/IP协议的一个应用层协议。
通过一个telnet命令 感受HTTP协议.
1.cmd>telnet localhost 80 回车
2.解决telnet命令乱码 ctrl+] 回车
3.telnet命令 不能出错
GET /day02/1.html HTTP/1.1 host:localhost
点两下回车.
通过HttpWatch工具(IE) Firefox 使用fireBug
Http协议的版本 1.0 和 1.1
1.0 客户端和服务器连接了一次以后 马上就会断开
1.1 客户端和服务器连接了一次以后 不是马上断开
2. HTTP请求
客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求。
一个完整的HTTP请求包括:
一个请求行
--> 请求行用于描述客户端的请求方式、请求的资源名称,以及使用的HTTP协议版本号
若干消息头
--> 消息头用于描述客户端请求、哪台主机,以及客户端的一些环境信息等
实体内容
--> 只有POST方式才有.是POST提交参数.GET方式是一个空行。
请求行
格式: 请求方式、资源路径、协议版本
请求方式
请求方式有很多 常用的两种 POST 和 GET这两种:
POST
<form method="POST">
GET
<a href=""></a>
<form></form> 标签默认是GET。
POST提交数据不会显示到地址栏中 会显示到 请求体中 一般没有大小限制.
Get提交数据显示到地址栏中 提交的数据有大小限制 一般不会超过1kb.
资源路径:
协议版本:
请求头:
Accept: text/html,image/*
Accept-Charset: ISO-8859-1
Accept-Encoding: gzip
Accept-Language:zh-cn
Host: www.itcast.com:80
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT
Referer: http://www.itcast.com/index.jsp
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
Connection: close/Keep-Alive
Date: Tue, 11 Jul 2000 18:23:51 GMT
重点:If-Modified-Since、Referer、User-Agent
User-Agent : 客户端浏览器类型 MSIE IE浏览器 Firefox 火狐浏览器.
If-Modified-Since:结合 响应中一个头信息 Last-Modified 查找本地缓存.
Referer : 代表 网页 来源。 防盗链.
请求体:
只有POST方式才有.是POST提交参数.
3. HTTP请求的细节
请求行中的GET称之为请求方式。
请求方式有:
POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT、CONNECT
常用的有:
GET、 POST
用户如没有设置,那么默认情况下浏览器向服务器发送的都是get请求,
例如在浏览器直接输地址访问,点超链接访问等都是get,
用户如想把请求方式改为post,可通过更改表单的提交方式实现。
不管POST或GET,都用于向服务器请求某个WEB资源。
这两种方式的区别主要表现在数据传递上:
如请求方式为GET方式:
则可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔,例如:
GET /mail/1.html?name=abc&password=xyz HTTP/1.1
GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K。
如请求方式为POST方式:
则可以在请求的实体内容中向服务器发送数据,Post方式的特点:传送的数据量无限制。
4. HTTP响应
一个HTTP响应代表服务器向客户端回送的数据。
一个完整的HTTP响应应包括:
--> 一个状态行、若干消息头、以及实体内容 。
响应行
格式: HTTP版本号 状态码 原因叙述<CRLF>
举例:HTTP/1.1 200 OK
备注:
响应状态码分为5类,如下所示:
200 :请求成功处理,一切OK
302 :请求重定向 (A找'B'借钱, 'B'通知A找'C'借钱, A又去找'C'借钱) A客户端, B、C服务器.
304 :服务器端资源没有改动,通知客户端查找本地缓存
404 :客户端访问资源不存在
500 :服务器内部出错
HTTP/1.1 200 OK 协议版本、状态码、描述信息
Informational 1xx 信息不足,请求无法处理
Successful 2xx 请求成功处理
Redirection 3xx 请求已经处理 ,还需要客户端有进一步操作
Client Error 4xx 客户端错误
Server Error 5xx 服务器端错误
响应头
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
Expires: -1
Cache-Control: no-cache
Pragma: no-cache
Connection: close/Keep-Alive
Date: Tue, 11 Jul 2000 18:23:51 GMT
重点:
Location : 结合302状态码 完成重定向.
Last-Modified : 和请求 If-Modified-Since 一起用 查找本地缓存.
Refresh : 页面自动刷新或跳转.
Content-Disposition: 下载时候使用的。
禁用浏览器缓存
Expires: -1
Cache-Control: no-cache
Pragma: no-cache
响应体:
显示到页面的HTML代码.
5. HTTP响应的细节
Location: http://www.it315.org/index.jsp (重点) 结合302完成重定向 操作 Location重定向后地址
Server:apache tomcat 服务器类型
Content-Encoding: gzip 响应编码类型 gzip压缩
Content-Length: 80 响应长度
Content-Language: zh-cn 响应语言
Content-Type: text/html; charset=GB2312 响应字符集
Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT (重点) 和If-Modified-Since 一起使用,实现服务器缓存策略
Refresh: 1;url=http://www.it315.org (页面自动刷新)
Content-Disposition: attachment; filename=aaa.zip 文件下载
1.重定向:
// 设置状态码 302
response.setStatus(302);
// 指定 重定向页面地址
response.setHeader("Location", "img.html");
2.自动刷新
// 设置refresh
response.setHeader("refresh", "5;url=index.html");
// 显示提示信息
response.setContentType("text/html;charset=utf-8");
response.getWriter().println("网页会在5秒后 跳转 index.html");
3) gzip压缩
工具-- internet选项 --- 设置 --查看文件
+ 0.000 ! 0.097 394 7553 GET 200 html http://localhost/
配置tomcat/conf/server.xml 在 Connector中配置 压缩
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443“ compressableMimeType="text/html,text/xml,text/plain" compression="on"/>
+ 0.000 0.093 394 2715 GET 200 html http://localhost/
4) Tomcat默认缓存策略 If-Modified-Since Last-Modified 结合304 实现
5) 禁用缓存
Expires: -1
Cache-Control: no-cache
Pragma: no-cache
防止浏览器不兼容,如果网页禁用缓存后,不会在 工具-- internet选项 --- 设置 --查看文件 产生缓存文件
补充
1. 端口占用问题
WindoxXP 使用Fport工具
Win7 使用DOS命令 netstat –ano
2. services.msc 快速打开服务
3. ipconfig /flushdns命令
插入图片

