编写一个servlet,统计此servlet被访问的次数,并显示在页面。 使用配置文件web.xml来配置servlet,将生成的注解删除。
时间: 2024-09-13 12:02:43 浏览: 72
在Servlet编程中,要统计一个servlet被访问的次数并将其结果显示在页面上,你可以遵循以下步骤:
1. 创建一个Servlet类,通常我们将其命名为CounterServlet。这个类会维护一个计数器变量来记录访问次数。
```java
import javax.servlet.*;
import java.io.IOException;
import java.util.HashMap;
public class CounterServlet extends GenericServlet {
private static final Map<String, Integer> hitCount = new HashMap<>();
@Override
public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException {
String sessionId = generateSessionId(req); // 生成唯一session ID
synchronized (hitCount) {
int count = hitCount.getOrDefault(sessionId, 0);
count++;
hitCount.put(sessionId, count);
}
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.println("<h1>Welcome! You've visited this servlet " + count + " times.</h1>");
}
private String generateSessionId(ServletRequest req) {
return req.getSession().getId(); // 使用session获取唯一ID
}
}
```
2. 在web.xml中配置servlet,虽然Java EE已经支持注解,但在早期版本中还是需要配置文件。这里是一个基本的配置示例:
```xml
<web-app>
<servlet>
<servlet-name>CounterServlet</servlet-name>
<servlet-class>com.example.CounterServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CounterServlet</servlet-name>
<url-pattern>/counter</url-pattern>
</servlet-mapping>
</web-app>
```
在这个例子中,当你访问`http://yourserver/counter`时,CounterServlet会被触发,并更新计数器并将结果返回到页面。
阅读全文