本文章主要介绍以下几个方面
1.什么是servlet
2.如何写一个简单的servlet
3.servlet的生命周期
1.什么是servlet
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。
狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。
简单来说其实就是一个java程序,运行在我们的web服务器上,用于接收和响应 客户端的http请求。 更通俗的来说就是java里面有servlet这个接口,我们去创建一些具体的类并且实现了servlet这个接口,这些类就是servlet。
2.如何写一个简单的servlet
首先你的电脑上必须安装有tomcat服务器
在写servlet之前请先执行以下几个步骤
第一步 打开E-clipse并且切换到javaEE的视图下,点击下方的servers,再点击框内的字体 如图
第二步 添加tomcat服务器,选择跟你电脑安装的tomcat相对应的版本,点击next,然后在把你的tomcat所在的路径添加进去(整个tomcat所在的文件夹)finish即可 如图
第三步 如图,这样子修改的目的是为了让你等下写的项目能够在你的tomcat服务器内(相当于修改项目的路径,也可以不必这样,但可能不方便你的查找)
完成上述几个步骤之后,我们就可以开始写一个较为简单的servlet了
第一步 先建立一个web工程,并且把版本选为2.5 如图
第二步 写一个类,再让这个类去实现servlet这个接口,并且实现里面的抽象方法 如图
第三步 去配置servlet,在项目的文档中添加一些信息(告诉服务器存在着这些servlet)
打开web.xml文档,并在里面配置一些信息
添加的信息如下
<servlet>
<servlet-name>servlet01</servlet-name>
<servlet-class>servletDemo.servlet01</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet01</servlet-name>
<url-pattern>/servlet01</url-pattern>
</servlet-mapping>
其中第一个里的内容可以随便写(一般跟你的servlet名一样),里面的内容是你这个servlet的路径,第二个里面的内容必须同第一个的内容一样,最后的的内容可以随便写,只是必须以/开头(一般与servlet名字一样)。
为什么是这样配置呢?后面会讲到。。。
第四步 在web.xml文档配置完成之后,再去那个servlet类里面的service方法里随后写一段代码,等下可以验证我们的servlet是否成功。。。
@Override
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
System.out.println("来了个请求。。。。");
}
第五步 运行你的web项目,然后在你的浏览器上输入localhost:8080/servletDemo/servlet01
即localhost:8080/项目名/中的内容
这时在你的控制台上会出现“来了个请求。。。”表明运行成功。
如图
接下来我们就该解决刚才的问题了,文档配置为什么要那么写呢?
先看看我们刚才在浏览器中输入的路径
URL:localhost:8080/servletDemo/servlet01
然后我们来看看servlet的执行过程
- 找到Tomcat服务器
- 找到项目
- 找到web.xml。然后在里面找到url-pattern,有没有一个pattern的内容是/servlet01
- 找到servlet-mapping中的那个servlet-name【servlet01】
- 找到上面那个定义的servlet元素中的servlet-name中的【servlet01】
- 找到下面定义的servlet-class然后开始创建该类的实例
- 继而执行该servlet中的service方法
理解了这个过程我们对于web.xml文档的配置就应该很清楚了,不过在这里我还是要强调一点,在浏览器中最后输入的内容(比如servlet01)是跟web.xml文档中的的内容一致,而不是对应你所写的servlet名字。
3.servlet的生命周期
什么是生命周期?
从创建到销毁的一段时间
什么是生命周期方法?
从创建到销毁,所调用的那些方法。
在这里我主要讲一下servlet的生命周期方法
- init方法
在创建该servlet的实例时,就执行该方法。
一个servlet只会初始化一次, init方法只会执行一次
默认情况下是 : 初次访问该servlet,才会创建实例。
- service方法
只要客户端来了一个请求,那么就执行这个方法了。
该方法可以被执行很多次。 一次请求,对应一次service方法的调用
- destroy方法
servlet销毁的时候,就会执行该方法
- 该项目从tomcat的里面移除。
- 正常关闭tomcat就会执行 shutdown.bat
我们也可以让Servlet创建实例的时机 提前。
-
默认情况下,只有在初次访问servlet的时候,才会执行init方法。 有的时候,我们可能需要在这个方法里面执行一些初始化工作,甚至是做一些比较耗时的逻辑。
-
那么这个时候,初次访问,可能会在init方法中逗留太久的时间。 那么有没有方法可以让这个初始化的时机提前一点。
-
我们可以在写配置的时候, 使用load-on-startup元素来指定, 给定的数字越小,启动的时机就越早。 一般不写负数, 从2开始即可。
<servlet>
<servlet-name>servlet01</servlet-name>
<servlet-class>servletDemo.servlet01</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
本文转载自 https://blog.csdn.net/weixin_44665028/article/details/96621612