spring之路径跳转(一)

在前台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%>"> 

其中最重要的就是:

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<base href="<%=basePath%>"> 

那么这几句代码分别代表什么意思呢?

以http://localhost:8080/mysystem/user/login  为例


reques.getContextPath()就是得到项目名称,比如说mysystem

request.getScheme()就是得到协议http

request.getServerName()就是得到显示自己的主机名或者服务器名,就是本例的localhost

request.getServerPort()就是得到端口号8080

再加上path就是一个完整的项目路径


这三句话在项目中的唯一作用就是提供一个基地址,就是上面所说的,如果jsp页面中有链接的话,就是以这个基地址为基础拼接成完整的url地址

如果没有那三句话,系统会默认在当前的地址基础上进行url的拼接和跳转,比如说如果在http://localhost:8080/mysystem/user/users中有一个链接 href="xiaoming.",那么url就会在本页面的基础上修改为http://localhost:8080/mysystem/user/xiaoming并进行跳转。如果没有href,那么按钮的默认url还是本页面的url,一般重载在@controller中使用。但如果有了三句话,无论什么页面中有href,都会以http://localhost:8080/mysystem/为基地址,导致无法依据本页面跳转,只能将href写成href="user/xiaoming"。

在spring项目中,无论有没有三句话,当在href中写相对地址时,都不能在最前面写斜杠/,比如href="/user/xiaoming"会导致本页面完整的url没有项目名mysystem,使得页面无法跳转。


在项目中修改url地址进行测试时,不用重新启动服务器,只需重新刷新网页即可。

,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值