Servlet简述

Servlet

IT那个小笔记

  1. 什么是Servlet
  2. Servlet的使用
  3. Servlet生命周期
  4. 配置文件

什么是Servlet

Servlet 运行在服务端的Java程序,是sun公司提供一套规范(接口)

用来处理客户端请求、响应给浏览器的动态资源

servlet的实质就是java代码,通过java的API动态的向客户端输出内容

以后写的程序就不在是在本地执行了。而是编译成字节码,放到服务器上来去执行。

编写程序时, 不需要有main函数了。因为写完后,就把编写的程序编译成字节码,放到服务器上面。当前发送就一个请求的时候,服务器就会按照一定规则调用编写的代码

Servlet的使用

1.创建一个web工程

2.src中新建class文件

3.进入该class实现一个Servlet接口,实现它未实现的方法

4.在web.xml当中进行配置

Servlet的生命周期

init( ),service( ),destroy( )是Servlet生命周期的方法。代表了Servlet从“出生”到“工作”再到“死亡 ”的过程。Servlet容器(例如TomCat)会根据下面的规则来调用这三个方法:

init( )

  • 当Servlet第一次被请求时,Servlet容器就会开始调用这个方法来初始化一个Servlet对象出来,但是这个方法在后续请求中不会在被Servlet容器调用,之后会直接用之前第一次缓存好的对象。我们可以利用init( )方法来执行相应的初始化工作。调用这个方法时,Servlet容器会传入一个ServletConfig对象进来从而对Servlet对象进行初始化。

service( )

  • 每当请求Servlet时,Servlet容器就会调用这个方法。每次请求都会调用。第一次请求时,Servlet容器会先调用init( )方法初始化一个Servlet对象出来,然后会调用它的service( )方法进行工作,但在后续的请求中,Servlet容器只会调用service方法了。

destory( )

  • 当要销毁Servlet时,Servlet容器就会调用这个方法,在卸载应用程序或者关闭Servlet容器时,就会发生这种情况,一般在这个方法中会写一些清除代码。

配置文件

首先是web.xml

一个web应用就会有一个web.xml。它包含着整个应用的配置信息

请求通过server.xml找到web应用之后的处理就在此web应用的web.xml中

 <servlet>
    <description></description>
    <servlet-name>Test</servlet-name>
    <servlet-class>com.hao.servlet.Test</servlet-class>
  </servlet>
  
  <servlet-mapping>
    <servlet-name>Test</servlet-name>
    <url-pattern>/tttt</url-pattern>
  </servlet-mapping>

每添加一个servlet就会添加这样一对,servlet标签中的<servlet-name>是自定义当前servlet的标识名,<servlet-class>是当前servlet文件的位置全限定名,servlet-mapping标签是一个映射通过它来找到servlet。

http://localhost:8080/myweb/tttt

通过这样一个请求就会找到<url-pattern>相匹配的<servlet-mapping>知道名字是Test,再去多对的<servlet>中去找到名字是Test的<servlet>然后就通过它的<servlet-class>访问到文件

还有ServletConfig对象

此对象可以访问获取配置文件的信息

在init方法中Tomcat就会自动传入一个ServletConfig对象config

/* 获取当前servlet配置的标识名 */
config.getServletName();
/* 配置文件可以给servlet添加一些键值对,在程序中通过config来访问 */
<servlet>
    <description></description>
    <display-name>Test</display-name>
    <servlet-name>Test</servlet-name>
    <servlet-class>com.hao.servlet.Test</servlet-class>
    
    <init-param>
        <param-name>参数名</param-name>
        <param-value>参数值</param-value>
    </init-param>
  </servlet>
  
  config.getInitParameter("参数名");
/* 除此之外还可以获得ServletContext */
ServletContext sc = config.getServletContext();

原文发布于微信公众号 - IT那个小笔记(qq1839646816)

原文发表时间:2019-08-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券