1、问题

今天学了springmvc的jsp页面传值

<a href=”${pageContext.request.contextPath }/detail1?id=10001” >通过参数传递ID</a>

<a href=”${pageContext.request.contextPath }/detail2/10001.html” >路径变量@pathvariable在路径上传递ID</a>

通过参数传递数据,数据会直接出现在地址栏上,信息暴露不安全。而通过路径变量可以加上后缀,相对安全一点。
在这里插入图片描述
这是代码结构,jt.jsp传参进入detail2这个controller,controller在控制台输出jsp传过来的参数后重定向到jt.jsp(jt.jsp中有引用到css、js和图片)。运行程序后,重定向的时候发现控制台成功打印jsp传进的参数,但是重定向后,页面的样式和图片丢失了。
在这里插入图片描述
在springmvc的配置文件里有配置静态资源访问
在这里插入图片描述
查看浏览器控制台发现,找不到样式文件和图片。文件的路径前多了/testpathvariable找不到文件
在这里插入图片描述

2、解决方法

在网上找到的问题原因是因为引用静态文件的时候使用了相对路径。
在这里插入图片描述
解决方法就是把引用修改为绝对路径。

1
2
3
<link rel="stylesheet" href="${pageContext.request.contextPath }/css/bootstrap.min.css" type="text/css" />
<link rel="stylesheet" href="${pageContext.request.contextPath }/css/jt.css" type="text/css" />
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jt.js" ></script>