web入门

学习目标: tomcat 服务器的配置以及 HTTP 协议.

1.web的相关介绍 

web表示网页的意思internet上供外界访问的页面.

静态的页面: html+ css + js (cascading style sheet)  (java script)  , 任何时间点你去访问内容动态的页面都是由程序产生.  不同时间点去访问这个页面,产生数据都是不一样.

web1.0: 这个数据都是让用户来浏览的主要是用来传播信息的

web2.0: 页面都是用来进行交互的微博

============web 开发 主流三种技术===========

a.jsp/servlet 技术 : 网页开发. sun(standford university network) 公司的解决方案 

jsp 收费的.    

企业的前端开发

(OA office automation, CRM client relationship management,ERP enterprise resource planing) 

b) asp -微软的解决方案.     .net (c#.net, asp.net, vb.net...) 收费的.

c) php -- 开源组织的. android, ruby, python, hadoop .

lamp  (linux + apache + mysql + php)

2.web服务器的模型 

B/S 交互模型

1、基于请求-响应交互模型

客户端浏览器 向 服务器 发送一个 请求

web服务器 向 客户端浏览器回送 一个响应 

2、必须先有请求 再有响应 

3、请求和响应成对出现

   C/S client -- service  ------------->>  B/S

3.常见的web服务器  

j2ee --- javaee  ---- >> 一些技术规范的集合总共有 13 种技术 (jsp/servlet

   weblogic: Bea 公司的产品, javaee 规范全面 支持 这13种技术. BEA oracle公司收购了

    这个服务器 网络上的资料 比较 多(全部 都是 英文的)

   websphere: 收费的(非常贵网络上资料非常少.  全面支持 javaee规范

   Jboss: 免费的网络资料比较多开源的全面支持 javaee规范 . redhat 

   =========

   tomcat 服务器 : apache 基金会的产品小型的web 服务器.

   jsp/servlet. 免费的

   resin:  jsp/servlet. 免费的

     

4.tomcat服务器

   tomcat apache jarkata 项目的一个子项目.

   针对不同平台有不同版本

   exe 和 zip 是针对window平台, tar.gz就是针对linux平台的

5.tomcat服务器启动时一些问题.  (重点 )

   a) java_home环境变量没有设置:

指向的是 jdk的安装目录.

C:\Program Files\Java\jdk1.6.0_31 , 千万不要指向 bin目录配置环境变量时

java_home中间不能是-,  指向的jdk的目录不能够再最后加 ;

   b) tomcat 端口被占用. tomcat启动时默认的是占用 8080 端口.如果8080 端口已经被其他的应用程序占用

那么tomcat就启动不了了这时候

: cmd 进入 dos 命令行.  netstat -ano 可以查看到 所有的进程 运行在哪个端口上

然后找到占用了8080 端口的程序

进入到windows的 任务管理器找到 pid (第二个选项卡-进程勾选pid这个显示框.)

    然后就可以看到所有的进程pid.

:结束占用了8080 端口的应用程序

 直接启动tomcat.

进入到 conf/server.xml , 将 connector 元素中的port 属性 更改为 80 端口,然后重启

就将tomcat启动的时候的端口更改为 80 

   c) 如果把tomcat启动时的端口 改成80 之后 可能 重启服务器又 启动不了了, 怎么办?

      重复 b) 操作,找到 占用80 端口的应用程序然后把它干掉.

      如果 b)操作不好使,那么可能就是windowsIIS 占用了80 端口(系统级的服务.干不掉)

      进到windows的 服务列表中将其 干掉了.

=====

catalina_home环境变量用来指明tomcat 服务器 安装的目录但是呢一般都不会配置该环境变量.

因为配置正确了没有关系.但是一旦配置错误,那么tomcat就启动不了了.

6.tomcat服务器与Servlet版本的对应关系

Tomcat版本   Servlet/JSP版本   JavaEE版本 运行环境

4.1          2.3/1.2 1.3   JDK1.3

5.0            2.4/2.0 1.4 JDK1.4

5.5/6.0       2.5/2.1 5.0 JDK5.0

7.0            3.0/2.2 6.0 JDK6.0

7.tomcat的目录组织结构

tomcat

-bin   存放命令

-conf  存放tomcat启动的配置信息

-lib tomcat运行时一些依赖的jar

-log    tomcat运行的日志文件夹

-temp   运行时临时文件夹

-webapps  web应用存放的目录

-work    工作目录, jsp 被翻译成的servlet就放在这个目录.

8.虚拟目录映射的三种方式 (虚拟目录映射 就是配置 <Context> 元素)

   a) 方式一:

conf/server.xml,在其host元素下配置一个 Context 元素.

<Context path="/itheima" docBase="d:\mail"/>

配置好了之后,由于改动了server.xml,所以呢需要重新启动 tomcat 服务器.

   b) 方式二:

进到 D:\tomcat\apache-tomcat-7.0.40\conf\Catalina\localhost 目录下.

然后建一个xml文件.  aa.xml

然后在xml 中写 :

<?xml version="1.0"?>

<Context docBase="d:\mail"/>

紧接着就可以访问了:

http://localhost/aa/1.html

这种方式的好处是配置完成后不需要重启服务器.

   c)方式三:  (**********重要)

直接将 开发好的web应用 放到 webapps目录下就可以了, tomcat 服务器会自动 管理 web应用.

web应用的对外访问路径也就是 文件夹的名称.

直接访问: http://localhost/mail/1.html

  ================如何将自己的web应用弄成缺省的呢? ===========

  两种方式

方式一:  直接在 server.xml中 的host元素里 配置 :

<Context path="" docBase="d:\mail"/>

这里不配置对外访问路径就表示把自己的web应用弄成缺省的了.

方式二在 D:\tomcat\apache-tomcat-7.0.40\conf\Catalina\localhost .

建一个 ROOT.xml文件 那么也可以弄成缺省的。

如果是多级访问 目录, 可以 建一个 foo#bar.xml

  =====================如何给自己的web应用配置一个欢迎页面呢?=====================

在自己的web应用文件夹下 建一个 WEB-INF 目录.

然后在这个目录下建一个 web.xml文件.

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

  version="3.0">

  <!--这是配置一个欢迎页面.-->

  <welcome-file-list>

<welcome-file>1.html</welcome-file>

    </welcome-file-list>

</web-app>

     访问 tomcat 刚刚配置好的欢迎页面需要 重启服务器

http://localhost/

9.war包的制作与tomcat Manager的使用

war包的制作:

方式一:  使用rar压缩 工具 web 应用压缩成 一个zip 然后 更改扩展名为.war

方式二:  进入dos 命令行然后使用jar命令首先将web应用打成一个jar.

jar cvf news.jar news

生成了一个jar,但是要改成 扩展名为.war

tomcat manager 的使用: 

打开conf/tomcat-users.xml ,然后添加 还要重启服务器.

<role rolename="admin-gui"/>

<role rolename="manager-gui"/>

<user username="tomcat" password="123" roles="admin-gui,manager-gui"/>

10.配置虚拟主机

a)进入到 C:\Windows\System32\drivers\etc , 

b) 打开 hosts文件,在末尾添加 :

192.168.1.100     www.google.com

192.168.1.100     www.sina.com

c)在 server.xml中添加一个host元素.

  <Host name="www.google.com" appBase="d:\google">

<Context path="/mail" docBase="d:\google\mail"/>

<Context path="/news" docBase="d:\google\news"/>

  </Host>

  <Host name="www.sina.com" appBase="d:\sina">

<Context path="/mail" docBase="d:\sina\mail"/>

<Context path="/news" docBase="d:\sina\news"/>

  </Host>

d)重启服务器,然后访问: http://www.google.com/mail/1.html

 ================================如何配置缺省的虚拟主机呢? ========================

<Engine name="Catalina" defaultHost="www.sina.com">

花生壳(可以找到免费域名)

11.web资源访问流程

12.web应用的目录组织结构(*重点) 

mail

   -- .html ,.js, .css

   -- WEB-INF

--classes  java程序

--lib      存放jar

--web.xml  用来做配置

web应用如何发布到服务器

 

 

上午内容回顾:

1web资源分为两类: 静态web资源,动态web资源

2B/S 请求-响应交互模型 :先产生请求,再产生响应,请求和响应成对出现

3weblogic websphere、 apache tomcat

4、动手练习:tomcat安装配置 (解压安装、配置JAVA_HOME[JDK安装目录]) -----    双击bin/startup.bat ----- http://localhost:8080 

**** 修改tomcat默认端口为80 conf/server.xml

**** 端口占用问题解决 netstat -ano 查看占用端口进程id ,通过任务管理器根据id 结束进程 (有些进程由服务控制 services.msc 进入服务管理界面 停止服务)

5JavaEE版本和Tomcat版本对应关系表

6Tomcat目录结构

7、网站标准目录结构 (重点)

8、动手练习:虚拟目录三种映射方式 第一种 配置server.xml 第二种 配置独立xml  三种 将网站复制webapps 

(war包制作和tomcat manager使用)

访问网站全过程分析

1、在浏览器输入url地址

2、访问本机域名解析文件 hosts ======= c:\windows\system32\drivers\etc\ 

3、如果本机没有查找到域名,查找网络上DNS服务器 

4、域名解析后,获得域名对应ip地址。根据ipport访问网络上指定主机和服务

真实开发网站过程

1、开发网站

2、将网站发布web服务器上 (公网ip

3、在DNS域名解析服务器上注册域名,和服务器ip绑定

 

实验:在本机上搭建百度虚拟主机 =========== 注意:默认端口必须设置80 

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>

********************* 一个tomcat服务器中可以配置很多个<Host>元素(虚拟主机) ,只有一个虚拟主机可以直接通过ip地址访问 

缺省虚拟主机 (直接通过ip地址访问虚拟主机)

<Engine name="Catalina" defaultHost="localhost">

如果访问不是缺省虚拟主机,必须修改客户端hosts文件,或者在DNS注册 

=================

HTTP 协议:

1.什么是协议?

 网络通信中数据格式

URl详解

2.HTTP协议.

   Http协议是用来定义 web浏览器与web服务器之间交换数据的格式的专用的.

  特点

1、基于TCP

2、默认端口80 :80可以省略)

3、请求-响应模型 

 

实验一:通过telnet 连接程序 ----- 感受HTTP协议

* xp自带,win7需要安装

  cmd下 通过telnet -? 检验是否安装 telnet 

1、启动tomcat

2、在cmd中输入 telnet localhost 80

   ctrl+] 回车

3、输入HTTP协议请求

GET /index.html HTTP/1.1

host:localhost

连续回车两次

4、接收HTTP响应内容

HTTP/1.1 200 OK

Server: Apache-Coyote/1.1

ETag: W/"7347-1184876416000"

Last-Modified: Thu, 19 Jul 2007 20:20:16 GMT

Content-Type: text/html

Content-Length: 7347

Date: Mon, 15 May 2013 08:30:06 GMT

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

...

实验二:在IE安装Httpwatch插件(firefox中也有firedebug) 

IE6 查看 ---- 浏览器栏 打开Httpwatch

IE8 以上 工具中存在HttpWatch 

HTTP/1.1 200 OK

Server: Apache-Coyote/1.1

ETag: W/"7347-1184876416000"

Last-Modified: Thu, 19 Jul 2007 20:20:16 GMT

Content-Type: text/html

Content-Length: 7347

Date: Mon, 15 Oct 2012 08:34:34 GMT

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

...

HTTP1.0 一次连接一个web资源

HTTP1.1 一次连接多个web资源 

一、HTTP请求协议格式

GET /day4/img.html HTTP/1.1

Accept: */*

Accept-Language: zh

Accept-Encoding: gzip, deflate

If-Modified-Since: Mon, 15 Oct 2012 09:06:00 GMT

If-None-Match: W/"319-1350291960578"

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET4.0C)

Host: localhost

Connection: Keep-Alive

HTTP请求由三大部分组成:请求行、头信息、请求体(只有post方式才有)

   1、请求行

GET /day4/img.html HTTP/1.1 分为三个部分:请求方式、资源路径、协议版本

HTTP请求方式定义8种,常用GETPOST两种

2、头信息(消息头)

Accept: text/html,image/*   客户端识别文件类型

Accept-Charset: ISO-8859-1  客户端字符集

Accept-Encoding: gzip   客户端支持编码类型 gzip 压缩格式 

Accept-Language:zh-cn  客户端语言

Host: www.itcast.com:80  访问服务器地址 

If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT (重要) 和Last-Modified 一起使用 控制缓存

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-SincerefererUser-Agent

盗链:A网站直接通过链接,访问B网站资源

防盗链原理,判断请求中referer信息 

****** 使用URL 和 URLConnection 伪造客户端 

 

 

    3、请求体

多个数据之间用&分隔

name=value&name=value&name=value...

 =========get方式的请求与post方式的请求的区别===================

  a) get方式的请求 :  GET /day02/1.html HTTP/1.1

     post方式的请求:  POST /day02/1.html HTTP/1.1

  b)数据的提交方式也不同: get的请求数据会跟在url地址后面

get: http://localhost:8080/day02/1.html?username=lijianqun&age=19

post: http://localhost:8080/day02/1.html ,那么post方式的数据是放在了请求体中

  c) get方式木有 请求体而 post方式有.

   一般都采用 get方式的请求.  如果表单提交就采用 post. 

除了表单提交的时候可以设置成post方式外,其他的请求都是get方式.

   d) 实际开发过程中,如果给用户一个超链接而用户点击的时候,又希望用户可以带一些数据过来.

<a href="/day02/img.html?name=wangpan">小样儿,来点我啊</a>

 注意: GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K

       post方式请求的数据由于跟在请求体中的所以请求的数据就没有大小限制了.

 

5.HTTP响应

HTTP/1.1 200 OK

Server: Microsoft-IIS/5.0

Date: Thu, 13 Jul 2000 05:46:53 GMT

Content-Length: 2291

Content-Type: text/html

Cache-control: private

<HTML>

<BODY>

HTTP响应由三个部分组成 :状态行、头信息、响应体 (响应体和头信息直接存在空行)

1、状态行

HTTP/1.1 200 OK  协议版本、状态码、描述信息

Informational 1xx 信息不足,请求无法处理

Successful 2xx 请求成功处理

Redirection 3xx 请求已经处理 ,还需要客户端有进一步操作

Client Error 4xx  客户端错误

Server Error 5xx  服务器端错误

200 :请求成功处理,一切OK

302 :请求重定向 (找 借钱,通知 借钱 ,A借钱) 

客户端  BC服务器

304 :服务器端资源没有改动,通知客户端查找本地缓存 

404 :客户端访问资源不存在

500 :服务器内存出错 

6.常用的响应状态码

1xx: 请求信息不完整. informational

2xx: success , 成功处理请求

3XX: redirection. 请求"重定向".

4xx: client error , 客户端出现错误,资源不存在

5xx: 服务器端内部错误. server error

200 , 302 ,304,404,500

 200 : 表示一切OK, 服务器完美的完成了整个响应.

 302 : 一般会与location响应头一起实现请求重定向,  (重点)

 304 :请求的资源未改变,通知客户端直接到本地拿缓存.

 404 :请求的资源不存在一般 表示 请求的路径有问题.  401 ,403

 500 : 请求的时候服务器端出现了错误.

7. 常用的响应头详解:

响应头:

Location: http://www.it315.org/index.jsp   302  一起实现请求重定向,

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 , 304 一起实现缓存

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  服务器回写数据的时间.

=======================重点======================================

1) 302 + Location 完成请求重定向 

2) refresh 自动刷新 

3) gzip压缩 

a) 用程序代码实现压缩.

b) 通过配置tomcat 服务器来实现压缩.

server.xml中的connector中配置

compressableMimeType="text/html,text/xml,text/plain" compression="on"

压缩前:   00:00:00.000 1.163 11599 GET 200 text/html;charset=ISO-8859-1 http://localhost:8080/

压缩后:  00:00:00.000 1.150 2296 GET 200 text/html;charset=ISO-8859-1 http://localhost:8080/

4) Tomcat默认缓存策略 If-Modified-Since Last-Modified 结合304 实现

http://localhost:8080/tomcat.css

第一次访问: Last-Modified:     Sun, 05 May 2013 00:55:08 GMT

第二次访问: If-Modified-Since: Sun, 05 May 2013 00:55:08 GMT

5) 禁用缓存

Expires: -1  

Cache-Control: no-cache  

Pragma: no-cache 

防止浏览器不兼容,如果网页禁用缓存后,不会在 工具-- internet选项 --- 设置 --查看文件 产生缓存文件 

======================================================================内容小结:

1tomcat安装配置 修改端口80 

2、三种虚拟目录映射方式

3、虚拟主机配置 

4myeclipse集成tomcat 开发web工程

5HTTP请求方式几种?GETPOST区别?

6HTTP响应常见状态码 200 302 304 404 500 作用

7HTTP 请求 Referer防盗链 (URL编写客户端程序)

8HTTP 响应 

302 + Location重定向 

refresh 自动刷新

gzip 配置压缩

tomcat 缓存策略

禁用浏览器缓存三个头字段 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值