JavaWeb-servlet

Posted 再来半包

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaWeb-servlet相关的知识,希望对你有一定的参考价值。

Servlet

servlet

servlet的基本讲解

Servlet:是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。

狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于

支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。最早支持

Servlet标准的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web服务器开始支持标准的Servlet

简而言之:是一种“请求–响应”技术

servlet的生命周期

导读模块:所谓的生命周期是指一个东西的起效的整个过程

1.而servlet的生命周期即阐述Servlet从产生到毁灭的整个过程

在Servlet产生到消亡的过程中,有三个生命周期函数,初始化方法init(),处理客户请求的方法service(),终止方法destroy()。

1.1init( ):

​ 在一个Servlet的生命周期中,init方法只会被执行一次,之后无论用户执行多少次请求,都不会在调用该方法。

​ 关于init方法的执行时机,有两种方式可选,一般的是在服务器启动后第一个用户请求该Servlet时调用,你也可以设置该Servlet在服务器启动后自动执行。

使用场景:init( )负责预加载一些数据,这些数据将用于该Servlet的整个生命周期中

<context-param> 
		 <param-name>driver</param-name> 
		 <param-value>com.mysql.jdbc.Driver</param-value> 
		</context-param> 

		<context-param> 
		 <param-name>url</param-name> 
		 <param-value>jdbc:mysql://localhost:3306/test1113?useUnicode=true&amp;characterEncoding=utf-8</param-value> 
		</context-param> 

		<context-param> 
		 <param-name>username</param-name> 
		 <param-value>root</param-value> 
		</context-param> 

		<context-param> 
		 <param-name>password</param-name> 
		 <param-value>root</param-value> 
		</context-param> 
<!-- 写在<welcome-file-list>与<servlet>之间,用于获取四要素-->
@Override
	public void init() throws ServletException 
		System.out.println("HelloServlet初始化的时候可以预加载一些数据。。。。");
				
		driver = getServletContext().getInitParameter("driver");
		url = getServletContext().getInitParameter("url");
		username = getServletContext().getInitParameter("username");
		password = getServletContext().getInitParameter("password");

		System.out.println(driver+"\\n"+url+"\\n"+username+"\\n"+password);	
	
//重写init()方法,则可以在加载的时侯

1.2service( ):

service方法

当一个客户请求该Servlet时,实际的处理工作全部由service方法来完成,service方法用来处理客户端的请求,并生成格式化数据返回给客户端

1.3destroy( ):

该方法在整个生命周期中,也是只会被调用一次,在Servlet对象被销毁时调用,在servlet中我们可以做一些资源的释放等操作,执行destory方法之后的servlet对象,会等待jvm虚拟机的垃圾回收机制择时回收

使用场景:destory( )方法负责将一些需要释放的资源写在里面

备注:当修改servlet中的内容的时候 ,就会触发destory( )方法

JSP与servlet的关系

1.JSP执行之后的本质就是一个servlet

为什么既然有了JSP还要有Servlet呢?

是因为使用场景不同,JSP更多的偏重于页面的展示,而Servlet更多的是偏重于后台的处理程序

ps:通过查看源代码我们发现HttpJspBase的父类是HttpServlet

2.JSP的执行效率/速度比Servlet慢

httpServlet中的两个service()方法的区别

以上是关于JavaWeb-servlet的主要内容,如果未能解决你的问题,请参考以下文章

javaWeb-Servlet

JavaWeb-servlet

JavaWeb-servlet

JavaWeb-servlet

[JavaWeb-Servlet]Servlet相关配置

[JavaWeb-Servlet]Servlet的体系结构