微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

tomcat和Servlet

tomcat部署项目的方式

  1  直接将项目放在webapps目录下

    /hello: 项目的访问路径-->虚拟目录

    简化部署:将项目打成一个war包,再将war包放置到webapps目录下

          war包会自动解压缩

  2  配置conf/server.xml

    在<Host>标签中配置

      <Context docBase="D:\hello" path="/hehe"/>

        docBase  项目存放的路径

        path  虚拟目录

  3  在Conf\Catalina\localhost 创建任意名称的xml文件。在文件中编写

    <Context docBase="D:\hello"/>

      虚拟目录:xml文件名称

静态项目和动态项目:

  目录结构

    java动态项目的目录结构:

      --项目的根目录

        --WEB-INF目录:

          -- web.xml: web项目的核心配置文件

          --classes:放置字节码文件的目录

          --lib目录:放置依赖的jar包

Servlet:  server applet

    概念:运行在服务器端的小程序

      Servlet就是一个接口,定义了java类被浏览器访问到(tomcat识别)的规则

      将来自己自定义一个类,实现Servlet接口,复写方法

    快速入门:

      1  创建JavaEE项目

      2  定义一个类,实现Servlet接口

        public class ServletDemo1 implements Servlet

      3  实现接口中的抽象方法

      4  配置Servlet

        在web.xml中配置:

      <servlet>

      <servlet-name>demo1</servlet-name>

      <servlet-class>cn.itcast.web.servlet.ServletDemo1</servlet-class>

      </servlet>  //tomcat将全类名对应的字节码文件加载进内存 Class.forName()

             创建对象 cls.newInstance();

                调用方法---service

 

      <servlet-mapping>

      <servlet-name>demo1</servlet-name>

      <url-pattern>/demo1<url-pattern>

      </servlet-mapping>

 

    执行原理

      1  当服务器接收到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径

      2  查找web.xml文件,是否有对应的<url-pattern>标签内容

      3  如果有,则在找到对应的<servlet-class>全类名

      4  tomcat会将字节码文件加载进内存,并且创建其对象

      5  调用方法

    Servlet中的生命周期

      1  被创建:执行init方法,只执行一次

        Servlet什么时候被创建

          认情况下,第一次被访问时,Servlet被创建

          可以配置执行Servlet的创建时机

            在<servlet>标签下配置

            1  第一次被访问时,创建

              <load-on-startup>的值为负数

            2  在服务器启动时,创建

              <load-on-startup>的值为0或正整数

 

        Servlet的init方法,只执行一次,说明一个Servlet在内存中只存在一个对象,Servlet是单例的

          多个用户同时访问是,可能存在线程安全问题

          解决:尽量不要在Servlet中定义成员变量。即使定义了成员变量,也不要修改

      2  提供服务:执行service方法,执行多次

        每次访问Servlet时,Service方法都会被调用一次

      3  被销毁:执行destroy方法,只执行一次

        Servlet被销毁时执行。服务器关闭时,Servlet被销毁

        只有服务器正常关闭时,才会执行destroy方法

        destroy方法在Servlet被销毁之前执行,一般用于释放资源

      4  获取Servlet的配置对象:getServletConfig()

      5  获取Servlet的一些信息,版本,作者,等等:getServletInfo()

 

    Servlet3.0:

      好处:

        支持注解配置。可以不需要web.xml了

      步骤:

        1  创建JavaEE的项目,选择Servlet的版本3.0以上,可以不创建web.xml

        2  定义一个类,实现Servlet接口

        3  复写方法

        4  在类上使用Servlet注解,进行配置

          @webServlet("资源路径")

        

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。