在你的servlet里这样写:
try {
if (rs != null && rs.next()) { out.print(
"<SCRIPT LANGUAGE='JavaScript'>location='../index.jsp';</SCRIPT>");
} else
out.print(
"<SCRIPT LANGUAGE='JavaScript'>location='../login.jsp?enter=errUser';</SCRIPT>");
} catch (Exception e) {
System.out.print("login.java:登录错误:" + e);
}
try {
if (rs != null && rs.next()) { out.print(
"<SCRIPT LANGUAGE='JavaScript'>location='../index.jsp';</SCRIPT>");
} else
out.print(
"<SCRIPT LANGUAGE='JavaScript'>location='../login.jsp?enter=errUser';</SCRIPT>");
} catch (Exception e) {
System.out.print("login.java:登录错误:" + e);
}
ServletContext sc=getServletContext();
RequestDispatcher rd=sc.getRequestDispatcher("../XXX.jsp");
//如果你的servlet不映射到user/Login,而是映射到Login的话,上面转向的参数为"/XXX.jsp"或"./XXX.jsp"
rd.forward(request,response);
怎么会有错呢,不明白。ie地址栏的url和你主页的<href>连接没有直接关系。所有的连接都用根目录作参考!!!
不是这样吗?
我用的是RequestDispatcher:
RequestDispatcher dispatcher=request.getRequestDispatcher("/index.jsp");
dispatcher.forward("request,response");
这样的话可以把原来的request里面的参数什么的一起给转向后的页面。但是URL还是servlet的URL。另外,我做网页避免使用根目录开头的超链接,这很好理解。我都是文档为起点的,比如一个/user/index.jsp页面中指向/index.jsp的链接一定是../index.jsp而从来不做成/index.jsp。这样比较灵活。
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);我这样写可以返回信息的不知道楼主是不是这个意思
用于登陆的页面是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,不能正常使用了。
所以说链接都用“/”开头是不上品的,必须在/后面跟上module的路径。
用sendRedirect()确实可以让URL变成转向后的地址,但是不会把request里面的东西一起传过去,用forward()可以传递request,但是浏览器认为URL还是servlet的URL,有可能造成网页里链接不对,如果它们不是以“/”开头,而是以当前路径作参考。
所以!请问!商业项目中是怎么做的!Sun是怎么做的!IBM是怎么做的!到底应该是怎么做的!!!
用../xxx.jsp不要捣浆糊好不好?你这样servlet转向以后可以用了,但是我直接访问/index.html的时候怎么办?根目录的上一层是什么?..指向什么?
因为要正常访问index页面必然要通过一个servlet转向!!!
通过login页面经过servlet验证转象到index
如果直接访问index就会有问题出现,,如果index再通过一个servlet进行数据库操作则问题更大
把代码全写在 jsp页面里是不会有这样的问题的!!!
不知道有什么方法可以很好的解决问题!!!
事实证明这是一个问题呀!楼上的也碰到了呀!