java一个类 继承HttpServlet 和实现Servlet区别 有点晕了 懂的详细的讲一下谢谢
实现servlet必须实现5个方法包括3生命周期,而继承HttpServlet需要实现doGet和doPost方法那不用实现3生命周期了吗?...
实现servlet 必须实现5个方法包括3生命周期,而继承HttpServlet需要实现doGet和doPost方法 那不用实现3生命周期了吗?
展开
展开全部
servlet 是一个接口,如果实现这个接口,那么就必须实现接口里面定义的所有方法
而HttpServlet实现了servlet接口,并把servlet接口中的方法实现了
继承Httpservelt实际上也就实现了servlet接口,但是我们没必要再去实现servlet中定义的生命周期方法,因为在httpservlet中已经有了默认实现,并且这些默认实现也挺规范和实用
doget和dopost是执行用户请求的终点,也就是是,安装servlet的常规,get请求会调用doget方法,post请求会执行dopost方法。所以我们可以再这2个方法中定义我们自己的业务逻辑
而HttpServlet实现了servlet接口,并把servlet接口中的方法实现了
继承Httpservelt实际上也就实现了servlet接口,但是我们没必要再去实现servlet中定义的生命周期方法,因为在httpservlet中已经有了默认实现,并且这些默认实现也挺规范和实用
doget和dopost是执行用户请求的终点,也就是是,安装servlet的常规,get请求会调用doget方法,post请求会执行dopost方法。所以我们可以再这2个方法中定义我们自己的业务逻辑
追问
那 get请求和post 请求会不会同时存在?
为什么我见过dopost 和doget 嵌套调用的时候? 这是什么情况?
追答
可以同时存在,但是get请求只会去找doget方法
post请求只会去找dopost方法
而在实际编码过程中,我们不想吧同一业务逻辑代码写在2个方法中
解决办法就是把业务逻辑代码写个某个方法中,另外一个方法跳转到逻辑方法中
比如我们:
doget(*****){
******************;//代码1
}
dopost(*****){
doget(**); //跳转到doget方法中去
}
这样不管你是get请求还是post请求,都会去执行代码1哪里的业务逻辑代码
展开全部
Servlet是一个接口,本身定义的是一种网络服务,HttpServlet是已经实现了Servlet接口,也就是此类是针对Http协议的,虽然Servlet接口下只有HttpServlet类,可能会觉得何必定义一个Servlet接口,直接一个HttpServlet就可以了,我想这可能是sun为后续技术发展做的一个接口,目前仅Http协议,今后可能会发展出其他协议,因此,再有新的协议出现的时候,直接实现Servlet接口即可。
实现一个接口(servlet)必须覆写接口所有方法,继承一个类可以有选择的覆写需要的方法,
HttpServlet在实现Servlet接口的时候,已经实现了servlet中所有方法,因此继承自HttpSrvlet的类,不需要再去覆写相应的生命周期等方法
实现一个接口(servlet)必须覆写接口所有方法,继承一个类可以有选择的覆写需要的方法,
HttpServlet在实现Servlet接口的时候,已经实现了servlet中所有方法,因此继承自HttpSrvlet的类,不需要再去覆写相应的生命周期等方法
追问
那代码到底是写在doget 里面还是写在 dopost 里面 这个怎么区分?
追答
要看用户的请求路径?html中的form不是有个method属性么,有get跟post两种,get是一种路径拼凑形式的,post不会显示路径,一般情况下doget跟dopost随意写一个就可以,若果写了doget则,dopost方法调用doget方法,this.doGet(),若果写了dopost方法,则在doget方法中调用dopost,this.doPost()一般都这样写吧,也就是两个方法处理形式是等同的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
HttpServlet遵循HTTP协议,因此继承HttpServlet的类也就遵循HTTP协议,一般用在B/S
架构中。。。
架构中。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询