String userid = "600";
String url = "http://www.xxx.net/a.jsp?iuser=";
url = url + userid;
out.print("url is:"+url+ ""); //这里我调试出 输出地址为: http://www.xxx.net/a.jsp?iuser=600 这个没错
而且我直接打开IE,输入地址 http://www.xxx.net/a.jsp?iuser=600 也可以打开我想要的效果
//但是当我补充了下面这条response.sendRedirect以后,页面就不能进行跳转了,请教阿。。..
//response.sendRedirect (url);
很关键的一个背景是我在a.jsp 这个页面里 又得到了 url = http://www.xxx.net/b.jsp?iuser=600
然后 response.sendRedirect (url);
是不是因为我两次 跳转,导致失效了?
请教下。谢谢。
35 个解决方案
#1
比如我的a.jsp 里
<%
String iuser = userid;
String url = "http://xxx/b.jsp?iuser=";
url = url + iuser;
out.print("url is:"+url+"");
response.sendRedirect(url);
%>
然后b.jsp里 iuser = "&iuser" + request.getParameter("iuser");
再继续跳转 c.jsp
response.sendRedirect (url);
这样为啥不行阿?
多谢啦。
<%
String iuser = userid;
String url = "http://xxx/b.jsp?iuser=";
url = url + iuser;
out.print("url is:"+url+"");
response.sendRedirect(url);
%>
然后b.jsp里 iuser = "&iuser" + request.getParameter("iuser");
再继续跳转 c.jsp
response.sendRedirect (url);
这样为啥不行阿?
多谢啦。
#2
response.sendRedirect (url);
return;
试试
return;
试试
#3
response.sendRedirect (url);
这样好象叫重定项 是不能传参数到下一个页面的
你换成 javax.servlet.RequestDispatcher rd = request.getRequestDispatcher("路径");
rd.forward();
这个方法试下
因为我看见你的网址上有参数传递
不知道是不是这个原因
这样好象叫重定项 是不能传参数到下一个页面的
你换成 javax.servlet.RequestDispatcher rd = request.getRequestDispatcher("路径");
rd.forward();
这个方法试下
因为我看见你的网址上有参数传递
不知道是不是这个原因
#4
学习中
#5
这个试了,不行阿。
500 Servlet Exception
注意:sun.tools.javac.Main 已过时。
test_iuser.jsp:116: 无法访问语句。
pageContext.write(_jsp_string61, 0, _jsp_string61.length);
^
1 个错误, 1 个警告
#6
还是不行呀。。。。
test_iuser.jsp:115: 在 interface javax.servlet.RequestDispatcher
中未找到与 forward() 匹配的方法。
rd.forward();
#7
看不懂啥意思,菜鸟飘过
#8
重定向是访问不了的!在JSP页面里用<jsp:forward >,在severlet里面用RequestDispatcher.foward
#9
那就般到JSP中试试吧
还有就是检查一下写对了没有
我没有测试过
要是完全正确了还是不行 就在下面加一个 return;
javax.servlet.RequestDispatcher rd = request.getRequestDispatcher("路径");
rd.forward();
return;
#10
http协议是无状态协议
你拿着带有参数的URL跳转的时候一定要用服务器条状,否则参数就丢了
request.getRequestDispatcher("下一个页面地址").forward(request,response);
#11
http协议是无状态协议
你拿着带有参数的URL跳转的时候一定要用服务器跳转,否则参数就丢了
request.getRequestDispatcher("下一个页面地址").forward(request,response);
你拿着带有参数的URL跳转的时候一定要用服务器跳转,否则参数就丢了
request.getRequestDispatcher("下一个页面地址").forward(request,response);
#12
补充一下
是不行的话再般到JSP
我记得这句是不写在JSP里的
忘了很多了 .. 希望楼主上网查一下 java 跳转页面的方法..
我觉得这一句如果写对了应该可以的把
另外 各位前辈去帮我看下我的问题呗
http://topic.csdn.net/u/20101103/16/c52148b2-ae05-4941-9c1d-84698916f5c5.html?seed=1013355318&r=69575460#r_69575460
是不行的话再般到JSP
我记得这句是不写在JSP里的
忘了很多了 .. 希望楼主上网查一下 java 跳转页面的方法..
我觉得这一句如果写对了应该可以的把
另外 各位前辈去帮我看下我的问题呗
http://topic.csdn.net/u/20101103/16/c52148b2-ae05-4941-9c1d-84698916f5c5.html?seed=1013355318&r=69575460#r_69575460
#13
11楼应该行得通的
#14
哈哈 10 正解了 就听他的..
#15
参数丢失 是指我 b.jsp 下相跳转c.jsp的时候参数丢失么?
request.getRequestDispatcher("下一个页面地址").forward(request,response);
上面的“下一个地址” 可以为 http://www.xxx.net/c.jsp?iuser=600
么?谢谢
#16
神奇的状态栏 一直跳,然后页面一片空白。。。。
跟我 response.sendRedirect 状态很象阿。
#17
我举个例子吧
a.jsp b.jsp c.jsp d.jsp 4个页面
a.jsp 中
<a href="b.jsp?name=zhuchao">我跳!</a>
b.jsp 中
<% request.getRequestDispatcher("c.jsp").forward(request,response);%>
c.jsp 中
<% request.getRequestDispatcher("d.jsp").forward(request,response);%>
d.jsp中获取 name 的参数
<%
out.println(request.getParameter("name"));
%>
a.jsp b.jsp c.jsp d.jsp 4个页面
a.jsp 中
<a href="b.jsp?name=zhuchao">我跳!</a>
b.jsp 中
<% request.getRequestDispatcher("c.jsp").forward(request,response);%>
c.jsp 中
<% request.getRequestDispatcher("d.jsp").forward(request,response);%>
d.jsp中获取 name 的参数
<%
out.println(request.getParameter("name"));
%>
#18
response.sendRedirect 代参数的情况下条状不要用这个。
#19
帅哥,这个例子举的不错,赞!!!
<% request.getRequestDispatcher("c.jsp").forward(request,response);%>
就只需要写c.jsp 而不需要传递参数,就能 后台默默传递了?
我去试下,谢谢。
#20
不是,你可以先把iuser存入request中,
request.setAttribute("iuser","600");
然后跳转:
request.getRequestDispatcher("http://www.xxx.net/b.jsp").forward(request,response);
在b.jsp中
String iuser=(String )request.setAttribute("iuser");
主要就可以获取iuser了
b.jsp跳转到c.jsp也是一样
#21
迷惑了,
假设 我在a.jsp 里计算出了一个变量 name
这个变量是要传递到一个 b.jsp里的
b.jsp 接受了这个参数以后,是要直接打开 c.jsp页面的。
也就是说 我点了 a.jsp页面链接后,最后效果要直接打开c.jsp?name=参数
谢谢了。
#22
forword是服务器定向
sendRedirect 仅仅是客户端,也就是告诉浏览器去跳转,改变的是http协议head头文件。对浏览器下达重定向指令,让浏览器对在location中指定的URL提出请求,使浏览器显示重定向网页的内容
sendRedirect 仅仅是客户端,也就是告诉浏览器去跳转,改变的是http协议head头文件。对浏览器下达重定向指令,让浏览器对在location中指定的URL提出请求,使浏览器显示重定向网页的内容
#23
a.jsp 里的 name 变量 随便你改
我用4个页面只是做一个例子 你不用盯着4个页面不放的。
你只要关系 第一个页面 跟最后一个页面就是了
第一个页面 传有参数的URL
最后的参数只要接收这个URL上的参数的值就行
中间跳2个页面还是条20000000个页面
只需要用服务器跳转
【request.getRequestDispatcher("下一个页面.jsp").forward(request,response);】
就行了,不要用 response.sendRedirect
否则参数到你最后一个页面就丢失了 你会获得 NULL。
我用4个页面只是做一个例子 你不用盯着4个页面不放的。
你只要关系 第一个页面 跟最后一个页面就是了
第一个页面 传有参数的URL
最后的参数只要接收这个URL上的参数的值就行
中间跳2个页面还是条20000000个页面
只需要用服务器跳转
【request.getRequestDispatcher("下一个页面.jsp").forward(request,response);】
就行了,不要用 response.sendRedirect
否则参数到你最后一个页面就丢失了 你会获得 NULL。
#24
#25
【request.getRequestDispatcher("下一个页面.jsp").forward(request,response);】
顶!
顶!
#26
这样的问题,得分清楚跳转的种类问题先了~学习中~
#27
你b页面里怎么得到url的??
#28
request.getRequestDispatcher("下一个页面.jsp").forward(request,response);
这样是请求的转发,比如1.jsp发送请求到2.jsp,但是在2.jsp转发到了3.jsp,那么在3.jsp是能接受到1.jsp发送过来的请求的,整个过程是一个request;
response.sendRedirect("页面");
这是重定向,比如1.jsp发送请求到2.jsp,但是在2.jsp重定向到了3.jsp,那么在3.jsp是不能接受到1.jsp发送过来的请求的,因为这个过程不是一个请求
这样是请求的转发,比如1.jsp发送请求到2.jsp,但是在2.jsp转发到了3.jsp,那么在3.jsp是能接受到1.jsp发送过来的请求的,整个过程是一个request;
response.sendRedirect("页面");
这是重定向,比如1.jsp发送请求到2.jsp,但是在2.jsp重定向到了3.jsp,那么在3.jsp是不能接受到1.jsp发送过来的请求的,因为这个过程不是一个请求
#29
return 一下,这个貌似是进程问题
#30
谢谢这位朋友。 让我比较清楚了 request.getRequestDispatcher 也可以在页面间传递参数。
但是可能我的问题不够试用,也可能我没有把我的问题表述清楚。
现在是这样的。
我在打开a.jsp 页面后,已经成功输出了我打算要跳转的 地址:
url is:http://www.xxx.net/b.jsp?iuser=600
现在我的目的就是要跳转到这个地址。
我发现如果我补一个超级链接,是可以直接打开我要的b.jsp并传递了iuser参数的。【 但是这个需要点一下超级链接,才能正常跳转并传参】
<a hrf = <%=url%>点这进链接</a>
现在我就希望在a.jsp里 得到url后自动进行跳转,而我尝试了
response.Redirect 木有成功,
request.getRequestDispatcher 这个确实不会写。【帅哥不要血喷哦,我比较愚笨,对JSP也不太熟悉,谢谢。】
再次感谢大家的回帖。
#31
我尝试 request.getRequestDispatcher 不成功的原因我怀疑是跳转的页面 跨了2个站的问题,
因为我的a.jsp 是在
http:// 服务器1/a.jsp
而要跳转的b.jsp
是在 http:// 服务器2/b.jsp?iuser=600
a.jsp下我拼出了
url = "http://服务器2/b.jsp?iuser=600" //这个输出文本是成功的
但是补充了下面这句就不成功了,这个为啥呀?【最后补充了 return;也不行】
response.Redirect(url);
因为我的a.jsp 是在
http:// 服务器1/a.jsp
而要跳转的b.jsp
是在 http:// 服务器2/b.jsp?iuser=600
a.jsp下我拼出了
url = "http://服务器2/b.jsp?iuser=600" //这个输出文本是成功的
但是补充了下面这句就不成功了,这个为啥呀?【最后补充了 return;也不行】
response.Redirect(url);
#32
a.jsp
b.jsp
c.jsp
b.jsp自动跳转到c.jsp
<html>
<head>
</head>
<body>
<a href="b.jsp?name=111">111</a>
</body>
</html>
b.jsp
<html>
<head>
</head>
<body>
<%
String name = request.getParameter("name");
request.setAttribute("name",name);
request.getRequestDispatcher("c.jsp").forward(request,response);
%>
</body>
</html>
c.jsp
<html>
<head>
</head>
<body>
<%
out.print(request.getAttribute("name"));
%>
</body>
</html>
b.jsp自动跳转到c.jsp
#33
我试下,谢谢
#34
你直接用一个<a herf=""></a>就完事了 哪有那么费劲啊
#35
汗阿。终于解决了。
非常感谢大家的帮助。
最后用了JS 调用 JSP里的变量,
然后再 window.navigate(url)
实现了,不过为啥 得到了URL,自动 redirect不行,也不知道。
谢谢大家,结贴。
非常感谢大家的帮助。
最后用了JS 调用 JSP里的变量,
然后再 window.navigate(url)
实现了,不过为啥 得到了URL,自动 redirect不行,也不知道。
谢谢大家,结贴。
#1
比如我的a.jsp 里
<%
String iuser = userid;
String url = "http://xxx/b.jsp?iuser=";
url = url + iuser;
out.print("url is:"+url+"");
response.sendRedirect(url);
%>
然后b.jsp里 iuser = "&iuser" + request.getParameter("iuser");
再继续跳转 c.jsp
response.sendRedirect (url);
这样为啥不行阿?
多谢啦。
<%
String iuser = userid;
String url = "http://xxx/b.jsp?iuser=";
url = url + iuser;
out.print("url is:"+url+"");
response.sendRedirect(url);
%>
然后b.jsp里 iuser = "&iuser" + request.getParameter("iuser");
再继续跳转 c.jsp
response.sendRedirect (url);
这样为啥不行阿?
多谢啦。
#2
response.sendRedirect (url);
return;
试试
return;
试试
#3
response.sendRedirect (url);
这样好象叫重定项 是不能传参数到下一个页面的
你换成 javax.servlet.RequestDispatcher rd = request.getRequestDispatcher("路径");
rd.forward();
这个方法试下
因为我看见你的网址上有参数传递
不知道是不是这个原因
这样好象叫重定项 是不能传参数到下一个页面的
你换成 javax.servlet.RequestDispatcher rd = request.getRequestDispatcher("路径");
rd.forward();
这个方法试下
因为我看见你的网址上有参数传递
不知道是不是这个原因
#4
学习中
#5
这个试了,不行阿。
500 Servlet Exception
注意:sun.tools.javac.Main 已过时。
test_iuser.jsp:116: 无法访问语句。
pageContext.write(_jsp_string61, 0, _jsp_string61.length);
^
1 个错误, 1 个警告
#6
还是不行呀。。。。
test_iuser.jsp:115: 在 interface javax.servlet.RequestDispatcher
中未找到与 forward() 匹配的方法。
rd.forward();
#7
看不懂啥意思,菜鸟飘过
#8
重定向是访问不了的!在JSP页面里用<jsp:forward >,在severlet里面用RequestDispatcher.foward
#9
那就般到JSP中试试吧
还有就是检查一下写对了没有
我没有测试过
要是完全正确了还是不行 就在下面加一个 return;
javax.servlet.RequestDispatcher rd = request.getRequestDispatcher("路径");
rd.forward();
return;
#10
http协议是无状态协议
你拿着带有参数的URL跳转的时候一定要用服务器条状,否则参数就丢了
request.getRequestDispatcher("下一个页面地址").forward(request,response);
#11
http协议是无状态协议
你拿着带有参数的URL跳转的时候一定要用服务器跳转,否则参数就丢了
request.getRequestDispatcher("下一个页面地址").forward(request,response);
你拿着带有参数的URL跳转的时候一定要用服务器跳转,否则参数就丢了
request.getRequestDispatcher("下一个页面地址").forward(request,response);
#12
补充一下
是不行的话再般到JSP
我记得这句是不写在JSP里的
忘了很多了 .. 希望楼主上网查一下 java 跳转页面的方法..
我觉得这一句如果写对了应该可以的把
另外 各位前辈去帮我看下我的问题呗
http://topic.csdn.net/u/20101103/16/c52148b2-ae05-4941-9c1d-84698916f5c5.html?seed=1013355318&r=69575460#r_69575460
是不行的话再般到JSP
我记得这句是不写在JSP里的
忘了很多了 .. 希望楼主上网查一下 java 跳转页面的方法..
我觉得这一句如果写对了应该可以的把
另外 各位前辈去帮我看下我的问题呗
http://topic.csdn.net/u/20101103/16/c52148b2-ae05-4941-9c1d-84698916f5c5.html?seed=1013355318&r=69575460#r_69575460
#13
11楼应该行得通的
#14
哈哈 10 正解了 就听他的..
#15
参数丢失 是指我 b.jsp 下相跳转c.jsp的时候参数丢失么?
request.getRequestDispatcher("下一个页面地址").forward(request,response);
上面的“下一个地址” 可以为 http://www.xxx.net/c.jsp?iuser=600
么?谢谢
#16
神奇的状态栏 一直跳,然后页面一片空白。。。。
跟我 response.sendRedirect 状态很象阿。
#17
我举个例子吧
a.jsp b.jsp c.jsp d.jsp 4个页面
a.jsp 中
<a href="b.jsp?name=zhuchao">我跳!</a>
b.jsp 中
<% request.getRequestDispatcher("c.jsp").forward(request,response);%>
c.jsp 中
<% request.getRequestDispatcher("d.jsp").forward(request,response);%>
d.jsp中获取 name 的参数
<%
out.println(request.getParameter("name"));
%>
a.jsp b.jsp c.jsp d.jsp 4个页面
a.jsp 中
<a href="b.jsp?name=zhuchao">我跳!</a>
b.jsp 中
<% request.getRequestDispatcher("c.jsp").forward(request,response);%>
c.jsp 中
<% request.getRequestDispatcher("d.jsp").forward(request,response);%>
d.jsp中获取 name 的参数
<%
out.println(request.getParameter("name"));
%>
#18
response.sendRedirect 代参数的情况下条状不要用这个。
#19
帅哥,这个例子举的不错,赞!!!
<% request.getRequestDispatcher("c.jsp").forward(request,response);%>
就只需要写c.jsp 而不需要传递参数,就能 后台默默传递了?
我去试下,谢谢。
#20
不是,你可以先把iuser存入request中,
request.setAttribute("iuser","600");
然后跳转:
request.getRequestDispatcher("http://www.xxx.net/b.jsp").forward(request,response);
在b.jsp中
String iuser=(String )request.setAttribute("iuser");
主要就可以获取iuser了
b.jsp跳转到c.jsp也是一样
#21
迷惑了,
假设 我在a.jsp 里计算出了一个变量 name
这个变量是要传递到一个 b.jsp里的
b.jsp 接受了这个参数以后,是要直接打开 c.jsp页面的。
也就是说 我点了 a.jsp页面链接后,最后效果要直接打开c.jsp?name=参数
谢谢了。
#22
forword是服务器定向
sendRedirect 仅仅是客户端,也就是告诉浏览器去跳转,改变的是http协议head头文件。对浏览器下达重定向指令,让浏览器对在location中指定的URL提出请求,使浏览器显示重定向网页的内容
sendRedirect 仅仅是客户端,也就是告诉浏览器去跳转,改变的是http协议head头文件。对浏览器下达重定向指令,让浏览器对在location中指定的URL提出请求,使浏览器显示重定向网页的内容
#23
a.jsp 里的 name 变量 随便你改
我用4个页面只是做一个例子 你不用盯着4个页面不放的。
你只要关系 第一个页面 跟最后一个页面就是了
第一个页面 传有参数的URL
最后的参数只要接收这个URL上的参数的值就行
中间跳2个页面还是条20000000个页面
只需要用服务器跳转
【request.getRequestDispatcher("下一个页面.jsp").forward(request,response);】
就行了,不要用 response.sendRedirect
否则参数到你最后一个页面就丢失了 你会获得 NULL。
我用4个页面只是做一个例子 你不用盯着4个页面不放的。
你只要关系 第一个页面 跟最后一个页面就是了
第一个页面 传有参数的URL
最后的参数只要接收这个URL上的参数的值就行
中间跳2个页面还是条20000000个页面
只需要用服务器跳转
【request.getRequestDispatcher("下一个页面.jsp").forward(request,response);】
就行了,不要用 response.sendRedirect
否则参数到你最后一个页面就丢失了 你会获得 NULL。
#24
#25
【request.getRequestDispatcher("下一个页面.jsp").forward(request,response);】
顶!
顶!
#26
这样的问题,得分清楚跳转的种类问题先了~学习中~
#27
你b页面里怎么得到url的??
#28
request.getRequestDispatcher("下一个页面.jsp").forward(request,response);
这样是请求的转发,比如1.jsp发送请求到2.jsp,但是在2.jsp转发到了3.jsp,那么在3.jsp是能接受到1.jsp发送过来的请求的,整个过程是一个request;
response.sendRedirect("页面");
这是重定向,比如1.jsp发送请求到2.jsp,但是在2.jsp重定向到了3.jsp,那么在3.jsp是不能接受到1.jsp发送过来的请求的,因为这个过程不是一个请求
这样是请求的转发,比如1.jsp发送请求到2.jsp,但是在2.jsp转发到了3.jsp,那么在3.jsp是能接受到1.jsp发送过来的请求的,整个过程是一个request;
response.sendRedirect("页面");
这是重定向,比如1.jsp发送请求到2.jsp,但是在2.jsp重定向到了3.jsp,那么在3.jsp是不能接受到1.jsp发送过来的请求的,因为这个过程不是一个请求
#29
return 一下,这个貌似是进程问题
#30
谢谢这位朋友。 让我比较清楚了 request.getRequestDispatcher 也可以在页面间传递参数。
但是可能我的问题不够试用,也可能我没有把我的问题表述清楚。
现在是这样的。
我在打开a.jsp 页面后,已经成功输出了我打算要跳转的 地址:
url is:http://www.xxx.net/b.jsp?iuser=600
现在我的目的就是要跳转到这个地址。
我发现如果我补一个超级链接,是可以直接打开我要的b.jsp并传递了iuser参数的。【 但是这个需要点一下超级链接,才能正常跳转并传参】
<a hrf = <%=url%>点这进链接</a>
现在我就希望在a.jsp里 得到url后自动进行跳转,而我尝试了
response.Redirect 木有成功,
request.getRequestDispatcher 这个确实不会写。【帅哥不要血喷哦,我比较愚笨,对JSP也不太熟悉,谢谢。】
再次感谢大家的回帖。
#31
我尝试 request.getRequestDispatcher 不成功的原因我怀疑是跳转的页面 跨了2个站的问题,
因为我的a.jsp 是在
http:// 服务器1/a.jsp
而要跳转的b.jsp
是在 http:// 服务器2/b.jsp?iuser=600
a.jsp下我拼出了
url = "http://服务器2/b.jsp?iuser=600" //这个输出文本是成功的
但是补充了下面这句就不成功了,这个为啥呀?【最后补充了 return;也不行】
response.Redirect(url);
因为我的a.jsp 是在
http:// 服务器1/a.jsp
而要跳转的b.jsp
是在 http:// 服务器2/b.jsp?iuser=600
a.jsp下我拼出了
url = "http://服务器2/b.jsp?iuser=600" //这个输出文本是成功的
但是补充了下面这句就不成功了,这个为啥呀?【最后补充了 return;也不行】
response.Redirect(url);
#32
a.jsp
b.jsp
c.jsp
b.jsp自动跳转到c.jsp
<html>
<head>
</head>
<body>
<a href="b.jsp?name=111">111</a>
</body>
</html>
b.jsp
<html>
<head>
</head>
<body>
<%
String name = request.getParameter("name");
request.setAttribute("name",name);
request.getRequestDispatcher("c.jsp").forward(request,response);
%>
</body>
</html>
c.jsp
<html>
<head>
</head>
<body>
<%
out.print(request.getAttribute("name"));
%>
</body>
</html>
b.jsp自动跳转到c.jsp
#33
我试下,谢谢
#34
你直接用一个<a herf=""></a>就完事了 哪有那么费劲啊
#35
汗阿。终于解决了。
非常感谢大家的帮助。
最后用了JS 调用 JSP里的变量,
然后再 window.navigate(url)
实现了,不过为啥 得到了URL,自动 redirect不行,也不知道。
谢谢大家,结贴。
非常感谢大家的帮助。
最后用了JS 调用 JSP里的变量,
然后再 window.navigate(url)
实现了,不过为啥 得到了URL,自动 redirect不行,也不知道。
谢谢大家,结贴。