开发者社区> 问答> 正文

请教关于路径的问题,多个斜杠的问题? 400 报错

请教关于路径的问题,多个斜杠的问题? 400 报错

http://localhost:8080/webapp/////admin////main.jsp

和下边的

http://localhost:8080/webapp/admin/main.jsp

都能打开相同的,都不会出错,做了两年java了,今天早上突然发现这个问题,觉得很诡异,应该是自己基础不够扎实,想知道为什么,如果在多个//之间要是有一个不为空的字符串的话是肯定会报错的,我用的tomcat 6.不知道是不是所有的web容器都会这么处理路径呢

展开
收起
爱吃鱼的程序员 2020-06-03 15:41:19 469 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    不是tomcat的问题,是操作系统就是这样的,windows和linux都是支持这样的

    你可以在命令行或者终端中试一下你就知道了

    ######
    /**
     * java在服务器启动时获得项目的根目录 初始化web.xml
     * 
     */
    public class InitConfig  implements ServletContextListener{
    	
    	public static String ProjectPath;
    	
    	public void contextDestroyed(ServletContextEvent arg0) {
    	}
    
    	public void contextInitialized(ServletContextEvent event) {
    
    		ProjectPath = event.getServletContext().getRealPath("");// 获得项目的根目录 
    
    	}
    
    
    }

    String filePath = InitConfig.ProjectPath + "在项目下要找的文件路径";######操作系统应该可以判断并忽略多余的“/”符######谢谢楼上的三位兄弟,刚才尝试了,做了几个小例子,记住了这个,OSC  真好 ######

    引用来自“空指针”的答案

    /**
     * java在服务器启动时获得项目的根目录 初始化web.xml
     * 
     */
    public class InitConfig  implements ServletContextListener{
    	
    	public static String ProjectPath;
    	
    	public void contextDestroyed(ServletContextEvent arg0) {
    	}
    
    	public void contextInitialized(ServletContextEvent event) {
    
    		ProjectPath = event.getServletContext().getRealPath("");// 获得项目的根目录 
    
    	}
    
    
    }

    String filePath = InitConfig.ProjectPath + "在项目下要找的文件路径";
    补充一下:在web.xml里的配置如下:
    <!-- 配置服务器启动时项目的根目录绝对路径 -->
    	<listener>
    		<description>initConfig</description>
    		<listener-class>
    			com.xxx.xxx.xxx.InitConfig
    		</listener-class>
    	</listener>
    <!-- 配置服务器启动时项目的根目录绝对路径 结束 -->

    2020-06-03 20:52:19
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载