jsp页面跳转相对路径问题
环境用的myEclipse 想由1.jsp跳转到2.jsp,其中使用到了相对路径的知识。问题如下:
1.jsp主要代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP '1.jsp' starting page</title>
</head>
<body>
<h4>用户登录</h4>
<%out.print(path); %><br>
<%out.print(basePath); %>
<form action="<%=path %>/2.jsp" method="post">
<p><input type="submit" value="提交"></p>
</form>
</body>
</html>
注意:测试中path的值是/test,basePath的值是http://localhost:8080/test/
但现在问题是跳转不到2.jsp,点击“提交后的网址是”:http://localhost:8080/test/2.jsp,正确情况应该是http://localhost:8080/test/test/2.jsp ,
2.jsp中主要代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP '1.jsp' starting page</title>
</head>
<body>
<%
out.print(path);
%><br>
<%out.print(basePath); %><br>
<%
if("admin".equals(name) && "admin".equals(pwd)) {
session.setAttribute("user", name);
out.print(session.getAttribute("user"));
}
// response.sendRedirect("index.jsp");
%>
</body>
</html>
在线求解,谢谢各位~~
------解决方案--------------------因为已经有<base href="<%=basePath%>" />
所以本页面中的链接均相对于http://localhost:8080/test/ 而言的。
如果想提交到http://localhost:8080/test/test/2.jsp ,
那么表单的action设置为 test/2.jsp就可以了
------解决方案--------------------你这种写法叫绝对路径。。
------解决方案--------------------你的写法不对。推荐使用这样写,这样写绝对是正确的。
<form action="<%=basePath%>/2.jsp" method="post">