大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> JSP专区 -> 在JSP中处理虚拟路径

在JSP中处理虚拟路径

时间: 2021-07-31 作者:daque

纲要在为效劳器端组件编制程序时,你很大概要从对立于web根的路途来博得某个文献的如实路途,但此文献本质上在站点的一个假造路途上。什么是假造路途?在一个web效劳器上,假造路途将物理上辨别的各文献拉拢在一道,放在同一个站点路途上,在运用效劳器上,每个运用定坐落其本人的假造路途上,本质上彼此之间有着完备地辨别。getrealpath()本领jsp servlet api供给了getrealpath(path)本领,归来给定假造路途的如实路途,即使变换缺点,则归来null。getrealpath语法设置:public java.lang.string getrealpath(java.lang.string path)归来一个字符串,包括一个给定假造路途的如实路途。比方,假造路途 "/index.html"尽管在效劳器文献体例上具备还好吗的如实路途,运用"/index.html"总不妨找到它。归来的如实路途运用了邻近于servlet容器(srvlet container)地方计划机或操纵体例的方法,包括了符合的路途分割符。即使servlet容器没辙变换则这个本领将归来null。参数:  path -一个刻画了假造路途的字符串归来值:  刻画如实路途的字符串大概null可惜的是,getrealpath往往归来各别的货色,这在于于效劳器或jsp文献挪用此本领的路途场所。一个example站点假如咱们的站点构造如次:根路途包括了咱们的站点的根: http://address/a_virtual目次包括了咱们站点供给的假造路途的文献,比方:http://addess/virtual_dir/咱们搜索file1.txt和file2.txt的如实路途,它们一个在站点根路途下,一个在假造路途下。getrealpath("/file1.txt") 该当归来“c:\site\site_root\file1.txt",getrealpath("/virtual_dir/file2.txt")该当归来"c:\site\a_virtual\file2.txt"getrealpath("/file3.txt")该当归来null,由于这个文献不生存。但getrealpath()并不老是归来同样的截止,这还在于与你运用的js引擎。jsp引擎tomcat 3.1tomcat归来的截止具备运用的独力性(application dependant):它在于与挪用getrealpath本领的谁人jsp文献地方的场所。本质上,当page1.jsp (坐落站点根处)对file1.txt和file2.txt挪用txtgetrealpath(), 它归来精确的截止。(这是在tomcat 3.1, 3.0版则对file2.txt归来缺点的路途)然而当page2.jsp(坐落另一个运用,在一个假造路途中)挪用getrealpath,它归来了缺点的路途:它贯穿了该jsp文献地方的路途和乞求的假造路途。比方,从page2.jsp中挪用getrealpath(/file1.txt)将归来 c:\site\a_virtual\file1.txt。这一动作本来是使各别的运用彼此独力的典范的处置本领。jrun 2.3.3和inprise application server 4.0 (ias)jrun和ias对file1.txt和file2.txt都归来精确的截止。但是一切那些引擎有一个共通的动作: 当getrealpath处置不生存的文献时,它们都不归来null!处置之道既是getrealpath老是归来一个路途,咱们如何领会它能否精确呢?最大略的本领是查看这个归来的路途能否生存。这即是isvirtual本领要做的:在对一个给定的文献挪用getrealpath此后,它运用了java.io来存取这个文献,所以就不妨领会它能否生存。/*** isvirtual** check if the path name is a virtual or not.** @param pathname the name of the path to check.*/private boolean isvirtual(string pathname) { // check if it is a virtual path if (m_application.getrealpath(pathname)!=null) {  java.io.file virtualfile = new java.io.file(m_application.getrealpath(pathname));  if (virtualfile.exists()) {return true;}  else {return false;} } else {return false;}} 

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.