servlet、genericservlet、httpservlet之间的区别

 

 

当编写一个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 被成功初始化后才能调用它 
  
其实servletapplet 差不多, 当一个servlet 被实例化后, 包容器自动去调用固定的方法首先是init(), 然后是service()..... 

  genericservlet 类提供了servlet 接口的基本实现, 所以他的子类都必须实现service() 方法  
  httpservlet
类扩展了genericservlet 并且提供了servlet 接口中具体于http 的实现,它更象一个其他所有的servlet 都要扩展的类 , 其中他定义了两种形式的service 方法

   service(servirequest req,servletresponse resp) 
  
此方法是genericservletservice() 方法的实现, 他把resquest,response 对象分别转化为 httpservletrequesthttpservletresponse 并且调用下面重载的service() 方法, 所以不应当重载上面的 service() 方法

   protect void service(httpservirequest req,httpservletresponse resp) 
  
他用httprequest,response 对象作为参数, 并且由上面的方法调用,httpservlet 实现这个方法后就成为一个http 请求的分发者, 他把请求代理给doget(),dopost().....doxxxx() 方法  
  
当包容器为一个servlet 收到一个请求时, 包容器调用公共的service 方法在把参数转换为 httpservirequest,httpservletresponse , 这个公共的方法调用保护的service 根据http 请求方法的类型, 保护的service 方法调用doxxxx() 方法之一.   
doget()
方法是当得到一个get 类型的请求时调用 
dopost()
方法是当得到一个post 类型的请求时调用 

httpservlet
是从genericservlet 继承而来,因此httpservlet 也有initdestroy 这两个生命周期函数以及service 方法,只是 httpservlet 还有两个重要的dopost 方法和doget 方法,并用他们来支持httppostget 方法,就是说如果要支持http get 方法,就要覆盖doget 方法,如果要支持httppost 方法,就要覆盖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 ;这种区别当用在密码传输时就显的更为重要。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值