zoukankan      html  css  js  c++  java
  • 在JavaWeb项目中处理静态文件或动态链接拼接网站地址的最优处理方案

    在开发网站时候我们会遇到下面问题?

    •  - 在引用网页中引用js和css或者动态的Servlet的时候我们是写绝对路径还是相对路径?
    •  - 如果写相对路径吧,上线偶尔会报404,还要手动去拼接绝对路径
    •  - 如果写绝对路径吧,你在本地写的时候肯定的是localhost:8080/xxx/xxx,项目上线的时候你又要把网页中的这个替换为你的上线域名,体验很糟糕

    我们怎么解决这样的问题呢?

    我们可以在网页中使用Request对象来获取网页中的各种地址信息。

    - request.getServletPath();  获取当前网页的地址 
    - request.getScheme(); 获取协议 
    - request.getServerName();  获取域名 
    - request.getServerPort(); 获取端口号 
    - request.getContextPath();  获取项目名称 

    下面我们来拼接成一个通用的获取项目地址的变量,让在jsp网页中随处都可以使用它啦

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

    获取到的就是下面这样的地址

    basePath:http://localhost:8080/WebDemo/   

    我们可以在jsp页面写入下面代码

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

    在引用Js和css或者需要拼接路径的时候我们可以直接使用basePath这个变量,例如

    <link rel="stylesheet" href="<%=basePath %>resources/assets/css/font-xxx.min.css" />
     <link rel="stylesheet" href="<%=basePath %>resources/assets/css/xxx.min.css" /> 
    <link rel="stylesheet" href="<%=basePath %>resources/assets/css/xxx.min.css" /> 

    当然我们每一次都需要在jsp文件编写下面的代码吗?那可真的是太复杂了,我们可以直接在web.xml中稍微配置一下,就可以啦,下面看看怎么来操作。

    1. 创建一个commons.jsp文件,文件写入下面代码
     <%@ page contentType="text/html;charset=UTF-8" language="java" %>
     <% String path = request.getContextPath();     
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; %>
    1. 在web.xml进行配置,使所有的jsp网页都能自动的引用commons.jsp这个网页(ps:引入这个网页当然就能使用basePath这个变量喽~~直接就能使用啦)
     <jsp-config>         
      <jsp-property-group>
       <url-pattern>*.jsp</url-pattern>
       <include-prelude>/commons.jsp</include-prelude>
    </jsp-property-group>
    </jsp-config>

    注意:<include-prelude>/commons.jsp</include-prelude>标签中的jsp文件改成你的commons.jsp文件的存放地址

    不适用这种方案的情况

    - 前后端分离的项目 
    - Html网页中 
    - 。。。
  • 相关阅读:
    geoserver发布地图服务WMTS
    geoserver发布地图服务WMS
    geoserver安装部署步骤
    arcgis api 3.x for js 入门开发系列十四最近设施点路径分析(附源码下载)
    arcgis api 3.x for js 入门开发系列十三地图最短路径分析(附源码下载)
    cesium 之自定义气泡窗口 infoWindow 后续优化篇(附源码下载)
    arcgis api 3.x for js 入门开发系列十二地图打印GP服务(附源码下载)
    arcgis api 3.x for js 入门开发系列十一地图统计图(附源码下载)
    arcgis api 3.x for js 入门开发系列十叠加 SHP 图层(附源码下载)
    arcgis api 3.x for js入门开发系列九热力图效果(附源码下载)
  • 原文地址:https://www.cnblogs.com/jimisun/p/9418247.html
Copyright © 2011-2022 走看看