Servlet学习笔记2
目录
--------- Servlet学习笔记1------------
----------Servlet学习笔记2------------
----------Servlet学习笔记3------------
3.servlet的生命周期
生命周期:自然界从出生到最终走向西方极乐世界,这个周期过程就是人的生命周期,其实Servlet的生命周期和人的一样,从servlet对象被创建,经过使用servlet对象,到最终servlet对象被销毁,整个过程就是servlet的生命周期。
与生命周期相关的三个方法:
(1)init(ServletConfig config)初始化方法:首次访问整个servlet,servlet对象会被创建,执行初始化方法,执行一次。
(2)service(ServletRequest req,ServletResponse res)服务方法:每次访问servlet时,服务方法都会被执行,执行多次。
(3)destroy()销毁方法:在服务器正常关闭时会执行销毁方法,只执行一次。
比如:
public class LifeServlet extends GenericServlet{
/*
* 初始化方法
*/
public void init(ServletConfig config) throws ServletException {
System.out.println("-------首次访问LefeServlet时,会执行这个初始化方法-------------------");
}
/*
* servlet的服务方法
*/
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
System.out.println("-----每次访问LifeServlet,都会执行这个方法----");
}
/*
* 销毁方法
*/
public void destroy() {
System.out.println("----在服务器关闭时,会执行销毁方法-----");
}
}
在web.xml中配置访问路径:
<servlet>
<servlet-name>LifeServlet</servlet-name>
<servlet-class>cn.itcast.firstmyapp.servlet.LifeServlet</servlet-class>
</servlet>
<!-- 配置浏览器访问servlet的路径 -->
<servlet-mapping>
<servlet-name>LifeServlet</servlet-name>
<url-pattern>/life</url-pattern>
</servlet-mapping>
1.4 Servlet应用—HttpServlet
在开发中,通常浏览器访问web服务端的资源,是带有协议的访问,比如说http协议,https协议等,所以说在创建servlet时,需要使用带有协议的servlet,那么咱们程序员在创建srevlet时通常用继承HttpServlet的方式来实现。
1.查看HttpServlet源码:
2. 查看源码得到的结论:
在HttpServlet里面重写service方法时,因为在service方 法里面最终调用doGet()或者doPost()方法。在客户端发送get请求,在服务器端就用doGet()方法接收
在客户端发送Post请求,在服务器端就用doPost()来接收
在开发中注意的细节:
(1)在使用对象时,使用带有协议的请求和响应对象HttpServletRequest和HttpServletResponse
(2)在开发时,继承HttpServlet时,直接重写doGet()和doPost()方法,而不重写service()方法
访问Servlet的具体执行过程:见图分析
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?