JavaWeb学习__第2天_tomcat、web程序结构与Http协议

1.Schema

    Schema也是一种XML约束,其出现是为了克服DTD的一些局限性。

    Schema有比DTD更为严格的语义与语法约束,其语法也是XML的语法(可以用DOM与SAX来读取内容),Schema比DTD支持更多的数据类型,比DTD更有约束力。其通常的扩展名是.xsd
    和XML文件一样,一个XML Schema文档也必须有一个根结点,但这个根结点的名称为Schema
    编写了一个XML Schema约束文档后,通常需要把这个文件中声明的元素绑定到一个URI地址上,这个URI地址叫namespace名称空间,以后XML文件就可以通过这个URI(即名称空间)引用绑定指定名称空间的元素

<?xml version="1.0" encoding="UTF-8"?>
<!-- 
xmlns:xml的namespace 
targetNamespace:绑定名称空间的
elementFormDefault:qualified
<complexType>代表是否是复杂元素
<sequence>代表是否是有序的
-->
<schema 
xmlns="http://www.w3.org/2001/XMLSchema" 
<!--绑定名称空间,这是唯一的-->
targetNamespace="http://www.itheima.com/1201"
elementFormDefault="unqualified"
>
	<element name="书架">
		<complexType>
			<sequence maxOccurs="unbounded">
					<element name="书">
						<complexType>
							<sequence>
									<element name="书名" type="string"></element>
									<element name="作者" type="string"></element>
									<element name="售价" type="double"></element>
									<element name="简介" type="string"></element>
							</sequence>
						</complexType>
					</element>
			</sequence>
		</complexType>
	</element>
</schema>
被约束的文件:
<?xml version="1.0" encoding="UTF-8"?>
<书架 
xmlns="http://www.itheima.com/1201" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.itheima.com/1201 book1.xsd"> 
  <书> 
    <书名>葵花宝典</书名>  
    <作者>曾哥</作者>
    <售价>39.3</售价>  
    <简介>自宫!</简介>  
  </书>  
  <书> 
    <书名>九阴真经</书名>  
    <作者>王重阳</作者>  
    <售价>59.8</售价>  
    <简介>白骨爪</简介> 
  </书> 
</书架>

    targetNamespace元素用于指定schema文档中声明的元素属于哪个名称空间。
    elementFormDefault元素用于指定局部元素是否受到该schema指定targetNamespace所指定的名称空间限定
    attributeFormDefault元素用于指定局部属性是否受到该schema指定targetNamespace所指定的名称空间限定
    如何引入Schema:
        //首先指定命名空间
        xmlns="http://www.itheima.com/1201" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        //引入哪个xsd文件下的哪个命名空间的约束
        xsi:schemaLocation="http://www.itheima.com/1201 book1.xsd"

2.WEB概述

    WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。

    Internet上供外界访问的Web资源分为:
        静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。
        动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。
    静态web资源开发技术:html css js 图片 视频...
    常用动态web资源开发技术:JSP/Servlet、ASP、PHP等
    在Java中,动态web资源开发技术统称为Javaweb,我们课程的重点也是教大家如何使用Java技术开发动态的web资源,即动态web页面。

    服务器

    需要一个硬件(电脑),并在电脑上安装一个服务器的软件。
    常见的web服务器:
        WebLogic:BEA公司产品.  收费的web服务器  现在已经被Oracle收购了. 支持所有的JAVAEE规范
        WebSphere:IBM公司产品.  收费的web服务器  支持所有的JAVAEE规范
        Tomcat:apache组织 开源的 免费的web服务器  支持Servlet/JSP规范.

    Tomcat

    配置Tomcat常见错误:
    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.

    Tomcat目录层次结构:如图


    web应用程序

    WEB应用程序指供浏览器访问的程序,通常也简称为web应用,Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射。


    虚拟目录的映射方式(如何部署web程序)

    1、在server.xml文件的host元素中配置,例如:


    2、在Tomcat6中,不再建议在server.xml文件中配置context元素,细节查看tomcat服务器关于context元素的说明
     在conf/Catalina/localhost/bb.xml 
    3、让tomcat自动映射: tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚拟目录。换句话说,tomcat服务器webapps目录中的web应用,外界可以直接访问

    配置虚拟主机

    在一个tomcat服务器中可以放置多个网站<Host>,所谓配置虚似主机,就是在tomcat服务器中配置一个网站。
    如需在WEB服务器中配置一个网站,需使用Host元素进行配置,例:
        <Host name=”site1” appBase=”c:\app”></Host>
    配置的主机(网站)要想被外部访问,必须在DNS服务器或windows系统中注册
        C:\WINDOWS\system32\drivers\etc\hosts
    缺省虚似主机 DefaultHost

实例:在本机搭建百度虚拟主机

    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>


3.Http协议

    客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式
    基于TCP连接的传输协议,其默认端口是80
    基于请求响应模型:
        * 必须先有请求  后有响应.
        * 请求和响应必须成对出现.

    通过一个telnet命令  感受HTTP协议.
        1.cmd>telnet localhost 80 回车
        2.解决telnet命令乱码   ctrl+]  回车
        3.telnet命令 不能出错 
                GET /day02/1.html HTTP/1.1
                host:localhost
                点两下回车.

    Http协议的版本  1.0  和 1.1
        1.0    客户端和服务器连接了一次以后 马上就会断开
        1.1    客户端和服务器连接了一次以后 不是马上断开
 

    HTTP请求

    客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个HTTP请求。一个完整的HTTP请求包括如下内容:
    一个请求行、若干消息头、以及实体内容,如下所示 :


    请求行中的GET称之为请求方式,通常请求方式有: GET、 POST
    用户如没有设置,默认情况下浏览器向服务器发送的都是get请求,例如在浏览器直接输地址访问,点超链接访问等都是get,用户如想把请求方式改为post,可通过更改表单的提交方式实现。

    POST提交数据不会显示到地址栏会显示到请求体中一般没有大小限制.
    Get提交数据显示到地址栏中提交的数据有大小限制一般不会超过1kb.

    请求头重点:

        If-Modified-Since、Referer、User-Agent
        User-Agent : 客户端浏览器类型  MSIE  IE浏览器   Firefox 火狐浏览器.
        If-Modified-Since:结合 响应中一个头信息  Last-Modified 查找本地缓存.
        Referer : 代表网页来源。防盗链.

    HTTP响应

    一个HTTP响应代表服务器向客户端回送的数据,它包括:一个状态行、若干消息头、以及实体内容 。 

    在一个HTTP响应中,WEB服务器通过响应头向web客户端描述客户端的请求成功与否,以及它所发送的数据类型等一些信息,客户端通过这些信息,进而可以知道如何对数据进行处理。


    响应行里面相关响应码:
        200 : 请求和响应都OK
        302 : 需要 重定向   *  转发
        304 : 查找本地缓存
        404 : 请求资源不存在
        500 : 服务器内部出错

    响应头重点:
        Location : 结合302状态码  完成重定向.
        Last-Modified : 和请求 If-Modified-Since 一起用 查找本地缓存.
        Refresh : 页面自动刷新或跳转.
        Content-Disposition: 下载时候使用的。
        禁用浏览器缓存
            Expires: -1
            Cache-Control: no-cache  
            Pragma: no-cache 




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值