A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Tomcat

1,软件的架构:
  •    S/C架构的软件:
      Client/Server  客户端和服务器端的软件,都是需要在PC端的软件,如
          QQ。迅雷,暴风等。。。
     优点:效果炫,一部分代码写到客户端(速度快);
     缺点:服务器端更新,客户端都需要更新。
  •    B/S架构的软件(主流):
      Browser/Server :浏览器端和服务端的软件,不需要安装PC端,只要有一个
           浏览器即可,如:京东,网银WEBQQ,WEB迅雷等
     优点:服务器端更新,客户端浏览器不需要进行更新
     缺点:效果不炫,所有代码都在服务端,导致服务器压力过大。
                    效果:使用HTMLS,CSS3可以做出很炫的效果。
                    服务器端压力:搭建服务器的集群,而且还有AJAX技术。
2,WEB的资源:   
  • 静态页面:HTML,CSS,JS,图片,,,
  • 动态资源:
                     PHP
                     ASP
                     Servlet/JSP:
3,服务器
  • 硬件:其实就是一台配置很高的电脑
  • 软件:必须在一台电脑上安装服务器软件,这台电脑称为是WEB服务器
4,常见WEb服务器(中间件):
  • Apsche:发布PHP的。
  • IIS:发布ASP的。
  • WebSphere:IBM公司研发,收费的大型服务器软件,支持EE的所有
                的开发规范.
  • WebLogic:BEA公司组织研发,收费的大型服务器软件,支持EE的所
                有的开发规范。
  • Tomcat:Apache组织研发,免费的小型的服务器软件,支持
                 Eervlet/JSP的开发规范。
  • JBoss:
5,WEB动态资源目录结构
  •   Website:
                 |-------静态资源
                 |-------WEB-INF
                               |------web.xml(必须有,项的配置)
                               |------classes
                               |------lib(用到的第三方东西(jar包)等要引入的东西的时
                                                   候要用)
6,Tomcat目录结构(.bat 在wendows执行  .sh是linux执行):
  • bin:执行文件。
  • conf:  tomact配置文件
  • lib:  tomact运行需要的jar包
  • logs:  tomact运行的日志文件
  • temp:  tomact产生临时文件的存放路径
  • webapps:  tomact发布的web项目路径
  • work:  tomact运行JSP的时候,JSP翻译成Servlet的代码存放的路径。
  • backup:备份软件。
7,发布一个WEB项目到Tomcat中(三种方式)
  • 1,直接将工程copy到tomcat/webapps下,
  • 2,配置tomcat虚拟路径(修改核心文件,不推荐)。
                      在tomcat/conf/server.xml文件中间配置
  • 3,配置tomcat虚拟路径。
                      在tomcat/conf/Catalina/localhost/xxx.xml
                      配置<Context docBase=";路径“/>
8,Tomcat运行常见问题
  • 没有配置JAVA_HOME引发tomcat一闪而消失。
  • 端口号冲突问题:
                    1,将占用的端口的应用结束。
                                 netstat -ano(查看占用这个端口的软件)
                                 打开任务管理器结束这个端口
                    2,修改自身的端口号,
Servlet

1,HTTP协议:
           什么是协议:规定双方需要遵守的规则。
            HTTP协议:用来规定浏览器与服务器之间需要遵守的规则。
            HTTP协议作用:规范浏览器和服务器之间的数据传递。
            HTTP协议特点:
  • 基于请求和响应的模型
    • 必须现有请求后有响应。
    • 请求和响应必须成对出现。
  • 默认的端口号是80。
HTTP协议版本:
  • 1.0 :每次响应后即刻关闭了连接.
  • 1.1   :现在使用.不是每次响应后挂断,等待长时间以后没有请求会挂断.
2,HTTP协议的详解:
  • 请求部分:
    • 请求行(第一行)
      • 提交方式:
                            提交方式有很多,常用GET和POST,两者区别:
                            1,get的提交的参数会显示到地址栏上,而POST不显示
                            2,GET往往是有大小限制的,而POST没有大小显示
                            3,GET没有请求体,而POST有请求体。

    • 提交路径
    • 协议版本
  • 请求头(中间部位)
    • 都是键值对形式显示的,一般一个key对应一个value,也有个别的是一个key对象
                             多个value   
  • User-Agent:代表浏览器的类型。----文件下载:下载中文件:
  • Referer  :代表的是网页的来源。----防盗链。
  • If-Modified-Since:通常与响应中的头Last-Modified一起使用查
                找本地缓存。
  • 请求体(最后一行,跟请求头中间有行空行)
                            :就是Post提交方式的参数(get没有此项)
  • 响应部分
    • 响应行
      • 协议版本
      • 状态码:
        • 200:成功
        • 302:重定向(结合响应头location来用)
        • 304:查找本地缓存
        • 404:资源不存在
        • 500:服务器内部错误
      • 状态码描述
    • 响应头:键值对,一般一个key对应一个value,也有个别的是一个key对象多个value
      • Last-Modified:   与请求中的If-Modified-Since 一起使用查找本地缓存。
      • Content-Dispostion:文件下载的使用的一个头信息。
      • Location:重定向的跳转的路径
      • Refresh:定时刷新/定时跳转。
    • 响应体:显示浏览器的页面的内容。
3,Servlet概念:
  • 概念:就是一个运行在WEB服务器 删改的小的JAVA程序,用来接
                  受和响应从客户端发送过来的请求,通常使用HTTP协议。是
                  SUN公司提 供的一个动态网页开发技术。
  • 作用:用来处理从客户端浏览器发送的请求,并且可以对请求作出
                        相应
  • 使用Servlet:
    • 编写一个类实现Servlet接口
    • 将编写的这个类配置到服务器中。
4,Servlet的实现的关系:
Servlet       :接口
     |
GenericServlet  :通用的Sevrlet
     |
HttpServlet         :HttpServlet
5,ServletRequest接受参数API:
        *String getParameter (String name)  用于接受一个名称对应一个值的数据
                *String[] getParameterValue(String name)  用于接受一个名称对应多个值的数据
                *Map getParameterMap();  用于接受表单中的所有的数据,Map的key是表单提交的参数名称,Map的value是提交的参数的值
                 Enumeration getParmeterNames() 用于获取表单中提交的所有的参数的名称
     
6,总结:
Servlet生命周期:
  • Servlet的生命周期:就是一个对象从创建到销毁的过程。
  • Servlet生命周期就是它从创建到销毁的过程。
                         何时创建:用户第一次访问Servlet创建Servlet的实例
                         何时销毁:当项目从服务器中移除,或者关闭服务器的时候
  • 用户第一次访问Servlet的时候,服务器会创建一个Servlet的实例,那么Servlet中init方法就会执行,任何一次请求服务器都会创建一个新的线程访问Servlet中的servlet方法,在Servlet方法内部根据请求的方式不同调用doxxx的方法,(get请求调用doGet,post请求调用doPost)。当Servlet中服务器中移除,或者关掉服务器,Servlet的实例就会被销毁,那么destroy方法就会执行。Servlet是单例的,整个过程有且只有一个
Servlet的相关配置:
  • 启动时创建Servlet :
               Servlet默认是在第一次被访问的时候创建的,现在让Servlet在服务器启动的时候创建好,进行对Servlet的配置;
                      <load-on-startup>2</load-on-startup>------传入正整数,数值越小被创建的优先级越高          
  • url-pattern的配置:
    • 完全路径匹配:以 / 开始
                例如:  /ServletDemo4 , /aaa/ServletDemo5 , /aaa/bbb/ServletDemo6

    • 目录匹配:  以 / 开始  需要以  *  结束。
                 例如: /* ,/aaa/* ,/aaa/bbb/*

    • 扩展名匹配: 不能以 /  开始,以  *  开始。
                         例如: *.do , *.action
          优先级:完全路径匹配>目录匹配>扩展名匹配
有一些资源需要初始化很耗时:
第一次访问的时候初始化资源(耗时)
7,开发中的路径的编写:
  • 相对路径:都是需要找位置相对的关系,不能以 / 开始
  • 绝对路径(分客户端路径和服务端路径):不需要找位置相对关系,以 / 开始的。
    • 客户端路径一定要加工程名
    • 服务器端不需要加工程名。
8,addHeader(String key,String value);-------针对一个key对应多个value的响应头
  • addDateHeader(String name , long  date)
  • addIntHeader(String name, int value)
     setHeader(String key,String value);-------针对一个key对应一个value的响应头
  • setDateHeader(String  name , long date)
  • setInheader(String name , int value)
9,ServletContext对象(用来存储数据  (重要)):
setAttrubute :用来想ServletContext中存入数据。
getAAtubute:用来从Servletcontext中获取数据
removeAttribute:用来从Servletcontext移除数据。
ServleContext是一个域对象。
          作用范围:整个web工程
          创建:服务器启动的时候,tomcat服务器为每个web项目创建一个单独的ServletContext对象。
           销毁:服务器关闭的时候,或者项目从服务器中移除的时候。
      ServletContext作用:
                    1,用来获得全局初始化参数
                     2,用来获得文件的MIME的类型
                    3,作为域对象存储数据
                  
        
单例秘模式不能定义变量属性, 多线程进行访问抢夺资源容易引发隐患


10,ServletConfig:获得配置信息
     String   getServletName();获得Servlet在web.xml中配置的name值。
     String  getInitParameter(String name);获得Servlet的初始化参数
     Enumeration getInitPArameterNames();获得所有Servlet的初始化参数的名称   
11,ServletContext的作用:
* 1.用来获得全局初始化参数.
* 2.用来获得文件的MIME的类型.
* 3.作为域对象存取数据.
ServletContext是一个域对象.
    * 作用范围:整个web工程.
    * 创建:服务器启动的时候,tomcat服务器为每个web项目创建一个单独ServletContext对象.
    * 销毁:服务器关闭的时候,或者项目从服务器中移除的时候.

* 4.用来读取web项目下的文件.


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马