一个关于struts的页面跳转问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 12:49:40
1、index.jsp代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%
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>test_servlet</title>
</head>
<body>
<H1>测试jsp</H1> <br>
<FORM action= "qurey.do" method="post">
<input type="text" name="username"><br>
<input type="submit" value="提交"><br>

</FORM>
<A href = "a/b/b.jsp">跳转b.jsp</

要理解这个问题首先懂绝对路径和相对路径的知识。
你所说的问题就是相对路径的问题。
既然叫相对路径,就有一个参照基准,是相对于这个基准的路径。
jsp中可以通过“<base href="basePath"> ”来设定当前页面的基准路经。如果不设定的话,就用会以当前资源的路径作为基准路径。
你的b.jsp中没有设定“<base href="basePath">”,那么就会以当前资源的路径作为基准路径。当提交action跳转到页面b时,基准路径就是工程根目录;当直接访问b.jsp页面时,基准路径就是b.jsp所在的目录。
所以两种情况下通过链接<a href= "../a.jsp">所请求的资源是不一样的。也就有可能出现能跳转过去和不能跳转过去两种结果。