码迷,mamicode.com
首页 > 编程语言 > 详细

Java2E中的路径问题

时间:2017-11-10 01:45:18      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:com   对象传递   str   技术分享   res   文章   版本   找不到   相关   

本节主要介绍:

1、request.getContextPath()-----项目的发布的根路径

 

2、request.getRealPath(‘file‘)----lib目录在当前磁盘中的物理位置,包括盘符,文件夹等,但已经过时,不推荐使用

 

      request.getServletContext().getRealPath(‘file‘)----lib目录在当前磁盘中的物理位置,包括盘符,文件夹等,代替上面的那个方法

      

      file为虚拟路径,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中的路径问题

标签:com   对象传递   str   技术分享   res   文章   版本   找不到   相关   

原文地址:http://www.cnblogs.com/zhiyonglu/p/7812121.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!