最近在使用原生态的方法来写javaWeb项目,使用原生态方法的好处就是你能了解到很多底层的原理,不局限于只会使用。使用原生态的方法来编写程序还有一大好处就是你能清楚的了解到自己的薄弱点在哪里,哪方面的知识自己了解还不够深入。而这个慢慢去发现自己问题所在的过程,就是你提升的过程。
接下来说一下我本次遇到的小问题(405错误):
检查了一遍,我写的代码都似乎没有问题,结果去对照了一下其他servlet的写法,发现了自己粗心大意的地方,
原来是我在用servlet的doGet()方法去调用doPost()方法时出错了,写成了:super.doPost(req, resp);如下:
1 @Override
2 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
3 // 把请求转给doPost方法处理
4 super.doPost(req, resp);
5 }
我本是想用当前Servlet的doGet方法去调用doPost方法,所以应该写成this.doPost(req, resp);如下:
1 @Override
2 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
3 // 把请求转给doPost方法处理
4 this.doPost(req, resp);
5 }
这样粗心大意的写法,使我在检查代码时也很难发现这个小错误。那为什么这么写会错呢?接下来我就讲一下this和super的用法:
(这里就不举例子了,有需要更深入了解的,可以去看一下java基础)
1、this
this 是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针
this 的用法在 Java 中大体可以分为3种:
①普通的直接引用
②方法形参与成员名字重名,用 this 来区分
③引用构造函数
2、super
super 可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。
super 也有3种用法:
①普通的直接引用
②子类中的成员变量或方法与父类中的成员变量或方法同名时使用
③引用构造函数
3、this和super的异同
注意:
原文:https://www.cnblogs.com/fy0206/p/10665604.html