两个servlet之间的数据传输

时间:2014-05-06 14:42:51

标签: java jsp servlets

我有两个servlet。 第一个(doGet)显示表单,第二个(doPost)处理表单

这是我的第一个servlet

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    {
        Nodes nodes = nodes_dao.start(request);
        int id = nodes.getId_node();

        request.setAttribute("nodes", nodes);
        request.setAttribute("id", id);
        request.getRequestDispatcher(VUE).forward(request, response);
    }

这是我的第二个servlet

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    {
        String question = null;
        String result = null;   

        question = request.getParameter("question");
        result = request.getParameter("result");
        Node_dao dao = new Node_dao();

        try
        {
            dao.insert_result(result);
            int left_id = dao.select_left_id(result);
            dao.insert_question(question, left_id);


        }

例如,我如何在第二个中检索第一个servlet的id?

由于

2 个答案:

答案 0 :(得分:0)

您已在第一个servlet中调用request.setAttribute("id", id);,然后转发到第二个servlet。所以你所缺少的就是在第二个servlet中调用int id = (int)request.getAttribute("id");

但是,还有第二个问题。你不能通过转发神奇地改变METHOD类型。如果原始请求是GET,则在转发之后仍然是GET。所以你的第二个servlet需要在doGet而不是doPost中处理请求。

答案 1 :(得分:-1)

您可以使用Cookie或httpsession执行此操作。 这个链接对您来说很有意思:http://www.journaldev.com/1907/java-servlet-session-management-tutorial-with-examples-of-cookies-httpsession-and-url-rewriting