Jsp Servlet URL重定向
在JAVA动态Web应用程序中,我通过action=“post”将Payment.jsp中的值传递给servlet。 在servlet doPost()方法中: 在makepayment.jsp中,我使用${cost}获取值 我的问题是,当我进入地址栏并按enter键时,${cost}不会打印任何内容Jsp Servlet URL重定向,jsp,servlets,Jsp,Servlets,在JAVA动态Web应用程序中,我通过action=“post”将Payment.jsp中的值传递给servlet。 在servlet doPost()方法中: 在makepayment.jsp中,我使用${cost}获取值 我的问题是,当我进入地址栏并按enter键时,${cost}不会打印任何内容 我知道这是因为它调用doGet()方法,但我如何解决这个问题呢?您需要了解servlet应用程序的流程 在浏览器中提交表单时,浏览器会序列化输入参数并创建GET/POST请求。它将此请求发送到您的
我知道这是因为它调用doGet()方法,但我如何解决这个问题呢?您需要了解servlet应用程序的流程 在浏览器中提交表单时,浏览器会序列化输入参数并创建
GET
/POST
请求。它将此请求发送到您的服务器,并选择一个servlet来处理它。您在请求属性中添加的属性在该请求的生命周期内都是有效的,即在返回响应之前。他们不会在第二次请求中可用
在您的问题中,您提交了一个POST
请求(例如通过单击按钮),请求被发送,servlet的doPost()
方法被执行。这些线
request.setAttribute("cost", cost);
request.getRequestDispatcher("makepayment.jsp").forward(request, response);
向请求属性添加属性cost
,并转发到jsp
资源。该资源将有权访问请求属性,例如,${cost}
,同时生成最终将返回给客户端的响应
我的问题是,当我进入地址栏并按enter键时,${cost}不会打印任何内容
如果转到地址栏并按enter键,将发送一个新请求,因此,在没有看到您的
doGet()
的情况下,上一个请求的请求属性将不存在。您需要以某种方式持久化它们,可能是使用会话属性 你的目标不明确
request.setAttribute("cost", cost);
request.getRequestDispatcher("makepayment.jsp").forward(request, response);