编写一个servlet,实现统计网站被访问次数的功能。 步骤: 1.新建一个类ShowTimesServlet继承HttpServlet,重写doGet和doPost方法。 2.在doPost方法中调用doGet方法,在doGet方法中实现统计网站被访问次数的功能,用户每请求 一次servlet,使访问次数times加1。 3.获取ServletContext,通过它的功能记住上一次访问后的次数。
时间: 2023-12-14 16:40:16 浏览: 109
以下是实现统计网站被访问次数的ShowTimesServlet代码:
```java
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
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对象
javax.servlet.ServletContext application = getServletContext();
// 获取上一次访问后的次数
Integer count = (Integer) application.getAttribute("count");
if (count == null) {
count = 0;
}
// 访问次数加1
count++;
// 将访问次数保存到ServletContext对象中
application.setAttribute("count", count);
// 将访问次数显示在页面上
response.setContentType("text/html;charset=UTF-8");
response.getWriter().println("<html><head><title>Show Times</title></head><body>");
response.getWriter().println("<h1>The website has been visited " + count + " times.</h1>");
response.getWriter().println("</body></html>");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
```
在上述代码中,我们首先定义了一个变量times,用于记录访问次数。然后在doGet方法中,我们通过getServletContext方法获取了ServletContext对象,从而可以获取上一次访问后的次数,并将访问次数加1。最后将访问次数显示在页面上。
在web.xml文件中,需要添加以下代码:
```xml
<servlet>
<servlet-name>ShowTimesServlet</servlet-name>
<servlet-class>ShowTimesServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ShowTimesServlet</servlet-name>
<url-pattern>/showtimes</url-pattern>
</servlet-mapping>
```
这样,当用户访问/showtimes路径时,就会调用ShowTimesServlet的doGet方法,从而实现统计网站被访问次数的功能。
阅读全文