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

(0)

相关推荐

  • 基于servlet的执行原理与生命周期(全面解析)

    一.先从servlet容器说起:大家最为熟悉的servlet容器就是Tomcat ,Servlet 容器是如何管理 Servlet? 先看一下tomcat的容器模型: 从上图可以看出 Tomcat 的容器分为四个等级,真正管理Servlet 的容器是Context 容器,一个 Context 对应一个 Web 工程 Tomcat 的容器等级中,Context 容器是直接管理 Servlet 在容器中的包装类Wrapper(StandardWrapper)的容器,所以 Context 容器如何运行

  • Java Servlet 运行原理分析

    1 Servlet基本执行过程 Web容器(如Tomcat)判断当前请求是否第一次请求Servlet程序 . 如果是第一次,则Web容器执行以下任务: 加载Servlet类. 实例化Servlet类. 调用init方法并传入ServletConfig对象 如果不第一次执行,则: 调用service方法,并传入request和response对象 Web容器在需要删除Servlet时(例如,在停止服务器或重新部署项目时)将调用destroy方法. 2 Web容器如何处理Servlet请求 Web容

  • Servlet生命周期与工作原理详解

    本文为大家分享了Servlet生命周期与工作原理,供大家参考,具体内容如下 Servlet生命周期分为三个阶段: 1.初始化阶段  调用init()方法 2.响应客户请求阶段 调用service()方法 3.终止阶段 调用destroy()方法 Servlet初始化阶段: 在下列时刻Servlet容器装载Servlet: 1.Servlet容器启动时自动装载某些Servlet,实现它只需要在web.XML文件中的<Servlet></Servlet>之间添加如下代码: <lo

  • Servlet方法生命周期及执行原理详解

    目录 快速入门 创建JavaEE项目 实现接口中的抽象方法 执行 执行原理 Servlet中的生命周期方法 1.被创建:执行init方法,只执行一次 2.提供服务:执行service方法,执行多次 3.被销毁:执行destroy方法,只执行一次 Servlet3.0 Servlet体系结构 GenericServlet HttpServlet Servlet相关配置 快速入门 创建JavaEE项目 定义一个类,实现Servlet接口 public class ServletDemo1 imple

  • Servlet服务端实现原理详解

    servlet(serverapplet)(服务端程序) 作用:作用在于交互式的浏览和修改数据,生成动态数据 狭义的servlet就是java提供的一个接口,广义的servlet是任何实现servlet接口的实现类,一般情况下,servlet为后者. servlet接口: init()当servlet第一次被请求时,初始化Servlet对象, service()每次请求时,service方法调用 destroy()当销毁Servlet对象,destroy方法调用 getServletlnfo (

  • spring boot微服务自定义starter原理详解

    这篇文章主要介绍了spring boot微服务自定义starter原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 使用spring boot开发微服务后,工程的数量大大增加(一定要按照领域来切,不要一个中间件客户端包一个),让各个jar从开发和运行时自包含成了一个重要的内容之一.spring boot starter就可以用来解决该问题(没事启动时别依赖于applicationContext.getBean获取bean进行处理,依赖关系

  • 基于vue-ssr服务端渲染入门详解

    第一部分 基本介绍 1.前言 服务端渲染实现原理机制:在服务端拿数据进行解析渲染,直接生成html片段返回给前端.然后前端可以通过解析后端返回的html片段到前端页面,大致有以下两种形式: 1.服务器通过模版引擎直接渲染整个页面,例如java后端的vm模版引擎,php后端的smarty模版引擎. 2.服务渲染生成html代码块, 前端通过AJAX获取然后使用js动态添加. 2.服务端渲染的优劣 服务端渲染能够解决两大问题: 1.seo问题,有利于搜索引擎蜘蛛抓取网站内容,利于网站的收录和排名.

  • vue的ssr服务端渲染示例详解

    为什么使用服务器端渲染 (SSR) 更好的 SEO,由于搜索引擎爬虫抓取工具可以直接查看完全渲染的页面. 请注意,截至目前,Google 和 Bing 可以很好对同步 JavaScript 应用程序进行索引.在这里,同步是关键.如果你的应用程序初始展示 loading 菊花图,然后通过 Ajax 获取内容,抓取工具并不会等待异步完成后再行抓取页面内容.也就是说,如果 SEO 对你的站点至关重要,而你的页面又是异步获取内容,则你可能需要服务器端渲染(SSR)解决此问题. 更快的内容到达时间 (ti

  • PHP:微信小程序 微信支付服务端集成实例详解及源码下载

    微信小程序 微信支付服务端集 理论上集成微信支付的全部工作可以在小程序端完成,因为小程序js有访问网络的能力,但是为了安全,不暴露敏感key,而且可以使用官方提供的现成php demo更省力,于是在服务端完成签名与发起请求,小程序端只做一个wx.requestPayment(OBJECT)接口的对接. 整体集成过程与JSAPI.APP类似,先统一下单,然后拿返回的结果来请求支付. 一共三步: 1.小程序端通过wx.login的返回的code换取openid 2.服务端向微信统一下单 3.小程序端

  • subversion服务端配置步骤详解

    配置过程:1.安装subversion 服务端软件 复制代码 代码如下: yum install subersion -ymkdir -p /data/svn_svncd  /data/svn_svn 2. 创建代码仓库 复制代码 代码如下: svnadmin create  svn_version 配置权限 复制代码 代码如下: vim conf/svnserve.confpassword-db = passwd  #取消注释anon-access = noneauth-access = wr

  • C++实现的分布式游戏服务端引擎KBEngine详解

    KBEngine 是一款开源的游戏服务端引擎,使用简单的约定协议就能够使客户端与服务端进行交互, 使用KBEngine插件能够快速与(Unity3D, OGRE, Cocos2d, HTML5, 等等)技术结合形成一个完整的客户端. 服务端底层框架使用c++编写,游戏逻辑层使用Python(支持热更新),开发者无需重复的实现一些游戏服务端通用的底层技术, 将精力真正集中到游戏开发层面上来,快速的打造各种网络游戏. (经常被问到承载上限,kbengine底层架构被设计为多进程分布式动态负载均衡方案

  • Servlet关于RequestDispatcher的原理详解

    RequestDispatcher简介 RequestDispatcher 代表请求的派发者.它有2个动作:forward 和 include .客户端对于任何一个请求,可以根据业务逻辑需要,选择不同的处理办法: 1.请求的是谁,谁就自己处理并响应,例如请求的是一个html,则web浏览器显示的就是这个HTML的内容. 2.使用RequestDispatcher让其它的资源参与进来,协同完成的响应,这就是RequestDispatcher的主要作用. RequestDispatcher 有一个特

  • 微服务架构设计RocketMQ进阶事务消息原理详解

    目录 前言 RocketMQ事务流程概要 RocketMQ事务流程关键 实现 基础配置 引入组件 添加配置 发送半消息 执行本地事务与回查 消费消息 测试 总结 前言 分布式消息选型的时候是否支持事务消息是一个很重要的考量点,而目前只有RocketMQ对事务消息支持的最好.今天我们来唠唠如何实现RocketMQ的事务消息! Apache RocketMQ在4.3.0版中已经支持分布式事务消息,这里RocketMQ采用了2PC的思想来实现了提交事务消息,同时增加一个补偿逻辑来处理二阶段超时或者失败

随机推荐