tomcat

1.tomcat的安装配置
    tomcat5要求jdk1.4以上
    tomcat6要求jdk1.5以上
    tomcat7要求jdk1.6以上
    JAVA_HOME环境变量: 指定tomcat启动时使用的jdk所在的位置
    Catalina_Home环境变量:指定tomcat在启动时启动哪个tomcat,一般不推荐配置
    
    修改tomcat/bin/server.xml 修改默认端口为80
2.tomcat的目录结构
bin ---- 启动和关闭需要的bat文件所在的目录
conf --- 配置目录
lib ---  tomcat运行时需要的jar包所在的目录
logs --- 日志文件所在的目录
temp --- tomcat运行时产生的临时文件存放的目录,不需要我们管理
webapps --- 开发中最常用的目录,web应用放置到此目录下浏览器可以直接访问
work --- 工作目录,tomcat运行时产生的工作文件存放在这个目录中


3.虚拟主机/web应用
虚拟主机:
一个tomcat可以认为是一台真实主机.在一台真实主机中可以配置多个站点,这些站点在访问者看来访问他们就像在访问各自独立的主机一样,所以我们可以认为这些站点都运行在tomcat这台真实主机当中的各自的虚拟主机当中.一个网站就可以认为是一个虚拟主机
web应用:
一个虚拟主机中会有很多的web资源,但是web资源不能直接交给虚拟主机管理,需要按照一定方式组织成web应用虚拟主机才能使用.一般来说我们会按照功能将某一功能相关的所有的web资源组织成一个web应用后再交给虚拟主机.


web应用目录结构: 如果目录结构不合法可能会出现各种奇葩的问题.
news
|
|--静态资源和JSP文件都可以直接放置在web应用的目录下,直接放在web应用下的内容,浏览器可以直接访问到
|
|--WEB-INF -- 可以没有,但是最好有,如果有则一定要保证他的目录结构是完整的.放置在WEB-INF目录下的所有资源浏览器没有办法直接进行访问
|--classes -- 动态web资源运行时的class文件要放在这个目录下
|--lib -- 动态web资源运行时所依赖的jar包要放在这个目录下
|--web.xml -- 整个web应用的配置文件,配置主页/Servlet的映射/过滤器监听器的配置都需要依赖这个文件进行


配置虚拟主机:
在conf/server.xml中<Engin>标签下配置<Host>标签就可以为tomcat增加一台虚拟主机了
name -- 指定虚拟主机的名称,浏览器通过这个名称访问虚拟主机
appBase -- 虚拟主机管理的目录,放置在这个目录下的web应用当前虚拟主机可以自动加载




*由于浏览器访问地址时,需要将地址翻译成对应的ip才能找到服务器,这其中翻译的过程是由dns服务器来实现的.我们在做实验的时候没有办法去修改dns服务器,此时可以使用hosts文件模拟dns的功能,从而完成实验.

*缺省虚拟主机:如果来访者是通过ip来访问,这个时候服务器无法辨别当前要访问的是哪台虚拟主机中的资源,此时访问缺省虚拟主机.缺省虚拟主机可以在server.xml中engin标签上通过defaultHost属性进行配置.




为虚拟主机配置web应用:
(1)在Server.xml的<Host>标签中,配置<Context>标签,就可以为该虚拟主机配置一个web应用了
如果将path设置为空则这个web应用为缺省web应用
这种配置方式需要重启服务器不推荐
(2)在tomcat/conf/[Engin]/[Host]/在这个目录下写一个xml文件,其中xml文件的名字就是虚拟路径,在这个xml中可以配置<Context>标签,其中配置真实路径.
如果所配置的虚拟路径中有/由于文件名中不允许包含/需要用#替代.
只要将文件名设置为ROOT.xml则这个xml描述的web应用就成为了缺省web应用
这种配置方式不需要重启服务器,推荐
(3)直接将web应用放置到虚拟主机管理的目录下,虚拟主机就可以找到这个web应用,从而管理这个web应用
只要将web应用文件夹的名称改为ROOT,这个web应用就是缺省web应用



*web应用的虚拟路径映射 -- 就是为web应用的真实存在的路径配置一个浏览器访问的虚拟路径
*配置缺省web应用 -- 默认的web应用,当不写web应用名时就访问这个web应用



~练习:配置一台新的虚拟主机,修改hosts文件模拟dns的作用使其可以访问.用三种方式为这台虚拟主机配置三个web应用,并配置其中的一个web应用为缺省web应用,并配置其主页




4.零散知识
打war包,减少web应用的体积方便传输,并且在虚拟主机管理的目录下,war默认可以自动解压


通用Context配置、通用web.xml配置


Tomcat服务器的管理平台


============================================================
HTTP协议:
    规定客户端和服务器如何进行交互
    基于TCP/IP协议的应用层协议
    
    HTTP协议基于请求响应模型
    一次请求对应一次响应
    请求只能由客户端发出,服务器只能被动的等待请求做出响应
    
    1.0和1.1的区别
    
    telnet/httpwatche 
    
    
    
HTTP请求
    请求行
        GET /books/java.html HTTP/1.1
        请求方式
           七种请求方式: POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT
           真正使用的时候:POST/GET
           GET请求方式和POST请求区别在于请求参数在传递的过程中方式不同
           如果是GET提交,请求参数将会附加在请求的URL后面作为请求地址的一部分带到服务器端,可以传输的数据大小有限制一般不允许超过1K.
           如果是POST提交,请求参数将会在http请求的实体内容中进行传输,这种方式传输的数据没有大小限制.
           
           利用form表单提交数据时,form表明明确的声明要用POST提交,这是请求参数就是POST提交
           除此以外所有方式的请求参数都是GET提交
           


        请求的资源部分的名称
        所遵循的协议版本
    若干请求头
        Accept: */*    
        Accept-Charset: ISO-8859-1
        DontTrackMeHere: gzip,compress
        Accept-Language: en-us,zh-cn 
        Host: www.it315.org:80
        If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT 
        Referer: http://www.it315.org/index.jsp
        User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
        Cookie
        Connection: close/Keep-Alive   
        Date: Tue, 11 Jul 2000 18:23:51 GMT
    
    实体内容
        




HTTP响应
    状态行
        HTTP/1.1 200 OK
        协议版本
        状态码--用来表示本次请求的处理结果的代码
            200
            302
            304/307
            404
            500


    若干响应头
        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
        Transfer-Encoding: chunked  
        Set-Cookie:SS=Q0=5Lb_nQ; path=/search
        ETag: W/"83794-1208174400000"
        Expires: -1 ---- 通知浏览器是否缓存当前资源 ,如果这个头的值是一个以毫秒为单位值就是通知浏览器缓存资源到指定的时间点,如果值是0或-1则是通知浏览器禁止缓存
        Cache-Control: no-cache  -- 通知浏览器是否缓存资源
        Pragma: no-cache    -- 通知浏览器是否缓存资源
            之所以三个头是一个功能,是因为历史原因.不同的浏览器对这三个头支持的不同,一般来说这三个头要同时使用确保不同的浏览器都能实现控制缓存的功能
            
        Connection: close/Keep-Alive   
        Date: Tue, 11 Jul 2000 18:23:51 GMT


    
    实体内容
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值