java - 未调用 HttpSessionBindingListner 方法

标签 java servlets

我正在尝试 HttpSessionBindingListener 示例,但事件未触发。我在这里做错了什么。

这是我尝试设置的 Attribute 类的代码和 servlet 类的代码。

servlet 正在工作,但没有显示我期望的输出。

    public class SimpleAttribute implements HttpSessionBindingListener {

        PrintWriter writer;

        public  SimpleAttribute(PrintWriter writer) {
            this.writer = writer;
        }

        public void valueBound(HttpSessionBindingEvent event) {
            writer.write("Value bound called");
            writer.write("<br/>");
        }

        public void valueUnbound(HttpSessionBindingEvent event) {
            writer.write("value Unbound called");
            writer.write("<br/>");


}
}




public class SessionBindingServlet extends HttpServlet {

    private static final String SIMPLEATTR = "simpleattribute";

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws IOException {

        ServletContext servletContext = getServletContext();            
        PrintWriter out = response.getWriter();
        response.setContentType("text/html");
        try {
            servletContext.removeAttribute(SIMPLEATTR);
            out.write("removed previous attribute successfully");
            out.write("<br/>");
        } catch (Exception e) {

        }

        servletContext.setAttribute(SIMPLEATTR, new SimpleAttribute(out));
        out.write("Added simple attribute successfully");
        out.write("<br/>");
    }
}

最佳答案

您实际上并未将对象绑定(bind)到 HttpSession,而是将其绑定(bind)到 ServletContext

您应该使用

检索HttpSession
HttpSession session = request.getSession(true);

并添加属性

session.setAttribute(SIMPLEATTR, new SimpleAttribute(out));

这将触发一个HttpSessionBindingEvent,它将通知您的HttpSessionBindingListener实现类对象。

关于java - 未调用 HttpSessionBindingListner 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21274030/

相关文章:

java - 从生成的 pom 和源构建 Artifact

java - 需要自定义 arraylist 值,如下所示

java - 将新对象添加到列表中; (for循环不能正常工作)

java - 需要更改具有不同形状的 JButton 的颜色

java - Eclipse 无法识别动态 Web 项目中的 Jsoup JAR 文件

java - 如果使用 "localhost"URL,则无法从 HttpServletRequest 获取 IP

java - Jersey servlet 类是根据每个请求构建的

java - 如何从 Java 服务器端发送图像,并在 JQuery 客户端处理它

java - 从 session 属性获取数据返回空指针

java - 如何使用servlets和jsp做一个SPA?