- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有点担心 java 层次模型的一些事实。
如 java 教程中所述:
an abstract class may not implement methods ( but they can) and if you extend from an abstract class you must implement all methods of superclass otherwise the new class must be abstract as well
但是现在,我正在学习 servlet 类,发现即使我没有实现 HttpServlet 中声明的所有方法,我的 servlet 也会运行,这是怎么回事?我在源代码中看到它们是 protected 方法(dopost、doget 等),甚至它说编译代码)但即使它们受到保护,我们如何扩展方法来创建新的 servlet,是因为公共(public)抽象 HTTPservlet 签名吗? .
我也觉得这个很不正常,什么意思?
private static final
String METHOD_DELETE = "DELETE";
private static final
String METHOD_HEAD = "HEAD";
private static final
String METHOD_GET = "GET";
当您查看实现 servlet、servletconfig、serializable 的公共(public)抽象类 GenericServlet 时,所有其他理论都没有问题。其想法是将来有一个类不一定需要像 httpservlet 那样实现所有接口(interface)方法。
非常感谢您,我也希望能获得更清晰或更深入的 java 类建模资源。
When an abstract class is subclassed , 子类通常为其父类中的所有抽象方法 提供实现。但是,如果不是,则子类也必须声明为抽象的。
是的,我误解并误读了 httservlet,该规则仅适用于没有主体的抽象方法,只有签名,但 httpsevlet 方法不是抽象的,它们有实现,但已编译 =) 非常感谢,我明白为什么现在我们不需要实现 httpservlet 使用的那些方法和接口(interface)。
最佳答案
an abstract class may not implement methods ( but they can) and if you extend from an >abstract class you must implement all methods of superclass otherwise the new class must be >abstract as well
我想你误会了。
抽象类确实实现了方法,只是在将抽象类扩展为具体类之前,您无法使用这些方法。通常这样做是因为抽象类中的方法将在各种扩展类中重用。这样做的一些原因是删除重复和隐藏样板代码。
在 HttpServlet 中,您可以获得所描述方法的默认实现。当您想要扩展 HttpServlet 的行为以满足您的特定需求时,您可以覆盖您选择的那些。
关于java - HttpServlet层次解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21668148/
我被告知这不是一个好的做法 @Autowired HttpServlet httpServlet; 在 Spring Boot 中,因为它只会为所有点击创建一个对象。我对 Spring Boot 和
我想知道反序列化后是否调用了 HttpServlet 的 init 方法。 我不知道是否有任何容器曾经序列化一个 servlet,但它实现了 Serializable 接口(interface),所以
我在 HttpServlet 文档中读到 HttpServlet 的子类必须重写至少一个方法,通常是以下方法之一: doGet, if the servlet supports HTTP GET re
我有几个在服务器端执行操作的 servlet。在一些上,我只是编码一些不必要的数据并将其发送回来,这似乎毫无意义。你必须回应吗?当您只说 return 时会发生什么?我以前这样做过,似乎没有什么问题,
我尝试创建一个文件,写入文件,然后将文件转换为输入流,并将其字节传输到 HTTP 响应的输出流。但我收到消息“/tmp/mozilla_xxxx/33JJ1OHw.md.part 无法保存,因为无法读
我正在开发一个具有两个 Web 界面的 Java 应用程序:一个处理某些 Web 服务逻辑的 servlet (/WSProxy) 和一个使用 Spring 框架的 Web 管理界面(/Admin 或
我在 Java EE 应用程序中使用 Apache Tomcat v8.0 服务器。基本上,我创建了一个 ResponseUpload servlet。我需要通过 POST 请求从 Web 应用程序获
这个问题在这里已经有了答案: How many instances are created for a HTTP servlet (2 个答案) 关闭 6 年前。 根据servlet的生命周期,se
我有一个 Web 应用程序,其中多个 servlet 使用一定数量的相同逻辑进行预初始化(设置日志记录、 session 跟踪等)。我所做的是在 javax.servlet.http.HttpServ
我有一个应用程序,用户正在访问 servlet 文件,该文件将有条件地读取 .pdf 文件并发送 .pdf 文件作为对用户请求的响应。 servlet 代码不会设置响应 header 的内容长度。 在
这个问题在这里已经有了答案: Http Servlet request lose params from POST body after read it once (13 个答案) 关闭 7 年前。
基本上,一个 servlet 实例存在多长时间?我有点猜测它是 session 范围。但是,我想它可能有某种超时或垃圾收集来删除旧实例。 最佳答案 当应用程序启动时(部署在 servlet 容器上)或
我需要一些帮助,我的意思是对这个继承设计的意见。 我创建了Controller.class,它扩展了HttpServlet和AjaxController.class 扩展了 Controller.cl
我想在扩展 HttpServlet 的类上注入(inject) DAO 依赖项,这可能吗?我不想从应用程序上下文中手动获取依赖项,但如果可能的话,希望在我的 Servlet 实例上进行真正的依赖项注入
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve th
假设,我有一个 TestServlet 类,它声明为全局字符串变量。如果同时调用 TestServlet 类,则此“消息”字符串变量是否可以安全地打印而无需从并发线程交叉? public class
我有一个扩展 HttpServlet 类的类。我知道 Java 是多线程的,不同的线程(阅读:HTTP 请求)可以使用同一个实例。我想在第一个请求时实例化一个对象并使用它直到 session 结束。
出于记录目的,我重写了 HttpServlet 的服务方法,如下所示: @Override protected void service(HttpServletRequest req, HttpSer
我对在 Google App Engine 上遇到的这个问题感到困惑。 我创建了几个servlet,因此我创建了一个基类来完成一些基本的重复工作。像这样: public class MyBase ex
我想用 http://www.easymock.org/ 测试我的 servlet 如何编写单元测试代码? 我根据您的回复更新我的代码。 我刚刚使用 Google 并制作了这段代码。 这是我的 Ser
我是一名优秀的程序员,十分优秀!