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

- 在引用网页中引用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页面写入下面代码

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

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

创建一个commons.jsp文件,文件写入下面代码

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

在web.xml进行配置,使所有的jsp网页都能自动的引用commons.jsp这个网页(ps:引入这个网页当然就能使用basePath这个变量喽~~直接就能使用啦)

*.jsp

/commons.jsp

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

不适用这种方案的情况

-前后端分离的项目-Html网页中- 。。。

java动态拼接请求_在JavaWeb项目中处理静态文件或动态链接拼接网站地址的最优处理方案...相关推荐

  1. java项目配置过滤器_在JavaWeb项目中如何正确的使用Filter过滤器

    在JavaWeb项目中如何正确的使用Filter过滤器 发布时间:2020-11-11 17:12:00 来源:亿速云 阅读:79 作者:Leah 这期内容当中小编将会给大家带来有关在JavaWeb项 ...

  2. mybatis手动切换数据库_在Spring项目中使用 Mybatis 如何实现动态切换数据源

    在Spring项目中使用 Mybatis 如何实现动态切换数据源 发布时间:2020-11-17 16:20:11 来源:亿速云 阅读:108 作者:Leah 这篇文章将为大家详细讲解有关在Sprin ...

  3. java web项目 相对路径怎么写_理解JavaWeb项目中的路径问题——相对路径与绝对路径...

    背景:html 在刚开始学习javaweb,使用servlet和jsp开发web项目的过程当中,一直有一个问题困扰着我:servlet 和 jsp 之间相互跳转,跳转的路径应该如何书写,才能正确的访问 ...

  4. canvas java 上传截图_在Vue项目中使用html2canvas生成页面截图并上传

    使用方法 项目中引入 npm install html2canvas html代码 //html代码 js代码 // 引入html2canvas import html2canvas from 'ht ...

  5. java手机验证码登陆_在Web项目中手机短信验证码实现的全过程记录

    这篇文章主要给大家介绍了关于在Web项目中实现短信验证码的全过程记录,文中通过示例代码介绍的非常详细,在文末跟大家提供了源码下载,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧. 前言 最近在做 ...

  6. java 强类型 弱类型_强类型,弱类型,静态类型,动态类型的区别

    强.弱类型 强类型strongly typed: 如果一种语言的所有程序都是well behaved--即不可能出现forbidden behaviors,则该语言为strongly typed. 弱 ...

  7. java web图片旋转_修正web项目中图片旋转方向

    # 使用 imagemagick 旋转 查看照片 EXIF 信息,Exif 中的图片旋转信息储存在``Orientation``中. ``` identify -verbose xxx.jpg ``` ...

  8. java 读取mysql日志_如何在MySQL中查看日志文件?

    我已经读过Mysql服务器创建了一个日志文件,它记录了所有活动 - 比如何时执行查询和执行什么查询 . 谁能告诉我我的系统中存在哪些内容?我怎么读呢? 基本上,我需要使用不同的输入备份数据库[两个日期 ...

  9. maven没有resource文件夹_maven项目中没有resource文件夹的问题

    之前使用eclipse创建maven项目,文件夹都是建好的,这几次创建,都没有resource文件夹,需要手动创建resource. 现象描述 在eclipse中,创建maven项目有两种方式: 一种 ...

最新文章

  1. 解决 Maven 依赖冲突的好帮手,必须了解一下!
  2. docker desktop一直starting不变化
  3. 【Linux】工作管理
  4. python-22 eval json pickle shelve 之间差别
  5. json tostringfiy_JS学习笔记 : 类型转换之「抽象值操作」
  6. python基础:抓取博客网页上的图片并且保存的例子
  7. 服务器 设置 将 Tomcat 注册 到系统服务 及使用方法
  8. 视频教程-思科入门CCNA初级网络工程师视频课程-网络技术
  9. Anthony Zee《Quantum Field Theory in a Nutshell (2nd)》(徐一鸿《简明量子场论(第二版)》)中文目录
  10. 升级到Tomcat9之后js中文乱码解决办法
  11. 广告投放策略及数据分析
  12. 永不服输的Java之路---重学Java (第一章)
  13. conda查看版本包命令
  14. iframe是什么?html中iframe标签的用法详解
  15. 解决K8S集群kubelet故障:Failed to update stats for container nable to determine device info for dir
  16. 我用Python抓取了自如上所有的租房信息,随心所欲的选房
  17. linux搭建云存储,搭建nextcloud私有云存储网盘
  18. 基因表达半衰期 | mRNA Half-Life
  19. 以阿里为例,详解SRE的团队建设与职能分工
  20. 计算机屋内设计主要是学什么的,2021建筑室内设计主要学什么 主要课程有哪些...

热门文章

  1. Visual Stutio中win32控制台应用程序、win32项目、MFC项目的区别:
  2. 计算机专业必须读的经典书籍
  3. 计算机网络ipv4到ipv6怎么实现,论计算机网络协议IPV4到IPV6的过渡策略|房屋搬迁过渡协议...
  4. Java基础笔记 – 枚举类型的使用介绍和静态导入
  5. AUTOSAR从入门到精通100讲(二十)-AUTOSAR通信篇—CanIf模块
  6. 干货:B端产品经理,快速成长的密码
  7. kafka 不同分区文件存储_大白话 + 13 张图解 Kafka
  8. BurpSuite插件 -- Struts2-RCE
  9. c语言 linker error,[Linker error] undefined reference to `prinf'的问题!
  10. linux中vi过滤,vim高级编辑(一)