java - 存储在模型中的 HttpServletRequest 被替换

标签 java spring-mvc servlets el

我正在开发遗留代码(Spring 2.5.x,Java 1.5),其中 Controller 传递 Http Servlet 请求来查看,如下所示:


    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {

        Map attributes = new HashMap();
        attributes.put("httpRequest", request);
        return new ModelAndView("/path/to/page.jsp", attributes);

    }

但是,httpRequest 属性确实存在于 JSP 页面上下文中,但它包含当前请求(JSP 页面)而不是原始请求( Controller )。传递的请求用于从 URL 中提取一些信息。看来我可以通过使用一堆“javax.servlet.forward.*”属性来解决这个问题。然而,这让我感到困惑,因为这是非常简单的事情,无论如何我很乐意让它工作,或者至少确切地知道为什么它现在不起作用。有人有什么想法吗?

最佳答案

首先,将请求存储为请求的属性是一个坏主意。如果您需要当前请求的特定数据,可以直接使用 ${requestContext} 检索它,如果需要访问URL,使用${requestContext.requestURL} 。如果您需要访问此 URL 的部分内容以在客户端显示它,最好先使用 StringBuffer url = request.getRequestURL(); 获取它,然后在服务器端( Controller )解析该 url。然后将所需的数据设置为属性。

关于java - 存储在模型中的 HttpServletRequest 被替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23062499/

相关文章:

java - 在 Java 中开发功能强大的浏览器托管 UI 的选项有哪些?

java - 正则表达式用于提取标签之间的文本而不是标签

java - 设置流时出现eofexception

javascript - 尝试在 servlet 中获取数组时获取 null

java - 原始资源在 Tomcat webapp 中的位置

Java GUI通过组合框改变颜色,使用集合和对象数组

java - RequestParam 和 session Spring MVC

javascript - AJAX 常规错误处理

java - 面向服务的架构spring-mvc

java - ATG 调度程序/队列管理器