servlet、genericservlet、httpservlet之间的区别
分类: J2EE 2010-01-08 22:27 278人阅读 评论(0) 收藏 举报
当编写一个servlet时,必须直接或间接实现servlet接口,最可能实现的方法就是扩展javax.servlet.genericservlet或javax.servlet.http.httpservlet当实现javax.servlet.servlet接口时必须实现5个方法
init(servletconfig config)
service(servletrequest req,servletresponse resp)
destroy()
getservletconfig()
getservletinfo()
service是执行应用逻辑的入口点,包容器调用此方法来响应进来得请求,只是在servlet被成功初始化后才能调用它
其实servlet和applet差不多,当一个servlet被实例化后,包容器自动去调用固定的方法首先是init(),然后是service().....
genericservlet类提供了servlet接口的基本实现,所以他的子类都必须实现service()方法
httpservlet类扩展了genericservlet并且提供了servlet接口中具体于http的实现,它更象一个其他所有的servlet都要扩展的类,其中他定义了两种形式的service方法:
service(servirequest req,servletresponse resp)
此方法是genericservlet的service()方法的实现,他把resquest,response对象分别转化为httpservletrequest和httpservletresponse并且调用下面重载的service()方法,所以不应当重载上面的service()方法:
protect void service(httpservirequest req,httpservletresponse resp)
他用http的request,response对象作为参数,并且由上面的方法调用,httpservlet实现这个方法后就成为一个http请求的分发者,他把请求代理给doget(),dopost().....等doxxxx()方法
当包容器为一个servlet收到一个请求时,包容器调用公共的service方法在把参数转换为httpservirequest,httpservletresponse 后,这个公共的方法调用保护的service根据http请求方法的类型,保护的service方法调用doxxxx()方法之一.
doget()方法是当得到一个get类型的请求时调用
dopost()方法是当得到一个post类型的请求时调用
httpservlet是从genericservlet继承而来,因此httpservlet也有init和destroy这两个生命周期函数以及service方法,只是httpservlet还有两个重要的dopost方法和doget方法,并用他们来支持http的post和get方法,就是说如果要支持http的get方法,就要覆盖doget方法,如果要支持http的post方法,就要覆盖dopost方法。而get方法和post方法的主要区别在于:
post方法的数据传递方式比较安全,不会将传递的信息显示在浏览器的网址后,而get方法则会将传递的信息显示在浏览器的网址后,例如用get方法的浏览器网址:http://127.0.0.1:8080/response.jsp?name=myself;而用post方法则为:http://127.0.0.1:8080/response.jsp;这种区别当用在密码传输时就显的更为重要。
分享到:
相关推荐
总之,这个压缩包提供的源码分析对于学习Servlet、GenericServlet和HttpServlet的工作原理极其有价值,能够帮助你深入理解Java Web开发的核心机制,提高你的编程和调试能力。通过细致的阅读和实践,你将能够更加熟练...
韩顺平.2011最新j2ee视频教程.细说servlet.第10讲.serlvet三种开发方式之(继承GenericServlet开发、继承HttpServlet开发).wmv
提供了实现servlet接口的两种方法:子类化javax.servlet.GenericServlet(这种方法提供了读取servlet配置信息的例子)和子类化javax.servlet.http.HttpServlet类.还有用service方法完成的经典的Hello World程序
在本文中,我们将深入探讨"最简单Servlet例子",以及如何使用`HttpServlet`进行入门级的学习。 Servlet是一个Java类,它遵循Servlet API规范,允许我们扩展服务器的功能。在Web应用程序中,Servlet通常用来接收和...
javax.servlet.GenericServlet javax.servlet.ServletContext javax.servlet.ServletRequest javax.servlet.http.HttpUtils javax.servlet.ServletResponse javax.servlet.ServletException javax.servlet....
它提供了一种在Servlet之间传递信息的方式,以及获取应用级的初始化参数。 7. **请求和响应对象**:HttpServletRequest和HttpServletResponse是处理HTTP请求和响应的主要对象。HttpServletRequest包含了请求的所有...
1. **继承HttpServlet**:Servlet的核心基类是javax.servlet.GenericServlet,但通常我们选择继承 javax.servlet.http.HttpServlet,因为这个类已经为我们处理了HTTP协议的细节。HttpServlet提供了doGet()和doPost()...
javax.servlet.GenericServlet.class javax.servlet.SingleThreadModel.class javax.servlet.ServletRequestWrapper.class javax.servlet.ServletResponseWrapper.class javax.servlet.ServletRequestListener.class...
2. **GenericServlet**:这是一个抽象类,实现了Servlet接口,提供了一种通用的Servlet实现方式。开发者可以继承它并覆盖`service()`方法来处理请求。 3. **HttpServlet**:GenericServlet的子类,进一步抽象了HTTP...
GenericServlet是基础接口,而HttpServlet是更常用的抽象类,多数开发者会继承HttpServlet来创建自定义Servlet。HttpServlet提供了处理HTTP请求的专用方法,如doGet、doPost等。这些方法对应HTTP的请求方法,如GET、...
核心的接口包括`Servlet`、`GenericServlet`、`HttpServlet`以及`ServletConfig`等。 2. **核心接口** - `Servlet`: 这是所有Servlet的基类,定义了Servlet的基本方法,如`init()`(初始化Servlet)、`service()`...
Servlet主要通过实现Servlet接口或GenericServlet抽象类来创建。HttpServlet是Servlet接口的一个具体实现,专门处理HTTP协议。 二、Servlet生命周期 Servlet的生命周期包括三个主要阶段:加载、初始化和销毁。当...
- `GenericServlet`: 一个抽象Servlet类,实现了Servlet和ServletConfig接口,提供了一种通用的方法来处理多种协议。 - `HttpServlet`: 继承自GenericServlet,专门用于处理HTTP请求,提供了处理GET、POST等HTTP...
#### 四、通用Servlet类:`javax.servlet.GenericServlet` - **概述**:`GenericServlet`是一个抽象类,实现了`Servlet`接口和`ServletConfig`接口。为开发者提供了一个基本框架,简化了Servlet的开发过程。 - **...
Java Servlet API提供了`Servlet`接口和`GenericServlet`、`HttpServlet`两个抽象类。`Servlet`接口定义了Servlet的基本方法,如`service()`。`GenericServlet`实现了`Servlet`接口,适用于任何协议,但通常我们更...
开发者可以通过继承GenericServlet来创建Servlet,但通常更倾向于使用HttpServlet。 3. **HttpServlet**:GenericServlet的子类,专门为HTTP协议定制。HttpServlet提供了处理HTTP请求的方法,如`doGet()`、`doPost...
通常,我们不会直接实现Servlet接口,而是继承`GenericServlet`或`HttpServlet`抽象类。`GenericServlet`提供了通用的Servlet功能,而`HttpServlet`则更专注于HTTP协议,它已经实现了`service()`方法,可以根据HTTP...
Servlet的实现通常基于两个基础类:GenericServlet和HttpServlet。GenericServlet实现了Servlet接口,但更适合非HTTP协议的请求。HttpServlet是GenericServlet的子类,专门处理HTTP请求,提供了更具体的方法,如...
而ServletContext接口则提供了全局共享数据的机制,可以看作是整个Web应用的上下文环境,不同Servlet之间可以通过它进行通信。 三、GenericServlet与HttpServlet GenericServlet是Servlet接口的一个抽象实现,提供...