可以在另一个帖子请求中转发帖子请求对象吗?

时间:2015-02-02 20:35:36

标签: java javascript jsp servlets post

我有以下情况。我收到了服务器的请求。这是由java servlet处理的。 java servlet调用jsp文件来创建一个html页面。 servlet将请求对象传递给jsp。 在html页面中,人们可以点击按钮,这些按钮会将请求发布到其他页面。

我希望能够将原始请求对象(附加信息)传递到下一页。

1)这可能吗? (也许从请求对象创建一个javascript对象?)

2)我是否认为这一切都错了,我应该创建用户会话还是什么?我没有这方面的经验。

由于

编辑:

我认为一个例子可能会清楚一些事情。

1)从外部站点向servlet A发出post请求。在这个servlet中,我执行以下操作:

protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {  

String jsp = "WEB-INF/webpage.jsp";
RequestDispatcher rd = request.getRequestDispatcher(jsp);
rd.forward(request,response);
}

然后在jsp中我这样做:

<html>
<head></head>
<body> 
    <form method="post" action="http://myurl.com/servletB" target="_self">
            <% String first_name = request.getParameter("first_name");%> 
            Hello <%= first_name %>
            What is your lastname: <input type="text" name="last_name">
            <input type="submit" value="submit">
        </form>
</body>
</html>

但是在原始请求中有更多信息,那么只有first_name。在servlet B中,我需要原始请求中的所有信息+ last_name。

3 个答案:

答案 0 :(得分:1)

添加额外的一行<input type="hidden" name="first_name" value=<%=first_name %>>

<body> 
    <form method="post" action="http://myurl.com/servletB" target="_self">
        <% String first_name = request.getParameter("first_name");%> 
        Hello <%= first_name %>

        <input type="hidden" name="first_name" value=<%=first_name%>>

        What is your lastname: <input type="text" name="last_name">
        <input type="submit" value="submit">
    </form>
</body>

现在,您可以通过request.getParameter("first_name");

获取servlet中的first_name

答案 1 :(得分:1)

所以你在这里有两个不同的请求 - 一个用于呈现表单的GET和另一个用于将数据提交到服务器的POST。

这两个请求是单独处理的,因此您应该在会话中存储原始请求中的信息。

答案 2 :(得分:-1)

你说你正在使用POST,我不会使用307 redirect,因为你可能会遇到一些问题。我会用会话。