我被告知要使用一些由servlet和taglib组成的第三方软件。 servlet生成搜索结果,taglib根据servlet呈现结果和其他交互元素。
问题是第三方解决方案是使用http会话实现的,意味着servlet执行搜索,将结果存储在会话中,将重定向发送到浏览器和视图页面(在完整的单独http请求中)显示会话的结果。
我想摆脱会话,因为这不适用于多个标签,还有其他一些缺点。但servlet和taglib按原样交付,如果我需要不同的东西,我必须自己实现它。
任何想法如何在一个请求中实现这一点,以便不需要会话?在最好的情况下,不需要更改代码,只需要一个包装器。它可以接受服务器创建会话,但我不希望浏览器依赖它。
我的一个想法是使用请求调度程序在一个http请求中执行servlet调用和视图,但软件仍使用会话。然后,我可以在每次请求后丢弃会话。更好的想法受到高度赞赏。
我当然知道,最好是在没有满足我的要求的情况下实施它。但照常营业,我们尽量避免花太多时间..
提前致谢,祝你有个美好的夜晚 米歇尔
答案 0 :(得分:0)
我知道这不是最好的解决方案,但是创建一个 javax.servlet.Filter ,它将自定义的 HttpServletRequest 和 HttpServletResponse 包装起来。 在自定义包装器中覆盖 request.getSession()和 response.sendRedirect()方法。
通过在 web.xml 文件中定义属性< filter-mapping> ,将您的过滤器应用于搜索servlet和JSP。