原文地址:http://developer.51cto.com/art/200907/134442.htm
Servlet学习的开始我们先要明白什么是Servlet,它是运行在服务器端的程序,它是被容器调用的(如tomcat),用于处理及响应客户端的请求.
J2EE定义的是一系列的标准,没有提供实现,没有提供jar包。Tomcat中的servlet-api.jar实现了J2EE的API标准。
类结构图:
GenericServlet是抽象类,其中定义了抽象方法service()。
Servlet学习中碰到HttpServlet也是抽象类,它没有抽象方法,但它实现了service()方法,service()方法中又调用了doGet()和doPost()方法。doGet()和doPost()方法在HttpServlet类中都有默认的实现。而我们写的servlet程序一般都继承HttpServlet,重写doGet和doPost方法。Service()方法被调用时会自动调用我们重写的doGet或doPost方法,因此我们的Servlet程序主要任务就是重写这两个方法。
问题:我们Servlet学习时候,当Servlet程序中重写了doGet()和doPost()方法,service()方法是怎么调用到我们写的doGet()和doPost()方法的?
解答:这里面用到了多态,重写和继承都有了,那么父类引用指向子类对象是怎么体现的呢?service方法是被容器中我们写的Servlet类的实例调用的,而父类HttpServlet中又调用了this.doGet()和this.doPost()方法,这时就有了父类引用指向子类对象了:this(HttpServlet)-﹥我们的Servlet实例。附上一个图作为说明:
问题:Servlet学习时service()方法什么时候被调用?
解答:当客户端发出请求的时候,容器调用service 方法并传递一个请求和响应对象。Servlet首先判断该请求是GET 操作还是POST 操作。然后它调用下面的一个方法:doGet 或 doPost。如果请求是GET就调用doGet方法,如果请求是POST就调用doPost方法。
Servlet学习过程中要注意看看Servlet的生命周期:
1、客户端发送一个请求(也就是一个servlet的访问URL)
2、服务器端解析请求(通过web.xml里面的servlet配置解析)
3、servlet容器创建servlet的一个实例
4、容器调用该实例的init()方法
5、如果容器对该servlet有请求,则调用此实例的service()方法
6、返回响应消息给servlet容器
7、返回响应消息给客户端
8、容器在销毁本实例前调用它的destroy()方法
9、销毁并标记该实例以供作为垃圾收集
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
HttpServletRequest req封装了客户端到服务器端的请求,在服务器端(即我们编写的Servlet)中可以通过req获取这些请求信息。
HttpServletResponse resp从服务器端返回给客户端的对象,也就是我们往resp中写消息就可以放松给客户端了。
问题:Servlet学习中Servlet容器(如tomcat)怎样调用我们写的相应Servlet?
解答:对了,在web.xml里面配置。如:
- ﹤servlet﹥
- ﹤servlet-name﹥hw﹤/servlet-name﹥
- ﹤servlet-class﹥com.dvnchina.test.HelloWorldServlet﹤/servlet-class﹥
- ﹤/servlet﹥
- ﹤servlet-mapping﹥
- ﹤servlet-name﹥hw﹤/servlet-name﹥
- ﹤url-pattern﹥/helloservlet﹤/url-pattern﹥
- ﹤/servlet-mapping﹥
这时客户端通过http://127.0.0.1:8080/ServletTest/helloservlet发送请求,就可以调用hw这个servlet,当hw被调用后就容器就自动调用hw的service()方法,而hw实例从HttpServlet继承的service()方法中又调用了doGet()和doPost()方法,此时根据多态就调用了我们servlet中写的doGet()和doPost()方法。
相关推荐
JAVA,JSP,SERVLET课件及一些常见问题解决方法
servlet线程安全问题servlet线程安全问题
JSP与Servlet学习课件
Servlet学习笔记(java的Servlet)。 jsp的学习基础。此笔记可让你5天内学会使用Servlet,可快速入门,也可当手册使用。 更多:http://download.csdn.net/user/daillo/all
servlet学习入门教材 servlet学习入门教材 servlet学习入门教材
Java Servlet 学习课件 Java Servlet 学习课件
Servlet学习笔记Servlet学习笔记
Servlet&JSP课后习题解答,有需要的朋友可以下载来参考下。
servlet学习笔记.doc
《JSP & Servlet学习笔记(第2版)》涵盖了文本处理、图片验证、自动登录、验证过滤器、压缩处理、JSTL应用与操作等各种实用范例。 《JSP & Servlet学习笔记(第2版)》以“微博”项目贯穿全书,将JSP & Servlet技术应用...
林学良Jsp&Servlet学习笔记,html格式的,很基础的学习文档。
Servlet学习笔记
本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习JSP & Servlet时遇到的概念、操作、应用或认证考试等问题及解决方案。, 本书针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都做...
javaEE servlet 学习笔记 jsp本质上是servlet,但是为了更加符合mvc的框架,将页面显示和逻辑控制分离,jsp页面只负责页面,也就是mvc中的V(view),而servlet负责mvc中的C(control)。 而为了更加好的理解结构,一下...
JSPServlet新手学习资料JSPServlet新手学习资料
本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习JSP & Servlet时遇到的概念、操作、应用或认证考试等问题及解决方案。 本书针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都...
JSP & Servlet学习笔记(第2版)》是作者多年来教学实践经验的总结,汇集了学生在学习JSP&Servlet或认证考试时遇到的概念、操作、应用等各种问题及解决方案。 本书针对Servlet3.0的新功能全面改版,无论章节架构...