- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
更新。我使用了其他的方法,即拥有一个私有(private)静态 int 总计。我在 sessionCreated() 上增加总数,并在 sessionDestroyed() 上减少 sessionCounter 。目标是让 Servlet 打印出 Web 应用程序上有多少活跃用户。该代码无法正常工作,我得到的总计值为 0。
我遇到的另一个问题是次要且不那么重要的是我的请求变量也不起作用。它负责在每次调用 servlet 时递增,并打印出您访问该页面的次数。
这是我的 HttpSessionListenerTest 类:
public class HttpSessionListenerTest implements HttpSessionListener {
private static int total = 0;
public HttpSessionListenerTest() {
// TODO Auto-generated constructor stub
}
public static int getTotal(){
return total;
}
/**
* @see HttpSessionListener#sessionCreated(HttpSessionEvent)
*/
public void sessionCreated(HttpSessionEvent e) {
// TODO Auto-generated method stub
total++;
}
/**
* @see HttpSessionListener#sessionDestroyed(HttpSessionEvent)
*/
public void sessionDestroyed(HttpSessionEvent e) {
// TODO Auto-generated method stub
total--;
}
这是我的主要 servlet:
public class ServletProjekt extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int requests = 0;
requests++;
request.getServletContext().log("Added a new request-log//abdi.");
String firstName = request.getParameter("förnamn");
String lastName = request.getParameter("efternamn");
String address = request.getParameter("address");
String email = request.getParameter("email");
String howoften = request.getParameter("howoften");
String newsabout = request.getParameter("news");
String[] age = request.getParameterValues("age");
HttpSession session = request.getSession();
session.setAttribute("förnamn", firstName);
session.setAttribute("efternamn", lastName);
session.setAttribute("address", address);
session.setAttribute("email", email);
session.setAttribute("howoften", howoften);
session.setAttribute("news", newsabout);
session.setAttribute("age", age);
response.setContentType("text/html");
PrintWriter printWriter = response.getWriter();
printWriter.write("<html>");
printWriter.write("<h1> THANK YOU FOR YOUR INFORMATION</h1>");
printWriter.write("<body>");
printWriter.write("<p>Your name:</p>" + firstName);
printWriter.write("<br>");
printWriter.write("<p>Your last name:</p>" +lastName + "<br>");
printWriter.write("<p>Your address:</p>" +address + "<br>");
printWriter.write("<p>Your choice of often:</p>" +howoften + "<br>");
printWriter.write("<p>Your choice of news:</p>" +newsabout + "<br>");
printWriter.write("<p>Your email:</p>" +email + "<br>");
**printWriter.write("<p>You have visited this page this many times:</p>" +requests + "<br>");**
printWriter.write("");
for (String ages : age) {
printWriter.write("<p>Hours:</p>" +ages + "<br>");
}
**printWriter.write("Active users:" + HttpSessionListenerTest.getTotal() + "<br>");**
printWriter.write("<a href =\"GetAllCookies\">View All Cookies</a>");
printWriter.write("</body>");
printWriter.write("</html>");
printWriter.close();
}
}
最佳答案
请查看本教程here .
在教程中,他试图计算用户的数量,为此他使用了一个静态变量,以便它可以在所有用户之间共享,如下所示:
private static int totalActiveSessions;
希望有帮助。
关于java - HttpSessionListener 测试,出现奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27959982/
我面临着similar problem并了解到我的监听器类将在读取 web.xml 时实例化。我在监听器类中有几个函数供主 servlet 的 doPost 使用(它与数据库(mysql)交互以读取/
关于在我的 tomcat web 小程序中使用这些 session 监听器,我有一个非常基本的问题。我对它们的运作方式缺乏基本的了解。他们一直在运作吗?他们能否以某种方式检测用户何时注销,而无需明确单
我最近开始使用 JBossTM 以便在多个数据库连接上使用 JTA,这非常成功。如果我尝试从任何 Controller 执行事务,它可以正常工作。 但是,我最近开始尝试从 HttpSessionLis
我已经实现了 HttpSessionListiner,但它不起作用。用调试器检查它——进入 servlet 后创建新 session ,登录后 JSESSION_ID 发生变化,但 session.g
问题:此注入(inject)的依赖项将始终从 SimpleController 返回 0 为什么在尝试对 HttpSessionListener 实现进行依赖注入(inject)时此 bean 的上下
我正在尝试在 Java servlet 中跟踪有效的用户 ID,我可以通过这种方式实现 HttpSessionListener 吗? public class my_Servlet extends H
更新。我使用了其他的方法,即拥有一个私有(private)静态 int 总计。我在 sessionCreated() 上增加总数,并在 sessionDestroyed() 上减少 sessionCo
Tomcat 没有用于访问 Activity session 集合的 API,因此我想为我的 WebApp 设计一个 HttpSessionListener,但我对实现有一些顾虑。 如果我的监听器有一
我正在编写一个允许人们协作的 Web 应用程序。我希望我的一些服务仅限于协作(涉及几个人)而不是任何单独的 http session 。我创建了一个自定义的 Scope 来存储 bean。为了管理 b
我想在 session 即将到期时提醒用户。我不想使用 Ajax 或 JavaScript。那么如何在 HttpSessionListener 实现类的 sessionDestroyed() 方法中获
我有一个非常简单的 Servlet 和一个非常简单的 HttpSessionListener: @WebServlet("/HelloWorld") public class HelloWorld e
我一直在 tomcat 中尝试一些操作,突然我的所有 JSP 和 Servlet 都出现了状态代码 404。我收到了这个错误: 11-Jun-2018 17:40:57.528 SEVERE [mai
我在我的项目中创建了一个HttpSessionListener。在此监听器中,我在 session 中设置了如下内容: public void sessionCreated(HttpSessionE
问题:此注入(inject)的依赖项将始终从 SimpleController 返回 0 为什么在尝试将依赖项注入(inject)到 HttpSessionListener 实现中时,该 Bean 的
我已经在我的 web.xml 中注册了一个 HttpSessionListener 并且它工作正常,但是我需要从其他区域(例如 Servlet)访问对象实例,并且不希望使用旧的 public stat
我正在使用 HttpSessionListener 的 sessionDestroyed() 方法来获取当前 session 对象,但这是不可能的,因为在执行 sessionDestroyed() 之
我想从 HttpSessionListener.sessionCreated() 中获取用户名。当我说用户名时,我特指 HttpServletRequest.getRemoteUser() 返回的名称
我正在尝试使用带有代理 servlet 的嵌入式 jetty 实现 HttpSessionListener 接口(interface),我已经注册了 SessionListener,但它根本没有被调用
我有这样一种情况,我需要在创建 session 时创建一个 cookie,而当 session 被删除时,我必须删除该 cookie。当用户手动结束 session 时,我可以在注销 servlet
我正在尝试部署我没有编写的 war ,但我在日志中收到此错误: java.lang.NoClassDefFoundError: HttpSessionListener 我知道 HttpSessionL
我是一名优秀的程序员,十分优秀!