Servlet服务端实现原理详解

 更新时间:2022年07月30日 10:14:58   作者:·~简单就好  
Servlet是Sun公司开发动态web的一门技术,Sun公司在这些API中提供了一个接口叫做:Servlet,如果想开发一个Servlet程序,只需要完成两个小步骤:编写一个类,实现Servlet接口、把开发好的Java类部署到web服务器中。但是你了解Servlet实现的原理吗

servlet(serverapplet)(服务端程序)

作用:作用在于交互式的浏览和修改数据,生成动态数据

狭义的servlet就是java提供的一个接口,广义的servlet是任何实现servlet接口的实现类,一般情况下,servlet为后者。

servlet接口:

init()当servlet第一次被请求时,初始化Servlet对象,

service()每次请求时,service方法调用

destroy()当销毁Servlet对象,destroy方法调用

getServletlnfo ()这个方法一段描述,是一段字符串

getServletConfig()这个方法返回ServletConfig对象

GenerivServlet抽象类:

GenericServlet抽象类作用,实现了init(),destroy(),getServletConfig(),getServletlnfo(),相当于屏蔽掉这些不常用的方法,简化开发流程

HttpServlet抽象类:

为了匹配Http请求,实质就是把service根据请求方式拆成对应的方法

web配置文件中:

<load-on-startup>0</load-on-startup>   <!-- 该标签代表servlet实例加载的顺序,如果负数或者没有值,等请求的时候再加载;如果是0或者整数,代表着随着tomcate的启动而加载;数字越小越早加载,加载优先级越高 -->

注解:@WebServlet(value= {“/gs”},loadOnStartup = 0)

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>duxingweb</display-name>
  <servlet>
  	<servlet-name>myservlet</servlet-name>
  	<servlet-class>com.qcby.servlet.MyServlet</servlet-class>
  	<load-on-startup>-1</load-on-startup>   
      <!-- 该标签代表servlet实例加载的顺序,
			如果负数或者没有值:等请求的时候再加载 ;
			如果是0或者正数:代表着随着tomcate的启动而加载;
			数字越小越早加载;
	  -->
  </servlet>
  <servlet-mapping>
  	<servlet-name>myservlet</servlet-name>
    <!--精确匹配--> 
  	<url-pattern>/myservlet</url-pattern>
    <!--后缀匹配:例如只要后缀为.do的都可以访问到,出发servlet--> 
    <url-pattern>*.do</url-pattern>
    <!--通配匹配-->
    <url-pattern>/*</url-pattern>
    <!--通配匹配/:匹配所有请求,但是不包含jsp和html-->
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

到此这篇关于Servlet服务端实现原理详解的文章就介绍到这了,更多相关Servlet实现原理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java实现拓扑排序的示例代码

    Java实现拓扑排序的示例代码

    这篇文章我们要讲的是拓扑排序,这是一个针对有向无环图的算法,主要是为了解决前驱后继的关系,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-05-05
  • java面向对象设计原则之迪米特法则分析详解

    java面向对象设计原则之迪米特法则分析详解

    这篇文章主要为大家介绍了java面向对象设计原则之迪米特法则的示例分析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,学有所得
    2021-10-10
  • Java数据结构之List的使用总结

    Java数据结构之List的使用总结

    List是Java中比较常用的集合类,指一系列存储数据的接口和类,可以解决复杂的数据存储问题,本文就来拿实际案例总结介绍一下List的使用方法,感兴趣的朋友快来看看吧
    2021-11-11
  • eclipse/intellij idea 远程调试hadoop 2.6.0

    eclipse/intellij idea 远程调试hadoop 2.6.0

    这篇文章主要介绍了eclipse/intellij idea 远程调试hadoop 2.6.0的相关资料,需要的朋友可以参考下
    2016-07-07
  • java如何将pdf转换成image

    java如何将pdf转换成image

    这篇文章主要为大家详细介绍了java如何将pdf转换成image,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • Spring Cloud项目前后端分离跨域的操作

    Spring Cloud项目前后端分离跨域的操作

    这篇文章主要介绍了Spring Cloud项目前后端分离跨域的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • 基于SpringBoot制作一个PDF切图小工具

    基于SpringBoot制作一个PDF切图小工具

    这篇文章主要为大家详细介绍了如何基于SpringBoot制作一个PDF切图小工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01
  • 通过Java实现设置Word文档页边距的方法详解

    通过Java实现设置Word文档页边距的方法详解

    页边距是指页面的边线到文字的距离。通常可在页边距内部的可打印区域中插入文字和图形等。今天这篇文章将为您展示如何通过编程方式,设置Word 文档页边距,感兴趣的可以了解一下
    2023-02-02
  • java如何获取两个日期的时间差

    java如何获取两个日期的时间差

    这篇文章主要为大家详细介绍了java获取两个日期时间差的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • Java实现删除PDF中指定页面

    Java实现删除PDF中指定页面

    这篇文章主要为大家详细介绍了如何使用一个免费的国产Java库来删除PDF中的指定页面或者删除PDF中的空白页,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-11-11

最新评论