您的位置:首页 > 理论基础 > 计算机网络

servlet、genericservlet、httpservlet之间的区别

2010-08-26 14:22 507 查看


当编写一个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

;这种区别当用在密码传输时就显的更为重要。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: