理解Servlet
在Project Explorer中打开Java Resources: src -> Libraries -> Apache Tomcat 5.5 -> servlet-api.jar文件,可以看到其中包含两个包:javax.servlet和javax.servlet.http, 与Servlet有关的类和接口都位于这两个包里面。
Servlet是一个接口,位于 javax.servlet.Servlet,它规定了每个Servlet所必须实现的方法。 实际应用时我们需要从 javax.servlet.GenericServlet 和 javax.servlet.http.HttpServlet 两个抽象类 继承出自己的Servlet类,并实现所需的功能。这几个类的关系如下(绿色斜体字为抽象类):
上图中,Servlet依赖于ServletRequest和ServletResponse接口,这两个接口负责为Servlet接受和发送信息。HttpServlet也类似。
Servlet接口
javax.servlet.Servlet接口包含以下的方法:
init()
void init(ServletConfig config) throws ServletException
init方法用于初始化,在Servlet启动时调用。
service()
void service(ServletRequest req, ServiceResponse res) throws ServletException, IOException
Servlet通过这个方法,从req获得客户端请求,处理并生成结果,再通过res发送给客户端。
destroy()
void destroy()
Servlet销毁时执行的方法。
getServletInfo()
String getServletInfo()
将Servlet的信息通过字符串返回。
getServletConfig()
ServletConfig getServletConfig()
获取包含Servlet各种信息的ServletConfig对象。
当某个Servlet第一次被请求时,服务器(Servlet容器)会生成该Servlet并调用它的init()方法, 再调用其service()方法处理请求。处理结束后该Servlet会常驻于容器中,下一个请求则不再 重新生成Servlet,而是直接调用常驻的Servlet对象的service()方法。 服务器停止时,会调用该Servlet的destroy()方法。
因此,在Servlet的一个生命周期中,init()和destroy()仅会被调用一次, 而service()则会被调用多次。
××××××××××××××××××Servlet里面一般存在doGet或者doPost方法不出现Service()方法××××××××××××
其实Servlet中,service方法是一直存在的,因为最高层的接口Servlet(想HttpServlet等具体的servlet都是直接或者间接实现了这个接口)里面就有这个方法,所以不管是怎样的servlet类,都有service方法,没有service就不能称为一个servlet了。
写了一个Servlet(应该是继承HttpServlet吧),重写了service方法,一般来说这个方法是不需要重写的,因为在HttpServlet中已经有了很好的实现,它会根据请求的方式,调用doGet或者doPost方法,所以我们么一般写一个servlet,只需要重写doGet或者doPost就可以了,如果你重写了service方法,那么servlet容器就会把请求交给这个方法来处理,而你又没有在service方法中调用doGet或者doPost,那么当然doGet方法就会不起作用了,我的建议是如果你由于某种需要,需要重写service方法,在末尾最好加上一句super.service(),这样就可以解决问题了。
××××××××××××××××××××××××××××××××××
GenericServlet抽象类
javax.servlet.GenericServlet为我们实现了Servlet接口的大部分方法,除了service()方法之外。 因此,我们在制作自己的Servlet时,只需要继承GenericServlet并重载service()方法即可。
相关推荐
Lesson_jsp内置对象和简单理解servlet
理解Servlet的概念以及Servlet的处理流程
如果把起控制器作用的Servlet的作用理解为对客户端的请求进行预处理对理解Servlet将有很大的帮助。通过web.XML配置文件可以找到用户请求和特定的Servlet的对应关系,每个Servlet都有一个特定的Servlet对象与之对应,...
(1) 理解servlet的工作原理 (2) 掌握servlet编程基本技能 实验内容及要求 1. 利用servlet技术实现一个简单的聊天室,实现多人同时交流。当发送聊天信息时,信息窗口刷新。信息窗口显示发言人的姓名以及发言的内容。...
本章内容 知道什么是Servlet,理解Servlet的作用 理解Servlet的生命周期 会通过继承HTTPServlet类的方式创建自己的Servlet类 知道如何访问servlet 理解web.xml中关于Servlet的配置 知道如何在servlet中取得客户端的...
更加深入了解servlet 和 jsp 的结合。更好的帮助你熟悉他们的关系
深入解读servlet的执行流程,理解servlet的开发,方便struts的学习
servlet生命周期演示,便于理解servlet工作流程。
servlet实现简单登录验证,最简单的实现,通过equals()方法然后重定向,主要是理解servlet的运行机制
1. 理解servlet的生命周期 知道什么是servlet:运行在服务器端的一个单实例多线程的服务器端Java应用程序(手动的配置servlet) 2. 熟练掌握通过servlet接受参数信息
Servlet编写登录的demo,重点理解Servlet的原理
用servlet+jsp写的,没有用到JDBC,数据存在了作用域里面。小例子,可以帮助很好的理解servlet请求过程。
servlet原理--帮助理解servlet
适用于初学者,实现简单的数据库交互,对于servlet有者通俗的理解,能更好的的帮助新手理解servlet和数据库与前端的交互。
理解Servlet 使用Servlet进行简单编程 掌握Servlet API 使用Servlet编程 掌握Servlet 异常 使用Servlet技术的综合应用实例
通过本章的学习让学生了解如何用 servlet 读写文件,用 servlet 访 ...理解servlet 工作原理,servlet 共享变量的使用;掌握编译和安装 servlet,通过 JSP 页面调用 servlet,HttpServlet 类,掌握会话管理。
servlet web.xml 运行过程
主要是对Servlet与JSP运行的深刻理解,帮助用户理解Servlet的运行原理,很有用的
可以帮助初学者更好的理解servlet从而更好的运用
适合初学者理解Servlet,JDBC,MySQL,JSP等基本概念。