0

我被告知要使用一些由 servlet 和 taglib 组成的第 3 方软件。servlet 生成搜索结果,taglib 根据 servlet 呈现结果和其他交互元素。

问题是第 3 方解决方案是通过 http 会话实现的,这意味着 servlet 进行搜索,将结果存储在会话中,将重定向发送到浏览器并在视图页面上(在一个完整的单独的 http 请求中)从会话显示。

我想摆脱会话,因为这不适用于多个选项卡并且还有其他几个缺点。但是 servlet 和 taglib 是按原样交付的,如果我需要不同的东西,我必须自己从头开始实现它。

知道如何在一个请求中实现这一点,从而不需要会话吗?在最好的情况下,无需更改代码,而只需一个包装器。它可以接受服务器创建会话,但我不希望浏览器依赖它。

我的一个想法是使用 request-dispatcher 在一个 http 请求中执行 servlet 调用和视图,但该软件仍然使用会话。然后我可以在每次请求后丢弃会话。更好的想法受到高度赞赏。

我当然知道,最好的办法是在不满足我要求的情况下正确实施它。但是一切照旧,我们尽量避免花费太多时间。

提前谢谢,晚上愉快,米歇尔

4

1 回答 1

0

我知道这不是最好的解决方案,但创建一个javax.servlet.Filter将HttpServletRequestHttpServletResponse与自定义的包装在一起。覆盖自定义包装器中的request.getSession()response.sendRedirect()方法。

并通过在web.xml文件中定义属性<filter-mapping>将过滤器应用于搜索 servlet 和 JSP 。

于 2012-11-30T20:19:32.887 回答