星星之火-Servlet中使用getRequestDispatcher转发到页面失去样式等问题
本文最后更新于:December 3, 2021 pm
积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里,不积小流无以成江海。齐骥一跃,不能十步,驽马十驾,功不在舍。面对悬崖峭壁,一百年也看不出一条裂缝来,但用斧凿,能进一寸进一寸,能进一尺进一尺,不断积累,飞跃必来,突破随之。
目录
今天在弄验证码生成后的显示效果时,在Servlet中处理后转发遇到的一些问题。主要是转发后页面的样式、链接等资源失效的原因和解决办法。下面是我在Servlet中转发到JSP文件中遇到的,在其他页面等同。
原因
当我们在引用外部样式和js时,我们在后台处理完数据后,转发或重定向到jsp页面时就会出现样式丢失的情况,我们通过引用时写的是相对路径
,而不是绝对路径
。在servlet中转发时css和图片的路径变成相对于这个servlet的相对路径而非相对于web项目的路径了。
简单说就是我们的URL的问题,我们写成了相对路径,在转发后,相对的就不是之前的那个目录了,所以样式之类的资源就丢失了。所以应该写成绝对路径。
解决办法
在路径上加上当前项目的名称即可。如:
1 |
|
其中,/demo1_war
是我当前的项目名称。项目名称也可以动态获取,如下:
1 |
|
这个等于上面的效果。同理,也可以用于其他的路径上,如:
1 |
|
当然了,解决办法不止这一种,其他方法可自行百度。
本文作者: 墨水记忆
本文链接: https://tothefor.com/DragonOne/3762248233.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!