zoukankan      html  css  js  c++  java
  • Servlet -- 跳转到页面后的绝对路径与相对路径的问题

    我们在使用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 的.

  • 相关阅读:
    浅谈线段树
    浅谈KMP
    20200729线上模拟题解
    20200727线上模拟题解
    声明
    tarjan--割点,缩点
    20201029模拟
    高精模板
    二分图--二分图的几种模型
    树的直径与树的重心
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5244410.html
Copyright © 2011-2022 走看看