GenericServlet继承的Servlet及从HttpServlet继承的Servlet 分别输出输出执行时日期和时间。
时间: 2024-09-22 16:09:28 浏览: 74
Servlet&GenericServlet&HttpServlet源码分析.zip_GenericServle_httpser
GenericServlet 和 HttpServlet 都是 Java Servlet API 中的基础类,用于创建自定义的 servlet。它们的主要区别在于功能的通用性和特定用途:
1. **GenericServlet**:这是一个非常基础的 servlet 类,它实现了 `java.io.Serializable` 和 `javax.servlet.Servlet` 接口,提供了一个基本的 servlet 程序结构。如果你需要创建一个完全自定义的、不依赖于 HTTP 协议的 servlet,那么可以继承 GenericServlet。要在 GenericServlet 中输出当前执行的时间,你可以重写 `service()` 方法,然后在适当的地方获取并显示时间。
```java
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CustomGenericServlet extends GenericServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Date currentTime = new Date();
String formattedTime = currentTime.toString(); // 格式化日期和时间
// 输出到响应或日志,例如:
response.getWriter().println("Current Time: " + formattedTime);
}
}
```
2. **HttpServlet**:这个类是更具体的,它继承了 GenericServlet 并实现了 `javax.servlet.http.HttpServlet`,它是处理HTTP请求的标准方式。如果你想创建一个基于HTTP的 servlet,通常会首选继承 HttpServlet。同样,在 HttpServlet 中输出时间的方式与上面类似:
```java
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Date currentTime = new Date();
String formattedTime = currentTime.toString();
// 输出到响应
response.getWriter().println("Current Time: " + formattedTime);
}
```
这两个例子都假设你在 `doGet()` 或 `service()` 方法中输出时间,因为 HttpServlet 支持 `GET` 请求,而 GenericServlet 没有特定的请求类型限制。
阅读全文