java-web应用路径写法总结

先看看几个路径的概念:

1、绝对路径:以/开头的路径就叫做绝对路径,绝对路径在相对于的路径上直接拼接得到最终的路径。

2、相对路径:不以/开头的路径就叫做相对路径,相对路径基于当前所在的路径计算的到最终的路径。

3、硬盘路径:以盘符开头的路径就叫做硬盘路径.是哪个路径就是哪个路径.没有相对于谁的问题。

1、虚拟路径: ----都使用绝对路径

(1)若虚拟路径是给浏览器用的,这个路径相对于虚拟主机,所以需要写上web应用的名称。

<a href="${pageContext.request.contextPath}/.....">

<form action="${pageContext.request.contextPath}/.....">

<img src="${pageContext.request.contextPath}/.....">

response.setHeader("Location",request.getContextPath()+"/index.jsp");  //重定向

response.setHeader("refresh","3;url="+request.getContextPath()+"/index.jsp"); // 定时刷新重定向

response.sendRedirect(request.getContextPath()+"/index.jsp");  //重定向

(2)若虚拟路径是给服务器用的,这个路径相对于web应用,所以可以省写web应用的名称。

request.getRequestDispathce("/index.jsp").forward();  //转发

request.getRequestDispathce("/index.jsp").include();  //包含

2、真实路径: ----都使用相对路径,计算得到

根据原理,具体问题具体分析

servletContext.getRealPath("1.jpg");    //--给一个相对于web应用目录下的路径

this.getServletContext().getRealPath("1.jpg").toString();

E:\Program-Files\apache-tomcat-6.0.36\webapps\day04\1.jpg

classLoader.getResource("2.jpg").getPath();   //--给一个相对于类加载目录下的路径

PathDemo.class.getClassLoader().getResource("2.jpg").getPath();

/E:/Program-Files/apache-tomcat-6.0.36/webapps/day04/WEB-INF/classes/2.jpg

PathDemo.class.getClassLoader().getResource("../../1.jpg").getPath();

/E:/Program-Files/apache-tomcat-6.0.36/webapps/day04/1.jpg

3、相对路径

File file = new File("config.properties");//--相对于程序的启动目录

new InputStream("config.properties");//--相对于程序的启动目录

E:\Program-Files\apache-tomcat-6.0.36\bin\config.properties

public static void main(String[] args) {

File file = new File("3.jpg");

System.out.println(file.getAbsolutePath());}

E:\Program-Files\java-workplace\MyeclipseWorkspace\myeclpse_javaweb_2016\day04\3.jpg

    public static void main(String[] args) {

String path=demo1.class.getClassLoader().getResource("2.jpg").getPath();

File file = new File(path);

System.out.println(file.getAbsolutePath());

E:\Program-Files\java-workplace\MyeclipseWorkspace\myeclpse_javaweb_2016\day10\bin\2.jpg

4、绝对路径  直接拼接

File file = new File("/1.jpg");

new InputStream("/1.jpg");

E:\1.jpg

地址路径写法举例

1、Servlet的转发

RequestDispatcher dispatcher = this.getServletContext().getRequestDispatcher (“/servlet/Demo6Servlet”);  //获取转发器

dispatcher.forward(request,response);  //把请求响应转发到Demo6Servlet

2、请求重定向

//response.setStatus(302);

//response.setHeader("Location", "/day04/index.jsp");

response.sendRedirect("/day04/index.jsp");

3、请求包含:

两个资源的输出进行合并后输出

1、this.getServletContext().getRequestDispatcher(" /../..").include(request,response);

2、request.getRequestDispatcher("/../..").include(request,response);

*被包含的Servlet程序,只能是实体内容

4、当前web应用的名称

resquest.getContextPath(); = /day04 ,当前web应用虚拟目录名称

重定向要这么写了

response.setHeader("Refresh", "2;url=”+resquest.getContextPath()+”/index.jsp");

 

5、在Servlet中读取资源文件

config.properties直接放在WebRoot文件夹下:= web应用根目录day03

Properties prop = new Properties();

prop.load(new FileReader(this.getServletContext().getRealPath("config.properties")));

6、非Servlet环境下要读取资源

1、config.properties直接放在src文件夹下:  = web应用目录的classes文件夹

Properties prop = new Properties();

prop.load(new FileReader( Service.class.getClassLoader().getResource("config.properties").getPath()));

2、config.properties直接放在WebRoot文件夹下Service.class.getClassLoader().getResource("../../config.properties").getPath()

去上一层文件夹找../

classes里上一层是WEB-INF里,再上一层是Day3里

3、config.properties直接放在src/com/itheima文件夹下

Service.class.getClassLoader().getResource("com/itheima/config.properties").getPath()

7、定时更改刷新--是重定向 

indext.jsp在WebRoot文件夹下

response.setHeader("Refresh", "2;url=/day04/index.jsp");

时间: 2024-11-05 22:54:31

java-web应用路径写法总结的相关文章

java(web)相对路径,绝对路径

1.定义 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:/xyz/test.txt 代表了test.txt文件的绝对路径.http://www.baidu.com/index.htm也代表了一个URL绝对路径. 相对路径:相对与某个基准目录的路径.包含Web的相对路径(HTML中的相对目录),例如:在Servlet中,"/"代表Web应用的根目录.和物理路径的相对表示.例如:"./" 代表当前目录,"../&

Eclipse下 tomcat 输出路径配置修改 (Java Web发布路径修改/webapps/wtpwebapps)

Eclipse是允许自配置Tomcat来调试Java web的,但是它发布的时候默认不是发布到Tomcat的webapps的目录下,这让我纠结了好久,因为我开始用MyEclipse(但为了保持团队开发工具的统一,现在都改成了Eclipse作为开发工具)开发Java Web时,他会自动部署到webapps目录下,奇怪了,跑到哪去了?问了下同事,也查了下资料,下面的这篇文章帮我找到了解决方案: 在Eclipse下配置server为Tomcat(一般为Tomcat 6.X),双击server面板中的T

java web中路径问题。

转自:http://blog.csdn.net/liang5630/article/details/38474543 如有侵权,请及时联系本人及时删除 在java web种经常出现 404找不到网页的错误,究其原因,一般是访问的路径不对. java web中的路径使用按我的分法可以分两种情况,当然啦两者使用相对路径是一致,本文只说绝对路径. 情况一.指向外部的web组件和本身关系不大的,这一类的有:html中使用路径的标签,比如<a>标签中的href;servlet和jsp中的重定向sendR

java web 资源地址写法

前提:假设web应用test(工程名) webapps下面有一资源文件test.html 规则:在获取资源时一般使用的是相对路径,以符号/开头,而 / 代表什么取决于这个地址给谁使用.服务器使用时,/ 表示web应用:浏览器使用时,/ 表示地址,需要指出web应用 例: 1. request.getRequestDispatcher("/test.html").forward(request, response); 2. response.sendRedirect("/tes

java web获取路径

class URL save = Thread.currentThread().getContextClassLoader().getResource(""); String str = save.toString(); str = str.substring(6) +childPath; webapp String excelPath = request.getSession().getServletContext().getRealPath("dddd);excelpat

理解java Web项目中的路径问题

本文以项目部署在tomcat服务器为例,其他相信也是一样的. 先说明请求页面的写法,在web中,页面路径主要写的有以下几种 1.请求重定向 2.浏览器的请求被服务器请求到新页面(我称为“转发”) 3.超链接 4.form表单提交的action 为了演示路径写法,首先先建一个项目(项目名WebPath),并建立一个servlet(PathServlet) 目录结构如下 以访问目录中index.jsp文件为例,jxf.path.PathServlet.jave中对以上四种路径的写法(红色部分) 1

使用Maven构建Java Web项目时,关于jsp中引入js、css文件路径问题。

今天有点闲,自己动手搭建一个Java Web项目,遇到jsp中引入js.css文件时路径不正确的问题,于是在网上查阅了很多资料,最终都无法解决问题,于是,上stackoverflow找到了解决方法,这里不得不吐槽一下国内资料的可信度,不说了,以后遇到问题尽量还是google吧,花点钱买个vpn值了,生命有限,节约时间. 下面记录下解决方法吧: 首先,确保jsp引入了jstl:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" pr

java web项目,java类中获得WEB-INF路径

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 private static String getWebInfPath() {         URL url = 当前类.class.getProtectionDomain().getCodeSource().getLocation();         String path = url.toString();         int index = pat

Java web 项目的相对路径的使用

在java Web中有些地方读取文件需要相对路径.在Java Web 中如何使用相对路径呢? Java Web 在发布项目的时候. 发布根路径下WEB-INF/classes 默认使用该方法的路径是:WEB-INF/classes.已经在Tomcat中测试. 要想在 java类中后去Dack.ftl(红括号内) 就需要写成:WebContent/wordFile/Dack.ftl  或者是  WebContent\\wordFile\\Dack.ftl

JAVA WEB项目中各种路径的获取

JAVA WEB项目中各种路径的获取 标签: java webpath文件路径 2014-02-14 15:04 1746人阅读 评论(0) 收藏 举报  分类: JAVA开发(41)  1.可以在servlet的init方法里 String path = getServletContext().getRealPath("/"); 这将获取web项目的全路径 例如 :E:\eclipseM9\workspace\tree\ tree是我web项目的根目录 2.你也可以随时在任意的cla