编写一个servlet,实现统计网站被访问次数的功能。 步骤: 1.新建一个类ShowTimesServlet继承HttpServlet,重写doGet和doPost方法。 2.在doPost方法中调用doGet方法,在doGet方法中实现统计网站被访问次数的功能,用户每请求一次servlet,使访问次数times加1。 3.获取ServletContext,通过它的功能记住上一次访问后的次数。
时间: 2024-01-21 08:15:55 浏览: 34
以下是一个简单的实现:
```java
import java.io.IOException;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ShowTimesServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private int times = 0;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletContext context = getServletContext();
Object obj = context.getAttribute("times");
if (obj != null) {
times = (int) obj;
}
times++;
context.setAttribute("times", times);
response.getWriter().println("This site has been visited " + times + " times.");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
```
首先,我们创建了一个名为 `ShowTimesServlet` 的类,继承了 `HttpServlet`。我们重写了 `doGet` 和 `doPost` 方法。
在 `doGet` 方法中,我们首先通过 `getServletContext()` 方法获取 `ServletContext` 对象。然后,我们检查是否有名为 "times" 的属性存在。如果存在,我们将其值赋给 `times` 变量。然后,我们将 `times` 值加1,并将其设置为 `ServletContext` 对象的 "times" 属性。最后,我们使用 `response.getWriter()` 方法将访问次数发送给客户端。
在 `doPost` 方法中,我们只是简单地调用了 `doGet` 方法。
通过这个servlet,每次用户访问该网站时,都会增加访问次数并返回给客户端。如果网站被重启,访问次数将会被重置为0。