Java2E中的路径问题
本节主要介绍:
1、request.getContextPath()-----项目的发布的根路径
2、request.getRealPath('t')----t目录在当前磁盘中的物理位置,包括盘符,文件夹等,但已经过时,不推荐使用
request.getServletContext().getRealPath('t')----t目录在当前磁盘中的物理位置,包括盘符,文件夹等,代替上面的那个方法
t为虚拟路径,K:\apache-tomcat-8.0.37-windows-x64\apache-tomcat-8.0.37\wtpwebapps\mystudy\t为映射出来的实际路径
这两个方法根据结果来看其实都是有问题的,比如,在项目中不存在某个文件例如a.txt,但在括号中赋值a.txt后,仍然会返回路径字符串,因此这两种方法都存在着某些问题。

在看了很多大神的文章后,了解到了ServletContext.getRealPath其实是有陷阱的!使用ServletContext.getRealPath获取路径时,必须以“/”开头,否则找不到资源,在完成web项目应用在打包成.war(web archieve)文件再发布到服务器上时,在服务器上访问,ServletContext.getRealPath会失效,因此,在有关于.war包进行发布的时候,推荐另一种方式,为ServletContext.getResourceAsStream()方法。
相关文章推荐:http://blog.163.com/h_h.vip/blog/static/511972082008112103228841/
在做项目中常用到的路径:
项目发布的绝对路径:basepath------request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/"
项目发布的相对路径:path----request.getContextPath()
3、request.getScheme()-----返回当前连接使用的协议,一般为http
4、request.getServerName()----获取当前项目所在的服务器的名称,本地的为127.0.0.1,一般为ip地址
5、request.getServerPort()---获取当前使用的服务器所占用的端口
6、request.getServletContext()-----servlet上下文是servlet引擎提供用来服务web应用的接口。这个接口下面有很多方法,例如getRealPath就是servletContext接口提供的方法
7、request.getServletPath()-----获取servlet的映射地址,例如@requestMapping("/stutent/addStudent");中的路径;在servlet中为@WebServlet("/student/addStudent");
8、getServletConfig()-----获取当前web应用在web.xml中配置的servlet的初始化信息的封装而成的对象
补充:
在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数。
当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。进而,程序员通过ServletConfig对象就可以得到当前servlet的初始化参数信息。
相关文章推荐:http://www.cnblogs.com/smyhvae/p/4140877.html
9、getServletContext()------获取代表当前web应用的ServletContext对象(我们都知道application和ServletContext是相同的)
10、getServletInfo()-----获取有关servlet的信息,如作者、版本、版权。
11、getServletName()----获取servlet的全称,如com.cnbolgs.servletName
12、request.getContentType()----获取客户端给服务器发送数据的格式
如有什么意见或更正,希望在下方讨论区留言,期待与您一同分享并学习进步,谢谢!
Java2E中的路径问题的更多相关文章
- JAVA WEB项目中各种路径的获取
JAVA WEB项目中各种路径的获取 标签: java webpath文件路径 2014-02-14 15:04 1746人阅读 评论(0) 收藏 举报 分类: JAVA开发(41) 1.可以在s ...
- 【04-10】java中的路径
java中的路径 System.getProperty("user.dir") 获取工程的绝对路径 Class.class.getClass().getResource(&quo ...
- Canvas绘图中的路径描边与填充
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,博客地址为http://www.cnblogs.com/jasonnode/ .网站上有对应每一 ...
- 未找到导入的项目,请确认 <Import> 声明中的路径正确
当使用vs出现下列情况: D:\xxxx\Web\Web.csproj : error : 无法读取项目文件“Web.csproj”. D:\xxxx\WebServiceManager\Web\W ...
- 7z命令行参数中的路径
最近在自动化的过程中用到了7z命令行工具,发现其参数中的路径挺有意思的,在此总结一下.本文中所有demo使用的7z版本为:15.14 x64. 压缩某个文件夹 下面的命令会把g:\temp\目录和目录 ...
- JAVA中获取路径
内容来自于snannan_268 关键字: java中获取路径 JAVA中获取路径: 1.jsp中取得路径: 以工程名为TEST为例: (1)得到包含工程名的当前页面全路径:request.get ...
- js相对路径相关(比如:js中的路径依赖导入该js文件的路径)
问题描述: 前几天调用同事的js接口文件,在他自己的html测试页面ok,在我这边调用时出现问题. debug过程中,将该测试html移到其他位置都不行,放到原html测试页面同层次路径下是OK的. ...
- 请确认 <Import> 声明中的路径正确,且磁盘上存在该文件。
在网上下了个源码打开报错. 请确认 <Import> 声明中的路径正确,且磁盘上存在该文件. 一查,原来是路径错误. 解决办法:将项目文件(.csproj)用记事本打开,然后找到<I ...
- 升级CUDA版本导致VS2010错误:未找到导入的项目XXX,请确认<Import>声明中的路径正确,且磁盘上存在该文件
转自:http://www.cnblogs.com/yeahgis/p/3853420.html VS2010错误:未找到导入的项目XXX,请确认<Import>声明中的路径正确,且磁盘上 ...
随机推荐
- slf4j的使用
1.导入jar包 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api< ...
- xshell 使用命令上传、下载文件
打开xshell, ①检查是否已经安装了上传下载的命令,#rpm -qa |grep lrzsz [root@mjy logs]# rpm -qa |grep lrzszlrzsz-0.12.20-2 ...
- 多管齐下显神威-2017逐浪CMS开启全新建站与WEB技术革命
培训班里说百遍,不如商业场景来检验. PS.AI.JS工具齐上阵,一统逐浪CMS全网中间件. 从逐浪软件创业团队成立.到逐浪CMS产品,以企业形式运营,历经十二载风雨,作为华文世界排名第一的dotNE ...
- python画高斯分布图形
高斯分布,也叫正态分布,是一个在数学.物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力. 若随机变量X服从一个数学期望为μ.方差为σ^2的正态分布,记为N(μ,σ^2).其概率 ...
- 软件开发者路线图梗概&书摘chapter4
准确的自我评估:不是超出平庸,而是度量能力,做到更好,谦卑 1.只求最差:学期曲线趋平 更好团队→提供帮助+准确的自我评估 列举团队并排序 2.找人指导:学习前头的人,寻找师傅 加入社区,寻找活跃的老 ...
- html2canvas将页面内容生成图片
html2canvas官网链接地址:https://html2canvas.hertzen.com/ <!doctype html> <html lang="en" ...
- TCP 三次握爪 四次挥手
TCP三次握手和四次挥手过程 1.三次握手 (1)三次握手的详述 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源.Client端接收到ACK报文后也向 ...
- django1.4 简单事例 ,根目录下templates
django发展很快,但是有的是用的老版本,比如我现在看到一个项目,它用的是 Django1.4,而且app不是创建在了项目的根目录下,这样,它的Setting中设置就会不一样,若是设置错误,就会找不 ...
- 链表中倒数第k个节点(Java)
链表中倒数第k个节点 题目描述 输入一个链表,输出该链表中倒数第k个结点. 思路:two-pointers思想,因为是单链表,没法得prevous点,直接遍历得到链表长度再重新遍历效率很低. 采用双指 ...
- vue简单实例代码
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...