java程序员第八课 tomcat与web程序结构与Http协议
来源:互联网 发布:淘宝怎么开企业店铺 编辑:程序博客网 时间:2024/05/16 10:33
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.1host:localhost服务器响应:HTTP/1.1 200 OKServer: Apache-Coyote/1.1Accept-Ranges: bytesETag: W/"21-1426298016838"Last-Modified: Sat, 14 Mar 2015 01:53:36 GMTContent-Type: text/htmlContent-Length: 21Date: 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.1Accept: text/html,image/* Accept-Charset: ISO-8859-1Accept-Encoding: gzipAccept-Language:zh-cn Host: www.itcast.com:80If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMTReferer: http://www.itcast.com/index.jspUser-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
- java程序员第八课 tomcat与web程序结构与Http协议
- Tomcat与web程序结构与Http协议
- Tomcat与Web程序结构与Http协议
- Tomcat与Web程序结构与Http协议
- Tomcat与Web程序结构与Http协议
- 浅谈Tomcat、web程序结构与Http协议
- 黑马程序员Android第55期——tomcat与web程序结构与Http协议
- day01-tomcat与web程序结构与Http协议
- JavaWeb-07(tomcat与web程序结构与Http协议与Servlet基础)
- tomcat与web程序结构与Http协议与HttpUrlConnection(带答案)
- tomcat与web程序结构
- JavaWeb学习笔记之tomcat与web程序结构与Http协议
- JavaWeb 学习笔记(一)Tomcat与Web程序结构与Http协议
- 02_tomcat与web程序结构与Http协议与HttpUrlConnection
- 大专生JAVA这条路---tomcat与web程序结构
- JavaEE实战——Tomcat、web程序结构、Http协议、HttpUrlConnection
- JavaWeb学习__第2天_tomcat、web程序结构与Http协议
- Tomcat与http协议
- javaScript navigator对象
- 关于Pods的整理
- 将String格式转换为Date格式,并计算两个日期的差值
- MATLAB 处理大数据
- 串的模式匹配:KMP算法
- java程序员第八课 tomcat与web程序结构与Http协议
- 手机绑定sim卡
- 11 SMO优化算法(Sequential minimal optimization)
- 镜头跟随GameObject移动。
- Android Theme and style
- 学习TensorFlow,邂逅MNIST数据集
- android中如何把`content://media/external/images/media/Y`转换为`file:///storage/sdcard0/Pictures/X.jpg`?
- Java 开发Log4j 详细使用教程
- SOAP Webservice和RESTful Webservice