request.getAttribute返回JSP中的null



我基本上是在servlet中设置属性,并试图将其放入JSP中,但它一直返回null。知道为什么?

servlet:

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    try (PrintWriter out = response.getWriter()) {
        combobox=request.getParameter("selectedid");
        Test t=new Test();
        String content=t.giveSelected(combobox);
        request.setAttribute("contentData", content);
        response.sendRedirect("/WebTest-iFrame/iFrame.jsp");
    }

JSP:

    <%
     String content=(String)request.getAttribute("contentData");
    %>
    <script>
        function iFramefunc(){
            var s = document.getElementById('iframe');
            s.contentDocument.documentElement.innerHTML="<%=content%>";
            s.contentDocument.close();
        }
    </script>
    <iframe id="iframe" onload="iFramefunc()"></iframe>

而不是使用 response.sendredirect("/webtest-iframe/iframe.jsp"(; ,尝试使用 requestdispatcher ,因为 sendredirect 将创建一个没有属性的新请求对象,因此您的结果是无效的。

request.getRequestDispatcher("/WebTest-iFrame/iFrame.jsp").forward(request, response);          

这将使相同的请求和响应对象转发到请求的URL。

最新更新