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实现原理内容请搜索编程学习网以前的文章希望大家以后多多支持编程学习网!
本文标题为:Servlet服务端实现原理详解
基础教程推荐
- springboot自定义starter方法及注解实例 2023-03-31
- ConditionalOnProperty配置swagger不生效问题及解决 2023-01-02
- Java文件管理操作的知识点整理 2023-05-19
- java实现多人聊天系统 2023-05-19
- Java实现查找文件和替换文件内容 2023-04-06
- Java并发编程进阶之线程控制篇 2023-03-07
- Java实现线程插队的示例代码 2022-09-03
- Java数据结构之对象比较详解 2023-03-07
- JDK数组阻塞队列源码深入分析总结 2023-04-18
- java基础知识之FileInputStream流的使用 2023-08-11