Servlet是否单例?
Posted 篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Servlet是否单例?相关的知识,希望对你有一定的参考价值。 1,测试环境: Java SE版本:1.8.0_161(AMD64) Tomcat版本:9.0.7(AMD64) 2,试验 (1)编写HelloServlet。 由于测试代码很简单,此处只列出doGet方法的实现。 resp.setCharacterEncoding("UTF-8"); (2)配置Servlet (3)实验一 分别访问http://localhost:8080/SessionQuiz/hello和http://localhost:8080/SessionQuiz/hell两个URL 返回页面显示两个不同的Hash Code。说明创建了两个不同的HelloServlet实例。 (4)试验二 把如下代码 替换为 再次分别访问http://localhost:8080/SessionQuiz/hello和http://localhost:8080/SessionQuiz/hell两个URL 返回页面显示完全相同的Hash Code。说明Web容器只创建了一个HelloServlet实例。 (5)试验结论 3,最终结论 当然,还有其他的方式来验证Servlet实例化的问题。比如,通过监听创建Servlet实例的方式。 以上是关于Servlet是否单例?的主要内容,如果未能解决你的问题,请参考以下文章
resp.setContentType("text/html");
PrintWriter writer = resp.getWriter();
writer.write("Hash Code : " + this.hashCode()); 1 <?xml version="1.0" encoding="UTF-8"?>
2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns="http://xmlns.jcp.org/xml/ns/javaee"
4 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
5 id="SessionQuiz" version="3.1">
6
7 <display-name>SessionQuiz</display-name>
8
9 <servlet>
10 <servlet-name>hello</servlet-name>
11 <servlet-class>com.raven.quiz.servlet.HelloServlet</servlet-class>
12 </servlet>
13 <servlet-mapping>
14 <servlet-name>hello</servlet-name>
15 <url-pattern>/hello</url-pattern>
16 </servlet-mapping>
17
18 <servlet>
19 <servlet-name>hell</servlet-name>
20 <servlet-class>com.raven.quiz.servlet.HelloServlet</servlet-class>
21 </servlet>
22 <servlet-mapping>
23 <servlet-name>hell</servlet-name>
24 <url-pattern>/hell</url-pattern>
25 </servlet-mapping>
26
27 <welcome-file-list>
28 <welcome-file>index.jsp</welcome-file>
29 </welcome-file-list>
30 </web-app>
1 <servlet>
2 <servlet-name>hell</servlet-name>
3 <servlet-class>com.raven.quiz.servlet.HelloServlet</servlet-class>
4 </servlet>
5 <servlet-mapping>
6 <servlet-name>hell</servlet-name>
7 <url-pattern>/hell</url-pattern>
8 </servlet-mapping>
1 <!-- <servlet>
2 <servlet-name>hell</servlet-name>
3 <servlet-class>com.raven.quiz.servlet.HelloServlet</servlet-class>
4 </servlet> -->
5 <servlet-mapping>
6 <servlet-name>hello</servlet-name>
7 <url-pattern>/hell</url-pattern>
8 </servlet-mapping>