我有两个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?
由于
答案 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