Servlet总结

Servlet总结,第1张

Servlet总结

Servlet总结

1 servlet是什么2 servlet职责3 servlet的生命周期(LF)

3.1 创建

3.1.1 三种创建方式3.1.2 servlet对象

3.1.2.1 验证在第一次请求时创建一次servlet3.1.2.2 验证在容器(tomcat)启动时创建servlet对象 3.2 初始化

3.2.1 验证 3.3 service()方法

3.3.1 验证 3.4 选择doGet()/ doPost()方法3.5 销毁 4 补充:ServletConfig配置servlet的对象

1 servlet是什么

servlet是server(服务器)+applet(程序)的缩写,是服务器端运行的java程序

2 servlet职责

servlet对象的职责有两个:

和前端(html/jsp)交互,和后台(java)交互,并在其中起着控制的作用控制页面的跳转 3 servlet的生命周期(LF) 3.1 创建 3.1.1 三种创建方式

有三种创建servlet的方式,第三种是最常用的方法:

implements Servletextends abstract GenericServlet类:覆盖service()方法extends HttpServlet:覆盖doGet() / doPost()方法

对象创建过程:代码块–>构造方法–>对象

类HttpServlet继承于类GenericServlet,类GenericServlet实现了Servlet接口

3.1.2 servlet对象

servlet对象只创建一次,有两个地方会创建

在第一次请求时创建容器(tomcat)启动时创建
< load-on-startup >1< /load-on-startup > : 配置这个则会在容器启动创建
附带创建的对象ServletConfig:配置servlet的对象

在多次请求时,用多线程的方法,servlet请求是线程不安全的

3.1.2.1 验证在第一次请求时创建一次servlet

这里创建方法用的是继承HttpServlet在构造方法里的两行打印,来验证只创建一次servlet

public class LFServlet extends HttpServlet {
	
	public LFServlet() {
		System.out.println("验证多次请求时,servlet的创建次数:创建servlet");
		System.out.println(this.hashCode());
	}
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
		doGet(req, resp);
	}

}

打开一个网页来发起请求

在多次刷新页面后,也只创建一次servlet对象

3.1.2.2 验证在容器(tomcat)启动时创建servlet对象

1.要使得在tomcat启动时就能创建servlet对象,先要在web.xml中servlet下加上:< load-on-startup >1< /load-on-startup >

2.在构造方法打印两行用于验证

public class LFServlet extends HttpServlet {
	
	public LFServlet() {
		System.out.println("验证在容器启动时创建servlet");
		System.out.println(this.hashCode());
	}
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
		doGet(req, resp);
	}

}

3.重启tomcat,发现在启动时就创建了servlet对象,无需等待网页的请求

注:还有另一种情况,如果是用注解的方式创建的servlet对象,则如下修改

3.2 初始化

初始化指的是调用构造方法之后(servlet对象创建后),第一个调用的方法(init方法),servlet自动调用。

3.2.1 验证


这里使用的是容器启动时创建servlet,可以看到在创建servlet对象后,立刻调用了init()方法,这就是初始化

3.3 service()方法

每次前端的向servlet的请求,实际上是servlet对象调用service()方法。

3.3.1 验证


请求一次网页,则调用一次service方法

3.4 选择doGet()/ doPost()方法

在service方法中,通过判断method,调用doGet()/doPost()

3.5 销毁

销毁时会自动调用destroy()方法
destroy()—>容器(java)–>JVM
servlet被容器(一个java程序)销毁。容器是被JVM销毁的。在JVM上跑着一个容器,容器里装的是servlet

4 补充:ServletConfig配置servlet的对象

在创建Servlet对象时,会自动创建一个ServletConfig对象,可以配置servlet对象

可以用于传入一些值,比如是key:123

通过ServletConfig对象可以拿到这个值

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5717401.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存