在 Java Web 开发中,Servlet 的实例是由 Servlet 容器(如 Tomcat)负责创建和管理的,开发者通常不需要(也不应该)手动 new 一个 Servlet。
下面从创建时机、创建方式、配置方式三个角度说明。
由 Servlet 容器(Web 容器)创建
init() 方法service())@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
}
/hello 时创建实例@WebServlet(
urlPatterns = "/hello",
loadOnStartup = 1
)
public class HelloServlet extends HttpServlet {
}
或 web.xml:
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.example.HelloServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
1. 加载 Servlet 类(ClassLoader)
2. 调用 无参构造方法(创建实例)
3. 调用 init(ServletConfig)
4. 调用 service()
5. 容器关闭时调用 destroy()
⚠️ 注意
new HelloServlet()✅ 是(通常)
ThreadLocal@WebServlet("/demo")
public class DemoServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.getWriter().write("Servlet created by container");
}
}
Servlet 实例由 Web 容器通过无参构造方法自动创建,开发者只负责编写 Servlet 类,不直接创建实例。
如果你愿意,我也可以讲:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。