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网页中 
    - 。。。
  • 相关阅读:
    Nginx入门使用
    下载pcre-8.35.tar.gz
    后端传到前端时间问题
    Layui弹出层分割线
    CSS动画实例:图文切换
    JavaScript小游戏实例:简单的键盘练习
    JavaScript小游戏实例:统一着色
    JavaScript动画实例:炸开的小球
    JavaScript动画实例:烟花绽放迎新年
    JavaScript动画实例:圆点的衍生
  • 原文地址:https://www.cnblogs.com/jimisun/p/9418247.html
Copyright © 2011-2022 走看看