[Servlet]Servlet的继承链

通过创建Servlet的Java文件中的代码内容,可以发现创建的Servlet是继承于HttpServlet类,查看JavaEE帮助文档中的HttpServlet内容。

Method Summary
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
protected void service(HttpServletRequest req, HttpServletResponse resp)
void service(ServletRequest req, ServletResponse res)

通过帮助文档提供的内容,我们可以知道创建Servlet中的doGet和doPost方法是继承于HttpServlet提供的,但还有init和destroy方法没有找到。我们发现HttpServlet是继承于GenericServlet,查看JavaEE帮助文档中的GenericServlet内容。

Method Summary
void destroy()
void init()
abstract void service(ServletRequest req, ServletResponse res)

通过帮助文档提供的内容,我们可以知道init和destroy方法是源于GenericServlet。但是其实GenericServlet都实现了Servlet接口。

Method Summary
void destroy()
ServletConfig getServletConfig()
String getServletInfo()
void init(ServletConfig config)
void service(ServletRequest req, ServletResponse res)

所以,init和destroy方法是Servlet接口提供的方法。通过上述的查找,我们已经很清晰的知道了Servlet的继承关系,具体如下图:



转载说明:请注明作者及原文链接,谢谢!

时间: 2024-10-11 20:23:49

[Servlet]Servlet的继承链的相关文章

maven构建web项目,cannot be cast to javax.servlet.Servlet

调试Spring MVC时发现如下异常: java.lang.ClassCastException: org.springframework.web.servlet.DispatcherServlet cannot be cast to javax.servlet.Servlet 问题出在servlet-api.jar上,tomcat部署springMVC项目时是不用这个包的,而用maven构建项目时需要,如果不引用该依赖就会不识别  HttpServletRequest等的类 解决方法是在ma

Tomcat服务器启动错误之Offending class: javax/servlet/Servlet.class

引子 最近在基于Wex5项目开发中,遇到使用过程中与Tomcat功能有关的错误提示, 如题所示.最终的解决方法就是删除掉项目上与tomcat冲突的jar包. org.apache.catalina.loader.WebappClassLoader validateJarFile ??: validateJarFile(/Users/zxzpc/Downloads/X5/WeX5_V3.4mac/apache-tomcat/webapps/../../runtime/BaasServer/WEB-

sae Servlet class XXXX is not a javax.servlet.Servlet

以前都是使用myeclipse开发web工程上传sae后没有问题,但是使用javaee导出war包上传sae 无法访问?Servlet class ?XXXX is not a javax.servlet.Servlet , 后来将打包的war包使用压缩工具打开删除libs里面的javaee.jar 保存 ,上传sae即可正常访问

新学到的继承链

简单实现继承链 分三部分,代码如下: 一部分 package Day07; public class Employee extends Person { public Employee() { this ("(2) Invoke Employee's constructor"); System.out.println("(3) Perform Employee's task"); } public Employee(String s) { System.out.pr

org.apache.cxf.transport.servlet.CXFServlet cannot be cast to javax.servlet.Servlet

java.lang.ClassCastException: org.apache.cxf.transport.servlet.CXFServlet cannot be cast to javax.servlet.Servlet maven下web项目依赖servlet-api.jar 1 <dependency> 2 <groupId>javax.servlet</groupId> 3 <artifactId>servlet-api</artifact

javax.servlet.Servlet源码分析

要编写一个Servlet,必然要实现javax.servlet.Servlet接口 源码如下package javax.servlet;import java.io.IOException; public interface Servlet { /* 此方法负责初始化Servlet对象,一旦Servlet容器创建好Servlet对象,那么一切初始化操作由这个方法完成. init()方法执行成功后,这个Servlet才能放入服务中,被客户端请求到. 发生妨碍servlet正常操作时,抛出Servl

Servlet过滤器——仿盗链过滤器

1.概述 介绍如何使用过滤器技术,防止通过其他URL地址直接访问本站资源.运行本实例,当URL地址不是本站地址时,在网页中将显示错误提示信息. 2.技术要点 主要应用request对象的getHeader()方法获取信息头来源地址,若是来自其它网站就弹出错误图片.getHeader()方法的语法结构如下: public String getHeader(String headerName) 参数说明: headerName:指定字符串类型的响应头名称. 3.具体实现 (1)创建Filter过滤器

java.lang.ClassCastException: cn.itcase.serviceImpl.servicestudentImpl cannot be cast to javax.servlet.Servlet

可能原因(1)因为这个只不过是一个是实现类而已,它本身是不能访问的,只有通过servlet来调用这些方法,并用doGet()或者doPost()方法来实现才是可以的 可能原因2:servicestudentImpl本来需要 extends HttpServlet但是没有继承

[Servlet]Servlet的工作流程及注意事项

Servlet工作流程 利用Servlet完成的Web应用的实际工作流程是通过Tomcat服务器发布服务,客户端与服务器端之间的交互遵循Http协议完成的.具体工作流程如下: 客户端浏览器向服务器端发送请求. 服务器端由Tomcat服务器提供的Servlet容器解析接收到的请求. 通过Web应用程序的配置文件web.xml,解析到对应执行的Servlet. Servlet完成客户端发送的请求逻辑,并完成向客户端发送的响应内容. 由Tomcat服务器提供的Servlet容器向客户端浏览器进行响应.