今天想做一个关于图片点击文字进行验证的功能,图片我放在WebContent下面的images文件夹里面,现在在src的某一个包里面的class类需要拿到这些图片,这个时候就涉及到了相对地址和绝对地址的问题。

我需要在黄色标志的文件里面拿到红色圈标记的文件地址,我应该怎么办?

这个时候一般会想到二种解决方案:

一、使用相对地址,先回退到项目名,然后再在WebContent下面进行访问。

二、使用绝对地址,利用反射直接到达访问方的class地址,然后再激进型访问。

好了,上面两种方案都是可行的,但是必须要注意一点:

不能在地址里面出现WebContent 。

我今天看了好多的博客,但是大多数都是范范而谈,好多不同的博客都是相同的文字,甚至有的代码里面作者都是相同的,

“好巧哦”

但是没有解决我的问题,我还是不知道怎么从src下面直接访问WebContent文件?

现在好好看看我的笔记,这里没有概念,只有方法。

希望日后遇到这种问题,可以不再百度。


我在代码里面使用了反射,利用绝对地址,原因是什么,代码简洁啊

此文章就从反射出发,开始寻找WebContent.。

一、此文件的class在哪里?

先放一个知识点

在这个知识点的启发下,我开始寻找我的class包

  String picPath= pictureYanzheng.class.getClassLoader().getResource("/").getPath();

“  这是一行要获取图片地址的代码 "

pictureYanzheng是我的类名,使用  pictureYanzheng.class.getClassLoader().getResource("/")就可以直接定位到此类的编译之后,也就是成为了class的时候的保存地址

我是保存在D盘里面的eclipseWork下面,但是下面的路径就不是直接的项目名,而是一些乱七八糟的东西

那我那个黄色的class也就找到了

所以现在也就了解到了为什么不能直接在地址里面使用WebContent了

你的项目都不在本来你认为的地方,那项目里面这个扑所迷离的东西怎么会老老实实的待在你可以一眼瞅到的地方呢?

二、我要访问的东西在哪里?

在刚在获得的那个地址下面,我继续寻找我的图片在编译之后会保存在哪个地方,最后发现了一个地址

可激动了

红色的圈圈就是我要的东西

这个时候有点和咱们最开始了解到了地址不太一样了,毕竟人家现在已经升级为“”编译后“啦”

比较两个地址就会发现,src下面的类在WEB-INF的class里面,而WebContent下面的东西是在类的直接下面的,所以WebContent其实再编译后充斥着项目名那个地位。

你本来以为src和WebContent是兄弟俩,最后长着长着,一个变成了另一个的爸爸,

满满的绿色

三、怎么让两个进行相互访问

这里有一个知识点

【  ../  】

代表回一个等级,从孙子辈到儿子辈

如果连用【../ ../ 】

就代表从孙子辈到爷爷辈。

所以我的地址就可以直接

String picPath= pictureYanzheng.class.getClassLoader().getResource("../../images/Amier.jpg").getPath();

"../../images/Amier.jpg"

成功从孙子到爷爷了!

成功


所以也就是说

  • class到class:非静态使用new,静态直接调用
  • class到WebContent:可以利用反射直接【. . /】连接
  • WebContent到class:最常见就是Servlet之间的传递,直接WEB配置就行

好啦,到此为止,休息。

怎么从src包中文件直接访问WebContent下面文件相关推荐

  1. 遍历指定jar包中class文件名并输出到文件中

    import java.io.*; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; i ...

  2. git 查看服务器 文件权限,访问git服务器文件权限

    访问git服务器文件权限 内容精选 换一换 开启细粒度权限时,用户通过该指导配置访问OBS权限,实现MRS用户对OBS文件系统下的目录权限控制.如需对MRS的用户访问OBS的资源进行详细控制,可通过该 ...

  3. 图解使用Win8Api进行Metro风格的程序开发二----使用文件选择器访问和保存文件

    我们紧接着上篇,这篇将介绍如何使用文件选择器访问和保存文件 -----------------------------------我是华丽的分割线--------------------------- ...

  4. src包中文件用相对路径访问WebContent下文件的问题

    目录 阐述 解决方案 新出现的问题 最终方案 阐述 在完成第五个第六个war包时,发现第5个包中的is得到的是空指针 public void init() throws ServletExceptio ...

  5. java访问服务器中的文件,java 访问远程服务器文件

    java 访问远程服务器文件 内容精选 换一换 已成功登录Java性能分析.待安装Guardian的服务器已开启sshd.待安装Guardian的服务器已安装JRE,JRE版本要求为Huawei JD ...

  6. javafx打包成的jar包中包含excel等office模板文件,如何从jar包中读取这些模板文件?

    实现的Java FX项目中有excel模板文件读取功能,idea下运行可以,但是打包的jar文件在运行时,不能识别jar文件中的excel模板文件,先看看以下代码: String filePath = ...

  7. ssh查看服务器上的文件,ssh 访问远程服务器文件路径

    ssh 访问远程服务器文件路径 内容精选 换一换 在IntelliJ上选择"项目",找到".idea"文件夹,单击右键选择"新建>文件" ...

  8. 用浏览器访问云服务器文件,浏览器访问云服务器文件

    浏览器访问云服务器文件 内容精选 换一换 安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ.exe.在本地主机和Windows云服务器上分别安装数据 ...

  9. git访问远程服务器文件,git访问远程服务器文件

    git访问远程服务器文件 内容精选 换一换 当您的裸金属服务器无法SSH登录时,我们首先建议您通过控制台远程登录.SSH登录失败时,请首先尝试能否通过管理控制台远程登录裸金属服务器.登录管理控制台.选 ...

最新文章

  1. 禅道备份功能_更新禅道燃尽图及数据备份
  2. android 三个点按钮实现_Android 常用侧滑栏实现
  3. SQL中的CASE使用方法
  4. Java 并发数据结构
  5. 解决linux系统WIFI无法使用5GHz频率的问题
  6. MySQL批处理SQL语句
  7. Jquery的validate表单验证
  8. 新路由3 高恪魔改固件+底包
  9. 流水灯程序总结:关于Crol和cror的用法
  10. 计算机安全知识策划书,安全知识竞赛策划书
  11. 成人大专计算机专业总结,成人大专自我鉴定300字大专函授【八篇】
  12. 人家不卡学历,是自己真的没能力
  13. 川土微电子|全系列集成隔离电源的隔离器芯片
  14. HashMap源码阅读笔记
  15. 推荐几本学习Go语言的书
  16. 光学双缝单缝公式应用分析
  17. 矢量数据与卫星地图叠加效果最完美的解决方案
  18. 新版Free手机、PC、平板、笔记本四端网站缩略展示图在线一键生成网站源码
  19. 翻译文章 | Just gopher it!无回显SSRF升级为RCE
  20. AMD公布处理器架构 压路机将取代推土机

热门文章

  1. 社区团购微信营销裂变最新实战攻略
  2. NC65 报销单使用银企直联网银支付后,银行的电子回执单的收款人开户行跟报销单的收款对象的开户行不一致
  3. 重庆市电信公司一百二十年简史
  4. LaTeX+Vim 数学笔记
  5. imgaug数据增强实例
  6. java 时间 年月日时分秒格式转换_linux下 怎么将年月日时分秒格式转换为秒
  7. flask 数据库操作入门教程(一把梭)
  8. HDU-1848--博弈SG函数模板题
  9. 数组如何给数组赋值呢。嗯,看似小问题。
  10. 【JAVA】Java的boolean 和 int互相转换 ——Java的true、false和1、0之间的相互转化