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实现原理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring事务@Transactional注解四种不生效案例场景分析

    Spring事务@Transactional注解四种不生效案例场景分析

    这篇文章主要为大家介绍了Spring事务@Transactional注解四种不生效的案例场景示例分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • java中类之间的数据传递方式

    java中类之间的数据传递方式

    这篇文章主要介绍了java中类之间的数据传递方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • JAVA实现感知器算法

    JAVA实现感知器算法

    这篇文章主要为大家详细介绍了JAVA实现感知器算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • jackson使用@JsonSerialize格式化BigDecimal解决.00不显示问题

    jackson使用@JsonSerialize格式化BigDecimal解决.00不显示问题

    这篇文章主要介绍了jackson使用@JsonSerialize格式化BigDecimal解决.00不显示问题,本文直接给出实现代码,需要的朋友可以参考下
    2015-02-02
  • java实现停车场管理系统

    java实现停车场管理系统

    这篇文章主要为大家详细介绍了java实现停车场管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • 详解Spring Security认证流程

    详解Spring Security认证流程

    这篇文章主要介绍了Spring Security认证流程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Java微信公众平台开发(13) 微信JSSDK中Config配置

    Java微信公众平台开发(13) 微信JSSDK中Config配置

    这篇文章主要为大家详细介绍了Java微信公众平台开发第十三步,微信JSSDK中Config配置,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • SpringCloud Edgware.SR3版本中Ribbon的timeout设置方法

    SpringCloud Edgware.SR3版本中Ribbon的timeout设置方法

    今天小编就为大家分享一篇关于SpringCloud Edgware.SR3版本中Ribbon的timeout设置方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • JAVA使用Ldap操作AD域的方法示例

    JAVA使用Ldap操作AD域的方法示例

    这篇文章主要介绍了JAVA使用Ldap操作AD域的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • java实现识别二维码图片功能方法详解与实例源码

    java实现识别二维码图片功能方法详解与实例源码

    这篇文章主要介绍了java实现识别二维码图片,java无法识别二维码情况下对二维码图片调优功能方法与实例源码,需要的朋友可以参考下
    2022-12-12

最新评论