day08
1、上节内容回顾
* jdk 5.0新特性
2、WEB内容的概述
* web:网页,javaweb是使用java开发网页(动态网页),
* 使用什么技术开发动态网页:sun公司提供了两种技术 jsp servlet
* web(网站)的结构:
- c s: client server
* 常见的应用 qq 迅雷 :需要安装在本地硬盘
* 优点:把一些程序放在本地运行,可以减轻服务器的压力
* 缺点:服务器如果更新了,客户端软件跟着更新
- b s: broswer server
* 常见的应用 网银 支付宝
* 优点:如果服务器更新了,浏览器直接访问
* 缺点:服务器的压力大
** 提供一种技术 ajax,使用js,js代码也是放在客户端浏览器运行,也可以减轻服务器的一些压力
*** 要学习是使用java开发b s结构的动态网站
* 静态网站:使用 html css js
* 动态网站:
- sun公司提供: jsp servlet
- php: phpcms
- asp
........
*** 如果单纯的开发网站,java没有任何的优势
* java适合做什么?
- 适合实现一些大型的程序(企业级的应用) oa erp crm
3、web服务器的通信和常见的web服务器
* 比如浏览器 http://www.baidu.com 可以显示出来百度的页面
* 过程:使用ip+端口号,进行访问
* 默认的端口号:80 - 不需要写(可以省略)
* 在你的浏览器里面,输入一个地址,可以访问我的本地文件夹里面的一个文件
* 使用socket网络编程
* 服务器:
1、硬件:一台电脑
2、软件:在电脑安装了一个服务器软件,这个时候,这个电脑就可以作为服务器了。
* 常见的web服务器:
1、tomcat服务器:
- apache组织提供的,免费开源的服务器
2、weblogic服务器
- bea公司提供的,收费的
3、websphere服务器
- ibm提供的,收费的
4、tomcat服务器的安装(*)
* 安装tomcat之前,必须要安装jdk,同时配置JAVA_HOME环境变量
- JAVA_HOME: C:\Program Files\Java\jdk1.7.0_72
** 第一种使用安装文件 .exe文件
** 第二种,使用压缩文件(一般使用这种方式进行安装)
**** 解压的时候,解压到的目录中不能带中文和空格
** 启动服务器:
- 找到tomcat文件夹下的一个目录 bin,有一个文件.bat,文件名称 startup.bat
- 点击之后,出现一个提示框,当看到里面没有exception,在下面有ms,这个时候表示tomcat启动成功了。
- 测试服务器是否启动成功
- tomcat的默认端口号是 8080
** 直接在地址栏输入 http://ip:8080 回车,如果出现一个猫的页面,表示启动成功了
*** 因为现在访问的是本地,ip可以使用 localhost 或者 127.0.0.1
*** http://192.168.33.26:8080/
** webapps文件里面 创建一个文件夹 aa ,在aa里面创建html页面,如果页面可以正常访问,tomcat启动成功
*** http://192.168.33.26:8080/aa/1.html
- 关闭服务器
** 直接把启动窗口关闭
** 在bin目录下 shutdown.bat,点击这个文件,也可以关闭
5、tomcat服务器常见的问题(**)
(1)安装tomcat之前,必须要安装jdk,同时要配置JAVA_HOME环境变量
* 提示出错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
(2)tomcat的端口冲突
* 系统中可能启动了多个tomcat,这个时候出现端口冲突的问题
** 两种解决方式:
1、找到tomcat端口是8080的进程,结束掉
* 在cmd窗口下,使用doc命令 netstat -ano
* 列出当前所有启动的端口
* 找到8080端口的PID
* 启动任务管理器,找到pi对应的值,结束掉
2、修改要启动的tomcat端口
* 找到tomcat目录下的conf目录,找到文件server.xml
* <Connector port="8088" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
* 重新启动服务器,才能生效
** 如果端口修改为80,不需要写端口号,直接通过ip就可以进行访问了
6、tomcat的目录结构(**)
* bin(*): 里面放启动和关闭tomcat的文件
* conf(**):tomcat一些相关的配置文件 server.xml web.xml
* lib: 放入的是tomcat运行需要的jar包,tomcat支持功能的jar
* logs:放入一些日志信息
* temp:临时文件(缓存文件)
* webapps(*):放入开发项目,直接通过ip+端口号+文件名+文件就可以访问
* work:jsp编译成servlet的class文件的地方
7、动态网站的目录结构(*)
* 静态网站:html css js 目录结构 aa/1.html 把他放入到webapps下就可以直接访问
* 动态网站的目录结构
website
- html,css ,js,jsp
-(必须要有的部分)
- WEB-INF
– web.xml
--(可选部分,要么不写,如果写必须按照下面的名称命名)
** classes: java编译成class文件存放目录
** lib:放入一些额外的jar包
** 把webstie放入到webapps下面的
8、myeclipse中集成tomcat(*)
* 为什么要集成:提高开发效果
* 集成过程
* 发布过程
* 会把项目发布到tomcat的webapps目录下
* 并不是把所有的内容都放进去,至是放入webroot目录下的内容
* webroot目录没有了,webroot目录变成了,部署到tomcat的项目名称了
9、tomcat的Manager管理(了解)
* 客户来使用的功能
10、tomcat中一些细节的问题(**)
*创建web项目时候,最上面有 project name:这个名称是放到工作空间中的名称
* 最下面有一个content url,有一个名称,这个名称是 放到tomcat下面的项目的名称
** 如果想要访问这个项目,使用下面这个名称 (放到tomcat下面的项目的名称)
* 可以在myeclipse中修改部署到tomcat的项目名称
* 右键 属性 -- > 搜索 web ,进行修改
11、tomcat中虚拟路径的配置(**)
* 把项目按照目录结构 放入到webapps下面就可以访问
通过配置虚拟路径的方式
* 第一种配置:使用Context来配置(*****)
** 找到tomcat的配置文件 在conf下面server.xml
** 在</Host>之前配置
** <Context docBase="c:\bb" path="/demo"></Context>
- docBase: 本地的文件夹路径
- path:通过什么地址访问 http://127.0.0.1/demo/2.html
** 找到tomcat配置文件中,在conf下面web.xml
** 找到名称是listings 把里面值设置成true: 列出文件夹下面的所有文件(通过列表来展现)
*第二种配置:(****)
** 到conf下面的server.xml中 [enginename]/[hostname]/ directory.
** [enginename] <Engine name="Catalina"
** [hostname] <Host name="localhost"
** 在这个路径下面,创建一个xml文件 haha.xml
** haha.xml: 文件内容,<Context docBase="c:\haha"></Context>
** 访问:直接使用xml的文件名进行访问 http://127.0.0.1/haha
12、访问网站的全过程分析(了解,作为扩展)
** 画图分析过程
13、tomcat虚拟主机(了解,扩展)
* hosts文件路径 C:\Windows\System32\drivers\etc
* 如何仿百度的效果
1、下载百度的页面
2、配置hosts文件 127.0.0.1 www.baidu.com
3、在conf目录下面的server.xml进行配置,
- <Host name="www.baidu.com" appBase="I:\baidu"
unpackWARs="true" autoDeploy="true">
<Context docBase="\website" path="/"></Context>
</Host>
** name:改成想要访问的域名地址
** appBase:页面所在的本地路径
** 配置 Context docBase="\website" path="/"
** 修改tomcat的端口号 80
** 设置首页面 在tomcat里面conf下面的web.xml中
- 在下面的 <welcome-file-list>里面 增加 <welcome-file>baidu.htm</welcome-file>
**** 最终可以通过www.baidu.com来访问本地百度的页面
** 可以配置多个虚拟主机
** 但是必须要有一个默认的虚拟主机(直接通过ip的访问的)
** 不是默认的虚拟主机不能直接通过ip访问的
14、http协议快速入门(**)
* 什么是http协议
** 协议:双方可以达成的共同的目标
** http:网络中发送请求和接受请求数据格式
- 请求和响应要遵循一定的格式,才能完成网络的操作
*http协议的特点:
1、默认的端口 80
2、基于tcp的传输协议
3、请求和响应是成对出现(先有请求后有响应)
* 使用doc命令 telnet来模拟http协议的操作
** 首先打开cmd窗口
** 直接输入命令 telnet localhost 端口号 80
** 会有中文乱码问题,解决 ctrl+],直接点击回车
**
请求:
GET /aa/1.html HTTP/1.1
host:localhost
服务器响应:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Accept-Ranges: bytes
ETag: W/"21-1426298016838"
Last-Modified: Sat, 14 Mar 2015 01:53:36 GMT
Content-Type: text/html
Content-Length: 21
Date: Sat, 14 Mar 2015 07:07:46 GMT
<h1>hello world!</h1>
* 推荐多个工具
** httpwatch:这个工具只能在ie上使用,其他浏览器目前是不支持的
- 安装完成之后,在ie的工具里面自带添加进去
- 如果找不到,可以通过快捷键 shift+f2可以打开
** ie自带工具
- 点击 f12 点击网络,开始捕获 ,可以看到当前请求和响应的信息
** 火狐自带工具
- 需要安装一个firebug工具,也可以看到当前请求和响应的信息
** 谷歌自带工具
- 点击f12,可以看到当前请求和响应的信息
15、http请求操作(*)
* 实现一个表单使用get和post提交
** 请求的内容
-
GET /day082/request/form01.html HTTP/1.1
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
** http请求的组成(***)
1、http请求行 :提交方式 访问的地址 http的版本
2、http请求头:使用key-value形式,一个key可以有一个value,也可以有多个value
3、http请求体:通过post提交的数据 比如: username=zhangsan&password=aaaaaaaa
** http重要的请求头
1、Referer:可以防盗链(得到当前访问的路径)
* 演示防盗链的效果 - 使用 servlet来实现
** 所有的内容,只允许my文件夹下面的html才可以访问
** 如果不是从my文件夹下面访问的html文件,都不可以访问
2、User-Agent: 可以获取当前使用的浏览器
- ie浏览器: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; MAAU)
- 火狐浏览器:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
3、If-Modified-Since: 经常和响应里面的Last-Modified一起使用,用做本地缓存
16、HTTP/1.1和HTTP/1.0区别(面试题目)
GET /aa/1.html HTTP/1.1
host:localhost
GET /aa/1.html HTTP/1.0
host:localhost
* HTTP/1.1请求之后不会马上断开
* HTTP/1.0请求之后回马上断开
17、http的响应(**)
* HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Accept-Ranges: bytes
ETag: W/”625-1426321060991”
Last-Modified: Sat, 14 Mar 2015 08:17:40 GMT
Content-Type: text/html
Content-Length: 625
Date: Sat, 14 Mar 2015 08:18:15 GMT
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
.................
* 有三部分组成
1、响应行
- http版本 状态码 状态码描述
- 状态码:(****)
** 常用的状态码
1、200 表示请求成功
2、302:重定向
3、304:查询本地缓存
4、404:资源找不到
5、500:服务器内部(代码错误)
2、响应头
- 采用key-value形式显示,一个key可以有一个value,也可以有多个value
** Refersh
- 使用这个头可以实现页面的定时跳转(刷新)
** Location
- 使用这个头可以和302完成重定向
** Last-Modified和请求里面 If-Modified-Since
- 在请求头信息里面有一个If-Modified-Since,查找本地缓存
** 禁用缓存的头(如果想要所有浏览器都能禁用缓存,这三个头都要设置)
Expires: -1
Cache-Control: no-cache
Pragma: no-cache
** (了解) Content-Disposition:
** 可以使用这个头实现文件的下载操作
3、响应体
** 显示在页面上的内容
- 响应头和响应体直接有空格(格式)
** 如何处理缓存问题(开发心得)
1、清除ie的缓存文件
2、修改ip地址(可以使用localhost或者127。0.0.1)
3、访问一个错误的页面,然后再访问正确的页面
4、在地址后面加一个随机数 比如 http://127.0.0.1/day08/my/my.html?id=1
5、把项目移除,然后再部署
6、到tomcat目录下面 I:\tomcat\apache-tomcat-7.0.53\work
把work里面的所有内容都删除
** URL和URI区别(扩展)
** URI范围大于URL
** URL:网络地址 比如:http://www.sina.com http://www.itcast.com.cn
**URI地址包含网络地址,同时包含类似 zhangsan@163.com thunder://1111 ed2k://qqqqq