(九)JavaWeb后端开发——Servlet

目录

1.Servlet由来

2.Servlet快速入门

3.Servlet执行原理

4.Servlet生命周期


1.Servlet由来

在JaveEE API文档中对Servlet的描述是:可以运行在服务器端的微小程序,但是实际上,**Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则,**所以说编程人员需要去自定义一个类实现,Servlet接口,并重写其中的方法

浏览器请求服务器的信息的时候,有静态资源和动态资源,动态资源在不同用户访问时的表现不同,其中的逻辑由Java代码规定,所以需要一个Java类,而这个Jave类依赖于服务器(tomcat)才能运行,那么tomcat如何识别这个Java类呢?一定是需要一些规则,也就是接口(在Java中规则就是接口),所以Servlet接口应运而生

2.Servlet快速入门

  1. 创建JavaEE项目
  2. 自定义一个类,实现servlet接口
  3. 实现接口中的抽象方法
  4. 配置servlet
Servlet接口的方法 方法描述
init() 初始化方法,在Servlet被创建时执行,且只会执行一次
getServletConfig() 获取ServletConfig对象,即Servlet的配置对象
getServletInfo() 获取Servlet的一些信息,版本,作者等等
service() 提供业务逻辑的代码,每一次Servlet被访问时都执行
destroy() 在服务器正常关闭时执行,且只会执行一次

配置servlet要在web.xml的根标签里面

XML 复制代码
<!-- 配置servlet -->
<servlet>
    <servlet-name>demo1</servlet-name>
    <servlet-class>cn.itcast.web.servlet.ServletDemo1</servlet-class>
    <!-- 全类名 -->
</servlet>

<servlet-mapping>
    <servlet-name>demo1</servlet-name>
    <url-pattern>/demo1</url-pattern>
    <!-- 资源路径 -->
</servlet-mapping>

3.Servlet执行原理

当启动项目之后就可以执行service()方法中的业务逻辑了,但是其中Servlet的执行原理是怎么样的呢?看下面这个视频讲得很清楚 3_Servlet_执行原理_哔哩哔哩_bilibili

执行原理:

  1. 服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的servlet的资源路径
  2. 查找web.xml文件,是否有对应的<url-pattern>标签体内容
  3. 如果有,则在找到对应的<servlet-class>全类名
  4. tomcat会将字节码文件加载进内存,并且创建其对象
  5. 调用其方法

4.Servlet生命周期

  1. 被创建:执行init方法,只执行一次
  2. 提供服务:执行service方法,执行多次
  3. 被销毁:执行destroy方法,只执行一次
相关推荐
ernesto_ji9 小时前
Jenkins下载安装、构建部署到linux远程启动运行
linux·servlet·jenkins
书埋不住我12 小时前
java第三章
java·开发语言·servlet
运维老司机2 天前
jenkins离线安装插件
运维·servlet·jenkins
运维老司机2 天前
Jenkins更换主题颜色+登录页面LOGO图片
运维·servlet·jenkins
java小吕布3 天前
Java Servlet详解:Servlet的生命周期、请求处理与响应发送
java·开发语言·servlet
namedlock4 天前
Failed to create a temp file - Jenkins 无法创建任务
java·servlet·jenkins
ling-455 天前
Javaweb-day12(登录认证)
服务器·前端·servlet
龙仔7255 天前
麒麟系统下docker搭建jenkins
servlet·docker·jenkins
cuisidong19977 天前
Springmvc配置文件application.xml 和 spring-servlet.xml
xml·spring·servlet
路在脚下@8 天前
Springboot 的Servlet Web 应用、响应式 Web 应用(Reactive)以及非 Web 应用(None)的特点和适用场景
java·spring boot·servlet