社区
Web 开发
帖子详情
[200分问题] Servlet转向请求后如何显示正确URL?
Sheepy
2003-10-17 08:37:22
在做一个登陆系统,登陆的Servlet叫Login,映射到user/Login。登陆后返回根目录下的主页,但是浏览器URL仍然是servlet的URL,造成主页上链接路径错误。
我想知道除了所有的连接都用根目录作参考外,还有什么更好的解决方法,比如让转向后URL显示页面的URL而非servlet的。
...全文
116
22
打赏
收藏
[200分问题] Servlet转向请求后如何显示正确URL?
在做一个登陆系统,登陆的Servlet叫Login,映射到user/Login。登陆后返回根目录下的主页,但是浏览器URL仍然是servlet的URL,造成主页上链接路径错误。 我想知道除了所有的连接都用根目录作参考外,还有什么更好的解决方法,比如让转向后URL显示页面的URL而非servlet的。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Sheepy
2003-11-01
打赏
举报
回复
我投降了,现在用Apache+Tomcat,所有servlet映射到/servlet下,所有网页里的链接以根目录开头。
fantasyCoder
2003-10-28
打赏
举报
回复
up!!!
up!!!
Sheepy
2003-10-26
打赏
举报
回复
self up!!!
fantasyCoder
2003-10-24
打赏
举报
回复
楼主的问题我也想知道!!
因为要正常访问index页面必然要通过一个servlet转向!!!
通过login页面经过servlet验证转象到index
如果直接访问index就会有问题出现,,如果index再通过一个servlet进行数据库操作则问题更大
把代码全写在 jsp页面里是不会有这样的问题的!!!
不知道有什么方法可以很好的解决问题!!!
Sheepy
2003-10-24
打赏
举报
回复
哪位高手发点声音呀!哪怕说我做事方式不对,应该用Struts或者其他什么做我也服了,虽然我还不懂,但是我可以去学了呀!
事实证明这是一个问题呀!楼上的也碰到了呀!
fantasyCoder
2003-10-24
打赏
举报
回复
帮你up!!!
Sheepy
2003-10-23
打赏
举报
回复
这不是一个问题吗……
Sheepy
2003-10-21
打赏
举报
回复
回复人: djws(void)
用../xxx.jsp
不要捣浆糊好不好?你这样servlet转向以后可以用了,但是我直接访问/index.html的时候怎么办?根目录的上一层是什么?..指向什么?
yaray
2003-10-20
打赏
举报
回复
除了用了frameset以后IE地址栏不变化外,没碰到过这种情况.
djws
2003-10-20
打赏
举报
回复
用../xxx.jsp
Sheepy
2003-10-20
打赏
举报
回复
如果网页里面用“/”开头的链接的话,要把所在的module名字放进去,也就是说如果用tomcat,东西放在test这个context下面的话,用“/”链接要指向test下的index.html要把链接写成/test/index.html。WAS也是这样。但是我学长说他用weblogic,不是这样的,weblogic会把根目录映射到你的module目录下,也就是只要写成/index.html,就指向test下面的index.html了。
所以说链接都用“/”开头是不上品的,必须在/后面跟上module的路径。
用sendRedirect()确实可以让URL变成转向后的地址,但是不会把request里面的东西一起传过去,用forward()可以传递request,但是浏览器认为URL还是servlet的URL,有可能造成网页里链接不对,如果它们不是以“/”开头,而是以当前路径作参考。
所以!请问!商业项目中是怎么做的!Sun是怎么做的!IBM是怎么做的!到底应该是怎么做的!!!
Sheepy
2003-10-17
打赏
举报
回复
我没有用sendRedirect()。我的书上没有讲过这个方法,我知道这个方法,用过一次失败了,说IllegaleStateException。
我用的是RequestDispatcher:
RequestDispatcher dispatcher=request.getRequestDispatcher("/index.jsp");
dispatcher.forward("request,response");
这样的话可以把原来的request里面的参数什么的一起给转向后的页面。但是URL还是servlet的URL。
另外,我做网页避免使用根目录开头的超链接,这很好理解。我都是文档为起点的,比如一个/user/index.jsp页面中指向/index.jsp的链接一定是../index.jsp而从来不做成/index.jsp。这样比较灵活。
Sheepy
2003-10-17
打赏
举报
回复
我的意思:
用于登陆的页面是http://localhost/user/login.htm,用于登陆验证的servlet映射到/user/Login,所以htm的form里面action就写"Login",因为相当于在同一目录下。提交并通过验证后用RequestDispatcher重定向到/index.htm,但是这时候浏览器的URL仍然是http://localhost/user/Login,结果造成/index.htm里面的超链接错误,比如原来有个超链接指向user/login.htm,用servlet登陆后由于当前目录是user,该链接指向了user/user/login.htm,不能正常使用了。
xinshou1979330
2003-10-17
打赏
举报
回复
JSP页面中:
<%
if(request.getParameter("err")!=null)
{
String err=URLDecoder.decode(new String(request.getParameter("err").getBytes("iso8859_1"),"gbk"));
out.print(err);
}
%>
JAVA中这样写
Error = URLEncoder.encode("提交成功!");
response.sendRedirect("/cyvod/manage/actadd.jsp?err="+Error);
我这样写可以返回信息的不知道楼主是不是这个意思
yugona
2003-10-17
打赏
举报
回复
楼主的情况真是奇怪,难道你的servlet里有frame?不太可能啊|!
aku0708
2003-10-17
打赏
举报
回复
response.sendRedirect("index.jsp");可以的
blue999star
2003-10-17
打赏
举报
回复
造成主页上链接路径错误??
怎么会有错呢,不明白。ie地址栏的url和你主页的<href>连接没有直接关系。
所有的连接都用根目录作参考!!!
不是这样吗?
wellsoon
2003-10-17
打赏
举报
回复
response.sendRedirect("a.jsp");
匪六哥
2003-10-17
打赏
举报
回复
我在servlet中用response.sendRedirect("/index.jsp");就直接转向到首页,并且浏览器URL仍然是index.jsp的路径。
index.jsp前的/表示根目录!
caodavid2003
2003-10-17
打赏
举报
回复
如果你在servlet中是使用下面方法转向的,是不会错的
ServletContext sc=getServletContext();
RequestDispatcher rd=sc.getRequestDispatcher("../XXX.jsp");
//如果你的servlet不映射到user/Login,而是映射到Login的话,上面转向的参数为"/XXX.jsp"或"./XXX.jsp"
rd.forward(request,response);
加载更多回复(2)
java-
servlet
-api.doc
Servlet
被初始化之后,它已经可以处理来自客户端的
请求
,每一个来自客户端的
请求
都被描述成一个
Servlet
Request对象,
Servlet
的响应被描述成一个
Servlet
Response对象。 当客户端发出
请求
时,
Servlet
引擎传递给
Servlet
...
JavaWeb之
Servlet
的
请求
与响应
JavaWeb之
Servlet
的
请求
与响应一、
请求
1.1
请求
概述1.2 获取Http
请求
信息1.2.1
请求
行1.2.2
请求
消息头1.2.3
请求
参数1.2.3.1 实体类1.2.3.2
请求
参数的中文乱码
问题
1.2.4 用流的方式读取
请求
正文1.2.5
请求
转发二、...
JSP+
Servlet
实战视频课程
狭义的
Servlet
是指Java语言实现的一个接口,广义的
Servlet
是指任何实现了这个
Servlet
接口的类,一般情况下,人们将
Servlet
理解为后者。
Servlet
运行于支持Java的应用服务器中。从原理上讲,
Servlet
可以响应任何类型...
Servlet
转向
和重定向的区别
转向
:
请求
转发是指将
请求
再转发到其他地址,转发过程中使用的是同一个
请求
,转发的地址栏内容不变。 重定向:是指由原
请求
地址重新定位到某个新地址,原有的
请求
失效,客户端看到的是新的
请求
返回的相应结果。 ...
servlet
、filter、listener、interceptor
servlet
servlet
??????????java????,?????????????,?????????web??,????????????????????
Servlet
??????????????????,???? Web ??? 1) ????????????; 2) ???????????
Servlet
; 3)
Servlet
???????????????????????,?...
Web 开发
81,094
社区成员
341,717
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章