一、servlet的实现方式:
1、实现servlet接口(偏向底层)
Servlet接口有五个方法
init初始化,就是把servlet装载到内存中,只会被调用一次
getServletConfig获取servletConfig对象
service主要的服务方法,放业务逻辑,每次都会被调用
getServletInfo得到servlet配置信息
destroy销毁该servlet,从内存中清除掉
2、继承GenericServlet(觉得1不好用,就开发了这个,现在基本没啥用)
继承GenericServlet
GenericServlet实现了servlet接口, 然后只有一个抽象方法需要你自己去重写,那就是service方法,所以相比来说init别的方法他都帮你实现好了,只要你写service方法就可以了。,至少看起来继承GenericServlet比直接实现servlet接口要方便,这个类是在javax.servlet.GenericServlet下的。
3、继承HttpServlet(现在大多数用这个)
继承HttpServlet
因为后来发现servlet主要是为了服务于http请求的,而且发现GenericServlet对于http来说还不够好,所以有了HttpServlet,首先它是继承自GenericServlet,然后它有很多http相关的方法,post,get,put等待,用户可以根据自己需要来实现这些方法,每个过来的请求都会调用service方法,最后service会根据不用的请求分发到不同的地方去做。
二、servlet的生命周期:
- Servlet的生命周期分为5个阶段:加载、创建、初始化、处理客户请求、卸载。
(1)加载:容器通过类加载器使用servlet类对应的文件加载servlet
三、servlet的工作原理:
1、首先简单解释一下Servlet接收和响应客户请求的过程,首先客户发送一个请求,Servlet是调用service()方法对请求进行响应的,通过源代码可见,service()方法中对请求的方式进行了匹配,选择调用doGet,doPost等这些方法,然后再进入对应的方法中调用逻辑层的方法,实现对客户的响应。在Servlet接口和GenericServlet中是没有doGet()、doPost()等等这些方法的,HttpServlet中定义了这些方法,但是都是返回error信息,所以,我们每次定义一个Servlet的时候,都必须实现doGet或doPost等这些方法。
2、每一个自定义的Servlet都必须实现Servlet的接口,Servlet接口中定义了五个方法,其中比较重要的三个方法涉及到Servlet的生命周期,分别是上文提到的init(),service(),destroy()方法。GenericServlet是一个通用的,不特定于任何协议的Servlet,它实现了Servlet接口。而HttpServlet继承于GenericServlet,因此HttpServlet也实现了Servlet接口。所以我们定义Servlet的时候只需要继承HttpServlet即可。
3、Servlet接口和GenericServlet是不特定于任何协议的,而HttpServlet是特定于HTTP协议的类,所以HttpServlet中实现了service()方法,并将请求ServletRequest、ServletResponse 强转为HttpRequest 和 HttpResponse。
4、首先当servlet第一次被调用的时候,会调用servlet的init方法(只调用一次),把servlet实例装载到内存中。之后会调用service方法,当第二次servlet被访问的时候就会直接调用service函数。只有当web应用关闭,或者容器关闭,或者电脑关闭时候,才会调用destroy方法销毁servlet,从内存中清除掉。下面是浏览器发出请求后servlet执行的流程图
相关推荐
Servlet是Java Web开发中的核心组件,它是一种服务器端的Java应用程序,主要负责处理客户端(通常是Web浏览器)的请求,并返回相应的响应。Servlet是独立于平台和协议的,它可以生成动态的Web页面,作为HTTP服务器与...
JAVA100例之实例79Servlet的初步学习
通过J2-03第三课 servlet技术初步入门的学习资料,你可以进行以下实践: 1. 创建一个简单的Servlet,处理GET请求并返回欢迎消息。 2. 学习如何通过Servlet传递参数,并在Servlet中处理这些参数。 3. 理解Servlet的...
通过学习《JavaServlet程序设计初步》,你将掌握如何使用Servlet构建Web应用的基本技能,包括处理HTTP请求、响应、管理会话、处理异常等。这将为你的IT职业生涯打下坚实的基础,助你在Web开发领域大展拳脚。祝你在...
通过以上介绍,初学者应能对Servlet的基本概念、工作原理和使用方法有初步理解。实践是学习的最佳方式,尝试编写并运行`FirstServlet`,体验Servlet的运行过程,将有助于巩固理论知识。在后续的学习中,深入理解MVC...
通过以上内容,你已对Servlet有了初步的认识。继续深入,你将掌握更多高级特性,如异步处理、WebSocket支持、Servlet上下文(ServletContext)、监听器(Listener)等,进一步提升你的Web开发能力。记得实践是检验...
### 关于Servlet的基础认知与实例解析 #### 一、Servlet简介 Servlet是一种Java技术,用于扩展Web服务器的能力,尤其在处理HTTP请求时表现突出。...理解这些基本概念对于学习Java Web开发至关重要。
Servlet是Java平台上的一个核心技术,用于开发动态...通过实践上述例子,你可以对Servlet有一个初步的认识,并为进一步深入学习打下坚实的基础。记住,只有通过实践,才能真正掌握这些概念,所以不妨动手尝试一下吧!
通过这个基础入门教程,你应该对Servlet有了初步了解,可以开始编写简单的Servlet应用。然而,深入学习还包括MVC框架(如Spring MVC)、异步处理、过滤器、监听器等内容。继续探索,你将在Java Web开发领域更加熟练...
servlet编程初步,可以帮助初学者好好的学习,提升基础
此外,源码中的异常处理、线程安全、性能优化等方面都是学习的重点,这对于任何Java Web开发者来说都是非常宝贵的经验。同时,源码包中的编译包可以帮助你在项目中直接引用,无需从头编译源码。
`httpClient_001`和`httpClient_002`可能是这个教程的两个部分,分别涵盖HttpClient的初步使用和更复杂的用法。 总之,HttpClient是Java中强大的HTTP客户端工具,能够帮助开发者轻松地实现HTTP请求,适用于各种网络...
- 初步了解Servlet的配置和使用,接下来可以学习更深入的Servlet特性,如生命周期管理、过滤器、监听器等。 - 学习如何处理表单数据、使用session和cookie进行用户状态管理,以及与其他Java框架(如Spring MVC)的...
适合人群:初学者,初步接触SERVLET,适合初学者的联系小项目。 能学到什么:①练习JSP,EL表达式,SERVLET关键点技术项目;②分层开发的管理系统,都是如何设计和实现的,简单的展现,通俗易懂。 阅读建议:此资源以...
通过这个简单的登录系统,你可以逐步掌握JSP和Servlet的基础知识,为进一步学习更复杂的Web应用打下坚实基础。在实际项目中,你还需要学习如何使用数据库存储用户信息,以及如何处理更复杂的安全和性能问题。
通过学习这个压缩包中的内容,开发者可以掌握在线支付系统的后台实现,了解支付流程的关键步骤,以及如何通过Servlet有效地处理这些过程。对于初学者来说,这是一个很好的实践项目,可以帮助他们深入理解Servlet和...
在本书中,读者可以深入学习Servlet的生命周期、服务机制以及如何通过Servlet进行HTTP请求的处理。例如,Servlet的初始化、服务和销毁三个阶段,以及如何使用doGet和doPost方法处理HTTP的GET和POST请求。此外,还会...
Servlet是Java Web开发中的核心组件,它用于扩展服务器的功能,处理HTTP请求并返回响应。这份压缩包包含了从Servlet 2.3...通过深入学习和实践,开发者可以更好地掌握Servlet技术,从而构建高效、可维护的Web应用程序。