重新学javaweb---路径专题

2023-10-31

绝对路径:以/开头的路径就叫做绝对路径,绝对路径在相对于的路径上直接拼接得到最终的路径
相对路径:不以/开头的路径就叫做相对路径,相对路径基于当前所在的路径计算的到最终的路径
硬盘路径:以盘符开头的路径就叫做硬盘路径.是哪个路径就是哪个路径.没有相对于谁的问题

虚拟路径: –写虚拟路径时都使用绝对路径
如果路径是给浏览器用的,这个路径相对于虚拟主机,所以需要写上web应用的名称
如果路径是个服务器用的,这个路径相对于web应用,所以可以省写web应用的名称
< a href=”/Day04/…..”>
< form action=”/Day04/…”>
< img src=”/Day04/….”>
response.setHeader(“Location”,”/Day04/….”);
response.setHeader(“refresh”,”3;url=/Day04/…”);
response.sendRedirect(“/Day04/…”);
request.getRequestDispathce(“/index.jsp”).forward();
request.getRequestDispathce(“/index.jsp”).include();

Servlet可以通过两个两种方式得到RequestDispatcher对象:

  • 调用ServletContext的getRequestDispatcher(String path)方法,path参数指定目标组件的路径
    path参数必须为绝对路径;绝对路径,就是以符号“/”开头的路径,“/”表示当前Web应用的URL路口
  • 调用ServletRequest的getRequestDispatcher(String path)方法,path参数指定目标组件的路径
    path参数既可以为绝对路径,也可以为相对路径;相对路径,就是相对于当前Servlet组件的路径,不以“/”开头

    真实路径: –写真实路径时都使用相对路径
    根据原理,具体问题具体分析

    servletContext.getRealPath(“config.properties”);//–给一个相对于web应用目录的路径
    classLoader.getResource(“../../config.properties”);//–给一个相对于类加载目录的路径

    File file = new File(“config.properties”);//–相对于程序的启动目录
    new InputStream(“config.properties”);//–相对于程序的启动目录
    前两个加/也行 后两个加/就到该盘的根目录去找了

这里写图片描述

Class.getResource(String path)

path 不以’/’开头时,默认是从此类所在的包下取资源;以’/’开头时,则是从ClassPath根下获取;

同样用法的还有Class.getResource和Class.getResourceAsStream。
Class.getClassLoader().getResource(String path)

path 不能以’/’开头并且它是从ClassPath根目录下获取;

同样用法的还有Class.getClassLoader().getResource和Class.getClassLoader().getResourceAsStream。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

重新学javaweb---路径专题 的相关文章

  • JavaWeb案例:实现注册和登录功能

    业务需求分析 在实际开发中 通常会有专门的人去跟客户进行沟通从而了解客户需要什么样的系统 之后由专业的美工将要做的系统以图片的形式表现出来 客户确认后作出一些静态的html demo页面 然后由软件开发人员创建相关数据库 编写代码将该静态页
  • 使用idea创建java web项目

    创建web项目有很多方法 就说一个最简单的方法吧 创建一个java项目 点击创建 右击项目选择添加框架支持 勾选上web应用程序 点击确定 再点击当前文件 编辑配置 点击加号 选择Tomcat服务器 本地 也可以选择其他服务器 点击配置 选
  • javaWeb数据库连接池,过滤器和监听器

    数据库连接池 JDBC 1 什么是数据库连接池 是一个数据库的工具 能够分配 管理和释放数据库连接 它允许应用程序重复使用一个现有的数据库连接 而不是再重新建立一个 常见数据库连接池 C3P0 是一个开放源代码的JDBC连接池 它在lib目
  • JSP&EL表达式&MVC&三层结构综合案例

    文章目录 JSP 1 JSP 概述 2 JSP 快速入门 2 1 搭建环境 2 2 导入 JSP 依赖 2 3 创建 jsp 页面 2 4 编写代码 2 5 测试 3 JSP 原理 4 JSP 脚本 4 1 JSP 脚本分类 4 2 案例
  • Java的反射技术(Class类,Constructor类,Method类, Field类)

    Java编码时知道类和对象的具体信息 此时直接对类和对象进行操作即可 无需反射 如果编码时不知道类或者对象的具体信息 此时应该使用反射来实现 为什么要使用反射 反射就是把Java类中的各种成分映射成一个个的java对象 例如 一个类有 成员
  • javaWeb项目中分页和模糊查询技术

    分页 需求 登录成功后 展现全部时 出现分页 思路 前端 1 设置分页按钮 以及分页数据 页码 总页数 总条数 2 设置分页请求 即点击上一页 下一页时发请求 后端 3 web xml映射 映射到Servlet能接收请求 4 Dao查询分页
  • JavaWeb-13-Tomcat&Servlet学习笔记

    JavaWeb 13 Tomcat Servlet Web核心模块 1 web相关概念回顾 1 1软件架构 1 2资源分类 1 3网络通信三要素 2 web服务器软件 2 1常见的java相关的web服务器软件 2 2Tomcat web服
  • 【JavaWeb】Thymeleaf的简介与使用

    Thmeleaf MVC 为什么需要MVC 我们之前在书城项目第二阶段做登录的时候 曾经提出过优化登录失败后的处理 虽然说可以实现在登录失败之后跳转回到登录页面 并且展示失败信息 但是代码实在是太恶心了 根本没法维护 所以我们需要将视图展示
  • 数据库设计DDL

    DDL 数据定义语言 用来定义数据库对象 数据库 表 DDL 数据库操作 查询 查询所有数据库 show databases 查询当前数据库 select database 使用 使用数据库 use 数据库名 创建 创建数据库 create
  • Web后端开发(请求响应)上

    请求响应的概述 浏览器 请求 lt HTTP协议 gt 响应 Web服务器 请求 获取请求数据 响应 设置响应数据 BS架构 浏览器 服务器架构模式 客户端只需要浏览器 应用程序的逻辑和数据都存储在服务端 维护方便 体验一般 CS架构 客户
  • JSP、JSTL标签

  •  使用jsp实现留言板功能

    使用jsp实现留言板功能 一 开发环境 本项目使用eclipse MySQL8 0进行开发 在开发的过程中使用了一个jar包 mysql connector java 8 0 16 jar 点我下载 二 项目结构 1 index jsp
  • errcode = 40163; errmsg = "code been used"(提供一种解决思路)

    最近在做微信开发 就在开发完毕测试的时候 遇到一个大问题 每次新用户进入的时候就报错 错误基本上就是code been used 我去百度了好久 没有找到合适的方案 后来我仔细的看了一下微信开发文档 终于解决了 注 该方法不一定对所有人有效
  • 利用MVC做一个 常见的管理系统

    登陆的部分 gt 数据库 gt 表 admin id name pass regtime 表与类的映射关系 基于面向对象 转换成对象的操作 gt 登陆页面
  • JavaWeb购物商城

    系统前台 前台用户操作 账号 test密码 test 登录页面 商品浏览 商品详情 购物车 订单页面 系统后台 后台用户操作 账号 admin密码 admin 用户登录页面 后台主页 添加商品 编辑商品 删除商品 数据库 部分代码 logi
  • ie11对象不支持此属性和方法 ie11的缓存问题

    更改eclipse的js代码 在ie11上调试 发现调用新更改的方法 在ie11的console输出里 一直提示 对象不支持此属性和方法 点击右上角设置图标 然后点击Internet选项 在常规选项卡里的 浏览器历史记录 点击设置 在弹出的
  • IntelliJ Idea 常用快捷键 列表(实战终极总结!!!!)

    自动代码 常用的有fori sout psvm Tab即可生成循环 System out main方法等boilerplate样板代码 例如要输入for User user users 只需输入user for Tab 再比如 要输入Dat
  • WEB-7-多线程

    多线程 一 背景 二 认识线程 Thread 1 理解 2 进程和线程的区别 高频面试题 3 使用代码创建多线程 三 线程的相关操作 1 创建线程 1 方法一 继承 Thread 类 2 方法二 实现 Runnable 接口 3 其它方法
  • Spring容器和应用上下文理解

    有了Spring之后 通过依赖注入的方式 我们的业务代码不用自己管理关联对象的生命周期 业务代码只需要按照业务本身的流程 走啊走啊 走到哪里 需要另外的对象来协助了 就给Spring说 我想要个对象 于是Spring就很贴心的给你个对象 听
  • form表单中使用fileUpLoad上传文件

    在最近的项目中 需要对用户的头像就行上传 这里了解到使用appche的 大家可自行到mvn库搜索jar包名进行下载 这里需要注意的是代码中对参数的读取 正常情况下我么使用getparameter方法进行读取表单数据 但是因为在form中我们

随机推荐

  • 两种办法解决 make: Warning: File “xxx“ has modification time yyy s in the future 的问题

    一 引言 最近在工作中 在本地将代码文件上传到远端服务器 在远端服务器进行 make 编译的时候 会报这样的错 make Warning File xxx has modification time yyy s in the future
  • 2021年7月19日--7月25日(调试Osgearth33+抄写osg/osgearth源码,共20小时,合计829小时,剩9171小时)

    继续按计划进行 其他随意 完成情况 除抄写osg osgearth源码最后计算外 周一 1 整合gis引擎 1小时 2 网络视频教程1小时 合计2小时 周二 18 40 19 20 osgEarth33调试一节 40分钟 19 36 20
  • 人生,天命,自己

    前提摘要 我现在刚刚毕业 正在找工作 疯狂投简历 目前还没有消息 但是我最近有一个想法 在这个想法之上正在研究一个关于文档关联的新东西 简单来说就是利用相关性算法 然后 使用py代码来实现文档关联 为什么我会公开说出我的研究 或者是我发表关
  • [C++]高效使用c++11--理解auto类型推导

    推导类型 1 理解类型推导 auto的推导方式和template是一样的 所以我们首先来介绍template是如何推导类型的 template
  • pip:python -m pip install --upgrade pip 解决办法

    在使用 pip 安装 Flask 的时候 命令行报错 You are using pip version 9 0 1 however version 21 2 4 is available You should consider upgra
  • Qt - 高级网络操作 HTTP/FTP

    欢迎转载 请注明出处 https blog csdn net qq 39453936 spm 1010 2135 3001 5343 原文链接 https blog csdn net qq 39453936 article details
  • Redis的5大类型

    Redis的5大类型 Redis是单进程 单线程 单实例并发很多的请求 如何变得很快的呢 Redis默认有16个库 redis cli raw进行当前编码的匹配 底层是按照字节存储的 二进制安全 Redis的5大类型 1 String 包含
  • 再见Xshell,这款免费开源的终端工具真香~

    作为一名后端开发 在日常工作中肯定是要和服务器打交道的 自然也就需要使用终端工具 在 Windows 系统的电脑上我一直是使用 Xshell 以前还挺好用的 后面这款工具竟然把 ftp 功能给剥离出去了 单独搞了个 Xftp 这让我使用起来
  • 4.1-支持向量机

    文章目录 一 铰链损失 Hinge loss 二 核方法 Kernel Method 2 1 径向基函数核 Radial Basis Function Kernel 2 2 Sigmoid Kernel 三 支持向量机相关方法 SVM re
  • PyTorch学习日志_20201030_ Autograd 包

    日期 2020 10 30 主题 PyTorch入门 内容 根据PyTorch官方教程文档 学习PyTorch中所有神经网络的核心 Autograd 包的基础操作 主要与张量相关 根据自己的理解和试验 为代码添加少量注解 具体代码如下 fr
  • TCP往返传输时间(RTT)的估计

    TCP往返传输时间 RTT 的估计1 TCP传输往返时间是指发送端从发送TCP包开始到接收到它的立即响应所耗费的传输时间 当接收端和发送端同时支持TCP时戳选项时 发送端记录在TCP包头选项内的时戳可以被接收端随响应反射回来 发送端就可以利
  • Windows下OMNET++的安装和各种架构调试心得

    以下所述的为windows平台下OMNET 集成在MSVC6 0环境下的使用方法 一 OMNET的安装 1 到OMNET官方网站下载windows平台下的安装程序 当前版本为omnetpp 3 2p1 win32 下载Ghostscript
  • smart检测指标详解

    一 SMART概述 要说Linux用户最不愿意看到的事情 莫过于在毫无警告的情况下发现硬盘崩溃了 诸如RAID的备份和存储技术可以在任何时候帮用户恢复数据 但为预防硬件崩溃造成数据丢失所花费的代价却是相当可观的 特别是在用户从来没有提前考虑
  • linux下socket编程处理TCP粘包

    一 数据接收时会出现以下几种情况 一次接收到了客户端发送过来的一个完整的数据包 一次接收到了客户端发送过来的 N 个数据包 由于每个包的长度不定 无法将各个数据包拆开 一次接收到了一个或者 N 个数据包 下一个数据包的一部分 还是很悲剧 无
  • Redis内存数据库

    Redis内存数据库 NoSQL数据库简介 Redis简介 Redis应用场景 windows下安装和使用Redis 在linux下安装redis Redis数据可视化RedisDesktopManager Redis配置 Redis 数据
  • 无人机(总结的一个报告)

    无人机系统是配备了必要的数据处理单元 传感器 自动控制和通信系统 并且能够自动执行任务的系统 脑 能源 传感器 执行机构 无人系统分为 区域 无人空中系统 UAS 无人地面系统 UGS 无人海上系统 UMS 那么军用无人机系统未来的发展从哪
  • 如何用Jenkins和Perforce Helix Core搭建CI/CD管道

    Jenkins是常用的CI CD管道支持工具 在这一篇文章中 我们将详细讨论Jenkins对于CI CD管道的重要性 以及如何用Jenkins和Perforce Helix Core搭建CI CD管道 什么是Jenkins搭建的CI CD管
  • 使用Cmake封装API接口成Package方法

    本文是个人探究API封装成Package以让他人像使用OpeCV PCL等第三方库那样方便时所总结的经验 一 CmakeLists txt的编写 1 基本工程实现 cmake minimum required VERSION x x 最小C
  • c语言push操作的作用,C语言对栈的实现基本操作

    c语言中栈是一种数据结构 后进先出 即最后进入栈的数据最先弹出 c语言中没有栈这种数据类型 需要自己编程构建 下面我们就一起来了解一下c语言中栈的基本操作 C语言对栈的实现基本操作 操作如下 include include include
  • 重新学javaweb---路径专题

    绝对路径 以 开头的路径就叫做绝对路径 绝对路径在相对于的路径上直接拼接得到最终的路径 相对路径 不以 开头的路径就叫做相对路径 相对路径基于当前所在的路径计算的到最终的路径 硬盘路径 以盘符开头的路径就叫做硬盘路径 是哪个路径就是哪个路径