码上欢乐
首页
榜单
标签
关于
搜索
相关内容
简体
繁体
servlet、genericservlet、httpservlet之间的区别
本文转载自
查看原文
2013-08-27 16:53
2985
web开发
转自:
http://blog.csdn.net/rat9912345/article/details/5161789
当编写一个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
;这种区别当用在密码传输时就显的更为重要。
×
免责声明!
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。
猜您在找
GenericServlet和HttpServlet有什么区别?
Servlet——使用HttpServlet的Form表单
Servlet简介与Servlet和HttpServlet运行的流程
servlet、filter、listener、interceptor之间的区别和联系
新建一个servlet类,继承HttpServlet,但是无法导入HttpServlet包
关于servlet类,继承HttpServlet,但是无法导入HttpServlet包的原因和解决方法
The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
java.servlet.http.httpservlet was not found on the Java Build Path
The superclass "jakarta.servlet.http.HttpServlet" was not found on the Java Build Path
jsp和servlet之间传数据
粤ICP备18138465号
© 2018-2026 CODEPRJ.COM