servlet重定向jsp

shuiruhan1981905 2005-06-17 11:03:12
要求是这样的:要传参数,不想用application,session,不想用绝对路径(以/开头)
我的理解是:redirect,还有forward(),似乎都不合适
redirect不能传递参数(当然可以用session),forward()不支持相对路径
我怕将来程序不再root下面,绝对路径不好用了,同时不想用session传递参数

请多多执教
...全文
227 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuiruhan1981905 2005-06-17
  • 打赏
  • 举报
回复
我说的是在servlet中如何跳转jsp,不是在jsp中
getServletContext().getRequestDispatcher("/CerImport/11.jsp").forward(request,response);
这个可以设置setAttribute(),但是必须用/开头
response.sendRedirect("../CerImport/11.jsp");可以传递相对路径,但是不能request.setAttribute();
我现在要的是两者的优点
topil 2005-06-17
  • 打赏
  • 举报
回复
关注一下
wallex 2005-06-17
  • 打赏
  • 举报
回复
应该没有你考虑的问题,redirect可以通过url传递参数;forward可以用相对路径
humanity 2005-06-17
  • 打赏
  • 举报
回复
ServletContext 不是可以得到么?
重定向你也可以把参数 Base64 处理一下直接跟在 xxx.jsp 后面,

你看人家 Sun , IBM 等下载得程序都这样, 后面跟很多参数,参数名字和参数值都很古怪,就是为了不让你看懂,
aChinese 2005-06-17
  • 打赏
  • 举报
回复
把根目录配置到web.xml中, 如果你不嫌麻烦的话
<context-param>
<param-name>RootDir</param-name>
<param-value>/</param-value>
</context-param>

然后程序中
getServletContext()
.getRequestDispatcher(getServletContext().getInitParamter("RootDir")+"CerImport/11.jsp")
.forward(request,response);

这样行不行? 虽然有点笨
sy_binbin 2005-06-17
  • 打赏
  • 举报
回复
RequestDispatcher requestDispatcher=request.getRequestDispatcher("/jsp/testbean.jsp");
requestDispatcher.forward(request,response);

这个好象有点问题!
假如你做登陆,登陆成功转向成功页面,转是转过去了,参数也能传过去,但图片什么的就都没有了!我用的是response.sendredirect("");这个。
虽然我不知道为什么,但后面的那个是好用的!你试试吧!
shockely 2005-06-17
  • 打赏
  • 举报
回复
看楼主这么执着用sendredirect,是为了重定向到其他服务器的资源,不能传参数是没办法的,不然用forward是不会存在这些问题的
jcw2016 2005-06-17
  • 打赏
  • 举报
回复
单纯使用JSP的<jsp:forward>标签就可以实现,看看这个JSP的Servlet文件的源代码,你就知道怎么调用了。
newhand123456 2005-06-17
  • 打赏
  • 举报
回复
RequestDispatcher rd = req.getRequestDispatcher("error.jsp");
rd.forward(req,res);可以的啊,并不一定要/开头的啊
shuiruhan1981905 2005-06-17
  • 打赏
  • 举报
回复
你可以尝试一下,会提示你必须以/开头的;

还有民工你写得实际上不是我的一样吗
minisun2000 2005-06-17
  • 打赏
  • 举报
回复
getServletContext().getRequestDispatcher("../CerImport/11.jsp").forward(request,response);有什么不可以的?
jackson416 2005-06-17
  • 打赏
  • 举报
回复
//在Servlet的数据发送到别一个JSP中:
.............
request.setAttubute("messages",aaa); //参数
RequestDispatcher requestDispatcher=request.getRequestDispatcher("/jsp/testbean.jsp");
requestDispatcher.forward(request,response);
..............
fhtt0606 2005-06-17
  • 打赏
  • 举报
回复
forward()啊
ailling 2005-06-17
  • 打赏
  • 举报
回复
关注!

81,092

社区成员

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

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