1

サーブレットにマップされたブラウザ リンクで開いており、渡された値が表示されることを期待しています。しかし、私が見るのは「ヌル」です

サーブレット:

public class TestServlet extends HttpServlet {    
    public TestServlet() {
        super();       
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {           
            request.setAttribute("var", "a"); 
            request.getRequestDispatcher("index.jsp").forward(request, response);    
    }


}

jsp:

<% 
String  s1  = (String) session.getAttribute("var");        
%>
<%= s1 %>
4

3 に答える 3

1

問題は、リクエストスコープで属性を設定しているが、セッションスコープから読み取っていることです。この行を置き換えてみてください:

request.setAttribute("var", "a");

これによって:

request.getSession().setAttribute("var", "a");

このようにして、両方の場所でセッション スコープを参照します。request.getAttribute()または、 JSP で使用することにより、両方の場所でリクエスト スコープを使用できます。

于 2013-09-24T21:47:43.507 に答える