JSP界面中引用相对路径问题
目的:为了解决网页中的相对位置与工程项目的相对位置不一致问题而导致的页面跳转错误
- 有一个work工程,其webroot下有jsp文件夹,里面包含有login.jsp和register.jsp
- 如果在jsp页面中使用
<a href="jsp/register">注册</a>
此时网页中的url地址为localhost:8080/work/jsp/login.jsp - 当点击注册链接的时候,url将变更为localhost:8080/work/jsp/jsp/register.jsp,出错
常规解决方案如下
/**
*jsp页面中
*/
<%@ page language="java" import="java.util.*,com.zwpzw.qq.User"
pageEncoding="UTF-8" isELIgnored="false"%>
//isELIgnored的标签是为了声明EL表达式的解析方式,如果为true,则${...}取值方式将直接输出${...}
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
//利用base标签进行声明相对位置
<base href="<%=basePath%>" />