RequestDispatcher.forward(req, res)跳转页面后显示问题。在线

tujunhui 2003-08-22 02:38:43
<form method="post" action="login">
<br>用户编号 : <input name="userid"><br>
<br>用户密码 : <input name="password"><br>
<br><br> <input type="submit" name="Submit" value="确定">
<input type="reset" value="重置"> <br> </form>

我的这个JSP页面提交后,经过login处理指定到另一个JSP2.jsp后
地址栏则显示../login而不是../JSP2.jsp
有没有方法让它显示../JSP2.jsp呢?


...全文
381 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
tujunhui 2003-08-22
  • 打赏
  • 举报
回复
好吧,接受这个答案吧!
cbhyk 2003-08-22
  • 打赏
  • 举报
回复
数据存到session,然后redirect
tujunhui 2003-08-22
  • 打赏
  • 举报
回复
我需要达到的效果,是能够把request传到客户端,然后最终显示最终调用的JSP页面地址。
能不能实现。

response.sendRedirect()方法可以显示JSP页面地址但不能传request。
有没有其它方法
seaman0916 2003-08-22
  • 打赏
  • 举报
回复
主要看你用的那种定向方式:
如果用<jsp:forward page="error.jsp" />,那就地址栏不会显示 .../error.jsp

如果用response.sendRedirect("error.jsp");那就可以真确显示的!

但是,如果你要给error.jsp传递参数,传递会话信息的话,必须用 <jsp:forward /> !

还有,如果在调用 重定向语句之前使用了 <jsp:incude .../>的话,重定向语句是不起作用的!


例子代码:
Test.jsp

<%@ page contentType="text/html; charset=gb2312" %>
<%@ page language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Test</title>
</head>
<body>
<form name="form1" method="post" action="Test2.jsp">
<p>
<input type="text" name="textfield">
</p>
<p>
<input type="submit" name="Submit" value="提交">
<input type="reset" name="Submit2" value="重置">
</p>
</form>
</body>
</html>

Test2.jsp

<%@ page contentType="text/html; charset=gb2312" %>
<%@ page language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Test2</title>
</head>
<body>

<%--
response.sendRedirect("error.jsp");
--%>
<jsp:forward page="error.jsp" />

</body>
</html>

error.jsp

<%@ page contentType="text/html; charset=gb2312" %>
<%@ page language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> 错误页面</TITLE>

</HEAD>
<BODY>
<p align="center"><font size="4" color="red"> 错误页面!</font></p>
</BODY>
</HTML>
seaman0916 2003-08-22
  • 打赏
  • 举报
回复
主要看你用的那种定向方式:
如果用<jsp:forward page="error.jsp" />,那就地址栏不会显示 .../error.jsp

如果用response.sendRedirect("error.jsp");那就可以真确显示的!

但是,如果你要给error.jsp传递参数,传递会话信息的话,必须用 <jsp:forward /> !

还有,如果在调用 重定向语句之前使用了 <jsp:incude .../>的话,重定向语句是不起作用的!


例子代码:
Test.jsp

<%@ page contentType="text/html; charset=gb2312" %>
<%@ page language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Test</title>
</head>
<body>
<form name="form1" method="post" action="Test2.jsp">
<p>
<input type="text" name="textfield">
</p>
<p>
<input type="submit" name="Submit" value="提交">
<input type="reset" name="Submit2" value="重置">
</p>
</form>
</body>
</html>

Test2.jsp

<%@ page contentType="text/html; charset=gb2312" %>
<%@ page language="java" import="java.sql.*" errorPage="" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Test2</title>
</head>
<body>

<%--
response.sendRedirect("error.jsp");
--%>
<jsp:forward page="error.jsp" />

</body>
</html>

error.jsp

<%@ page contentType="text/html; charset=gb2312" %>
<%@ page language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> 错误页面</TITLE>

</HEAD>
<BODY>
<p align="center"><font size="4" color="red"> 错误页面!</font></p>
</BODY>
</HTML>
Alain_Delone 2003-08-22
  • 打赏
  • 举报
回复
RequestDispatcher.forward(req, res)跳转页面后显示问题
你用了forward,把当前的REQ,上下文也传过去了,这样的话,如果你用的是相对路径可能会不同的
用RESPONSE。SENDREDIRECT则没这个问题,你现在可以这样,多试几次,知道相对路径对位置
或运行时,构成那个JSP页面的绝对路径然后DISPATCH过去,

我用惯STRUTS了,都快忘了这烦恼了呵呵
tujunhui 2003-08-22
  • 打赏
  • 举报
回复
上面写错了几个字,更正一下:
但是按后退按钮回到该页后会报错,因为我的action="login"中login不是一个对象,而是传到filter判断的一个参数而已。
tujunhui 2003-08-22
  • 打赏
  • 举报
回复
to: javahui(阶级斗争要年年讲,月月讲,天天讲。)
但是按后退按钮会报错,我的action="login"不是一个实对象,需地login传到filter判断的一个值而已。
wizardho 2003-08-22
  • 打赏
  • 举报
回复
楼上说得是
tujunhui 2003-08-22
  • 打赏
  • 举报
回复
request已加了新属性,需把request也传过去。有没有方法
javahui 2003-08-22
  • 打赏
  • 举报
回复
地址栏里显示什么东西并不重要啊
javahui 2003-08-22
  • 打赏
  • 举报
回复
地址栏里显示什么东西并不重要啊
tujunhui 2003-08-22
  • 打赏
  • 举报
回复
to: cbhyk()
response.sendRedirect("JSP2.jsp");
那我的request不是传不过去了吗?
cbhyk 2003-08-22
  • 打赏
  • 举报
回复
response.sendRedirect("JSP2.jsp");

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧