0 0

Servlet 重定向传参3

我现在要从servlet 里面重定向到 别的网站  我需要以post 传参  就像是表单提交方式一样  请高手们 给点意见
2011年3月23日 15:10

3个答案 按时间排序 按投票排序

0 0

lz到底怎么样了?等你的反应,上面的解决问题了没?

2011年4月08日 14:53
0 0

servlet重定向一般采用response.sendRedirect()来处理,要明白其中的细节,还需了解HTTP协议的一些内容,简单点就是要了解HTTP请求报头、HTTP状态码、HTTP响应报头的一些参数。

sendRedirect()简单点就是做了两件事情:
设置HTTP响应报头中的Status为302;
设置HTTP响应报头中的Location值为指定的URL;
简单相当于这样:

response.setStatus(302);
response.setHeader("Location", "OtherServlet");


浏览器会根据状态码来作出相应的响应;

浏览器对相应的状态码的响应(这里只给出了几个3开头的)是:
302 作为HTTP1.0的标准,以前叫做Moved Temporarily ,现在叫Found. 现在使用只是为了兼容性的处理,response.sendRedirect()的默认Location重定向用的是302.
但是HTTP 1.1 有303 和307作为详细的补充,其实是对302的细化
303:对于POST请求,它表示请求已经被处理,客户端可以接着使用GET方法去请求Location里的URI。
307:对于POST请求,表示请求还没有被处理,客户端应该向Location里的URI重新发起POST请求。

浏览器对302的响应,默认情况下,使用HTTP协议的GET方法提交请求,最初请求的内容(比如 POST 参数)也就丢失了。
所以response.sendRedirect()是不能让浏览器来以post方法提交请求的。

你想在servlet中用post传参数,在浏览器支持HTTP1.1的情况下可以设置状态码为307:
response.setStatus(307);
response.setHeader("Location", "OtherServlet");


这样浏览器就会向Location里的URI重新发起POST请求。

下班了,回答忘记下班时间了.

2011年3月23日 18:33
0 0

servlet 里面重定向 只能是get方式传参数。
之所有叫重定向就是因为这个。
如果重定向能够post传参的话,那么请求转发就没必要存在了。

2011年3月23日 15:42

相关推荐

    JSP与servlet之间的传值

    URL 传参** 另一种常见的传值方式是通过 URL 参数的形式传递数据给 Servlet。这种方式适用于简单的查询参数或少量的数据传递。 示例代码: ```jsp <a href="JspServlet?action=toServlet">click me ``` 在 Servlet...

    Jsp利用response.sendRedirect、cookie传参

    `response.sendRedirect`是Servlet API中的一个方法,用于重定向浏览器到一个新的资源。当在JSP或Servlet中调用此方法时,它会发送一个302状态码给客户端,指示客户端重新发起请求到指定的URL。这种方法特别适合于...

    forward PK sendredirect

    相比之下,`response.sendRedirect("转的页面")`是Java Servlet API中的一个方法,它会告诉浏览器发送一个新的GET请求到指定的URL。这是一个客户端的跳转,服务器返回一个HTTP状态码302(暂时重定向)和Location头,...

    java中页面传值的简单操作

    处理完成后,可以使用`HttpServletResponse`对象将结果反馈给客户端,或者重定向到其他页面。 总结一下,Java中通过表单进行页面传值的基本步骤包括: 1. 创建HTML表单,设置`action`指向处理表单数据的Servlet,...

    struts2 向结果传参数

    Struts2支持多种内置结果类型,如`dispatcher`(默认的,用于转发到JSP)、`stream`(用于处理文件下载)和`redirectAction`(用于重定向到另一个Action)。每个结果类型都有其特定的配置方式来传递参数。 1. **在...

    jsp基础速成精华讲解

    <servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/myServlet </...

    urlrewrite 完整实例,可直接运行。支持多个参数传递

    上述配置中,第一条规则将`/oldpath/value1/value2`重定向至`/newpath?param1=value1&param2=value2`,而第二条规则则将携带`param1`和`param2`参数的`/newpath`请求转换为`/value1/value2`。 五、运行实例 在`...

    JSP页面从一个页面传递一个参数到另外一个页面的方法

    2. **响应重定向(Response.sendRedirect()):** 在JSP或Servlet中使用Java代码触发重定向。 ```java response.sendRedirect("target.jsp?参数名=参数值"); ``` **特点:** - **新请求:** 重定向时,客户端...

    Struts2入门教程(全新完整版)

    9.ModerDriven传参模式(不建议采用) 7 10.为什么要使用struts2代替struts1.x 7 二、struts.xml配置及例程 7 1.配置文件的优先级 7 2.配置形式 8 3.package配置相关 8 4.分工合作include:指定多个配置文件 10 5....

    SpringMVCStudy:在SpringMVC中学习的一些记录,先学习jsp语法

    重定向到HelloWorld的demo:按'user’参数名指定传入参数:从URI中指定传入多个参数的情况:仅用于从服务器向浏览器返回一个字符串,注意字符编码问题:访问自己创建的Servlet:查看jsp生命周期函数调用的代码:查看...

    jsp给后台带多个参数的方法

    函数通过`window.location`对象的`href`属性来改变当前页面的URL,从而实现页面重定向,并将参数附加到新的URL中。具体代码如下: ```javascript function tiao(id, fpxldm) { window.location = "${sbjkgl}/w/fp/...

Global site tag (gtag.js) - Google Analytics