美文网首页
JavaWeb-Servlet

JavaWeb-Servlet

作者: 青丶空 | 来源:发表于2020-03-09 11:46 被阅读0次

Servlet


1. servlet的基本使用:

  1. 定义一个类,实现Servlet接口
  2. 实现接口中的抽象方法
  3. 配置Servlet(两种方式参见[2],[3])
  4. Servlet的执行原理
    • 当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
    • 查找web.xml文件,是否有对应的<url-pattern>标签体内容。
    • 如果有,则在找到对应的<servlet-class>全类名
    • tomcat会将字节码文件加载进内存,并且创建其对象
    • 调用其方法
  5. Servlet的生命周期
    • 被创建:执行init()方法,只执行一次,说明Servlet在内存中只存在一个对象,Servlet是单例的,存在线程安全问题
      1. 默认情况下,在第一次访问Servlet时,Servlet被创建
      2. 配置servlet的创建时机
        • 在web.xml中的servlet标签中设置<load-on-startup>
          1. 当<load-on-startup>为负值时,Servlet在第一次被访问时创建
          2. 当<load-on-startup>为0或正值时,Servlet在服务器启动时创建
    • 提供服务:执行service方法,执行多次,每次访问servlet时执行
    • 被销毁:执行destroy方法,只执行一次。当服务器关闭时,Servlet被销毁(前提为服务器正常关闭)且Servlet在服务器销毁前执行,一般用于释放资源

2. Servlet在web.xml中配置虚拟路径[2]:

<!-- 在web.xml中 --> 
    <!-- 配置servlet -->
    <servlet>
        <!-- 配置servlet的资源名称 -->
        <servlet-name>demo</servlet-name>
        <!-- 选择servlet的主类路径 -->
        <servlet-class>study.hsh.servlet.TestServlet</servlet-class>
    </servlet>
    <!-- 配置servlet-mapping -->
    <servlet-mapping>
        <!-- 配置servlet的资源名称 -->
        <servlet-name>demo</servlet-name>
        <!-- 配置servlet的资源路径 -->
        <url-pattern>/demo1</url-pattern>
    </servlet-mapping>
    
    <!-- 启动服务器后,在浏览器可通过localhost:8080/demo1访问相对应的Servlet中的init()、service()、destroy()方法 -->

3. Servlet3.0的注解方式[3]

<!-- 直接将虚拟路径设置为demo而不用去配置web.xml -->
@WebServlet("/demo") 

4. Servlet的体系结构

Servlet(接口) --> GenericServlet(抽象类) --> HTTPServlet(抽象类)

  • GenericServlet:将Servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象
  • HTTPServlet:对http协议的一种封装,简化操作
    1. 定义类继承HTTPServlet
    2. 重写doGet()和doPost()方法

相关文章

网友评论

      本文标题:JavaWeb-Servlet

      本文链接:https://www.haomeiwen.com/subject/hmiudhtx.html