我们在使用servlet或其它框架,从后台跳转到视图层的时候。常会遇到这种情况,CSS和JS文件失效了,可是假设通过网址直接訪问JSP是没问题的。

这就是由于绝对路径和相对路径导致的。

绝对路径。就是我们通过一个完整的地址去訪问,比方http:localhost:8080/program……

相对路径,比方/program/jsp/a.jsp,这就是想相对路径。

这里我们来看servlet的两种跳转forward和redirect机制,http://blog.csdn.net/gaopeng0071/article/details/9838041


以下引用:http://blog.csdn.net/wym19830218/article/details/5503533/

JSP中用相对路径引用JS,CSS文件的三种情况

第一种情况 最常见的情况

一个tomcat上都跑多个project, 用project名来区分

由于我的的URL是 :http://localhost/project名 /home/index.jsp

多了一个project名,所以要加 <%=request.getContextPath() %>

如:

写<%=request.getContextPath() %>太麻烦。能够在每个jsp文件顶部增加以下内容后,

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

第二, 直接訪问jsp文件

真实项目中, 一个tomcat上要是也跑了多个project, 并用IP来区分

url 是这种: http://localhost/home/index.jsp 注意这里,是直接訪问JSP文件(jsp文件不在web-inf下。能够直接訪问),不是servlet也不是struts 。

test2.js 与index.jsp 放在同一目录下。以下用相对路径来引入JS文件 是OK 的:

index.jsp能够找到test2.js文件

第三种情况: servlet转发到jsp(jsp在web-inf下。必须用servlet或action訪问)

在第二情况的基础上,一个tomcat上要是也跑了多个project, 并用IP来区分。

我们訪问的是servlet 或是struts的action , 再转发到 index.jsp

url 是: http://localhost/*.do

url 是: http://localhost/index.action

这里不是訪问JSP文件了

以下是OK 的.

Servlet -- 跳转到页面后的绝对路径与相对路径的问题的更多相关文章

  1. selenium中webdriver跳转新页面后定位置新页面的两种方式

    刚刚在写Python爬虫的时候用到了selenium , 在跳转新页面时发现无法定位新页面 , 查找不到新页面的元素 一番查询后得到了解决方法 , 便记录下来备忘 , 也与大家分享 # 页面跳转代码. ...

  2. vue跳转新页面后回到顶部

    全部页面的话就在mian.js中设置或者 单独的某个页面就在页面加载之前设置 单独设置需变为this.$router router.afterEach((to,from,next)=>{ win ...

  3. Servlet跳转到JSP页面后的路径问题相关解释

    一.现象与概念 1. 问题 在Servlet转发到JSP页面时,此时浏览器地址栏上显示的是Servlet的路径,而若JSP页面的超链接还是相对于该JSP页面的地址且该Servlet和该JSP页面不在同 ...

  4. servlet跳转页面后图片不显示

    我是用图片的相对路径,原先直接打开jsp的话图片是可以正常显示的,通过servlet跳转之后图片就显示不出来了 后来发现是图片路径的问题, 我是将图片放在WebRoot里面自己创建的img中,原先图片 ...

  5. J2EE项目中,servlet跳转到相应的JSP页面后,JSP页面丢失了样式效果

    原因: js和css的引用路径是相对路径.跳转后路径改变. 解决方法: 先在head标签中加入一下代码 <% String path = request.getContextPath(); St ...

  6. Servlet、JSP中页面跳转的方式

    一.Servlet:当然,在servlet中,一般跳转都发生在doGet, doPost等方法里面.1)  redirect 方式response.sendRedirect("success ...

  7. JSP、Servlet中的相对路径和绝对路径 页面跳转问题

    转自:http://blog.csdn.net/wym19830218/article/details/5503533/ 1.JSP.Servlet中的相对路径和绝对路径 前提:假设你的Http地址为 ...

  8. 怎么给当前点击的a标签添加一个样式(跳转页面后)

    怎么给当前点击的a标签添加一个样式(跳转页面后): 方法1. 用cookie记录这个打开的序列号,然后页面在跳转的时候在读出来.方法2. 循环a的链接,然后与location.href去比对,如果相同 ...

  9. 类似智能购票的demo--进入页面后默认焦点在第一个输入框,输入内容、回车、right时焦点自动跳到下一个,当跳到select时,下拉选项自动弹出,并且可以按上下键选择,选择完成后再跳到下一个。

    要实现的效果:进入页面后默认焦点在第一个输入框,输入内容.回车.right时焦点自动跳到下一个,当跳到select时,下拉选项自动弹出,并且可以按上下键选择,选择完成后再跳到下一个. PS:自己模拟的 ...

随机推荐

  1. this的用法this.name=name 这个什么意思

    public Employee(string name, string alias){ // Use this to qualify the fields, name and alias: this. ...

  2. 【算法】超大数组去重(Java语言实现)

    要求时间复杂度和空间复杂度尽可能低! 情景一:需要返回的是不重复的数组. 情景二:只需要返回不重复的元素个数.

  3. 在windows 8.1 64位配置python和opencv

    之前在linux下安装python和opencv及相关的库,都可以直接命令行操作.最近需要在windows下配置一下,查了一些资料,发现网上有很多关于python和opencv的配置,但由于不同版本问 ...

  4. Qt 的线程与事件循环——可打印threadid进行观察槽函数到底是在哪个线程里执行,学习moveToThread的使用)

    周末天冷,索性把电脑抱到床上上网,这几天看了 dbzhang800 博客关于 Qt 事件循环的几篇 Blog,发现自己对 Qt 的事件循环有不少误解.从来只看到现象,这次借 dbzhang800 的博 ...

  5. hdu--1800--字典树&&其他

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1800 根据题意可知:意思是有若干个飞行员,需要在扫帚上练习飞行,每个飞行员具有不同的等级,且等级高的飞 ...

  6. Babelfish(二分)

    Babelfish Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 37238   Accepted: 15879 Descr ...

  7. Oracle 11g新特性虚拟列分区

    如今有个需求:一个单据表要依照月份来分区.假设是在Oracle 10g上,仅仅能再加一个字段. 在Oracle 11g以后就不一样了.能够用虚拟列处理. SQL> select * from v ...

  8. ios开发之再谈设计模式

    子曰:设计模式这东西,没有好坏之分,只有合适于不合适 天去面试很有意思,技术考官指着最后一道二选一的编程题说,这是昨天晚上专门为你新加的.当时我听后倍感惭愧. 虽然当时在纸上把大概思路和设计说了下.为 ...

  9. 安卓activity捕获返回button关闭应用的方法

    安卓activity捕获返回button关闭应用的方法 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { //按下键盘 ...

  10. 如何判断是否按下Ctrl键 - C#

    可根据Control.ModifierKeys来判断用户是否按下了组合键. if ((Control.ModifierKeys & Keys.Control) == Keys.Control) ...