"/"在web项目中所代表的意义

本文详细解析了Web应用中'/'符号的不同用途:在表单动作属性、重定向、转发和映射路径操作中的作用,以及在不同情况下的正确使用方法。通过实例演示,帮助开发者避免常见错误。

一直很苦恼各种路径,今天在百度上看到一个帖子,先保存一下,以后验证


."/"的意义:(工程为filter)

    一、在-form-表单的action属性中代表web站点的根目录

        action="/loginservlet" 代表http://localhost:8080/loginservlet   服务器会去当前web应用根目录的外面去,这肯定会出错!

        action="loginservlet" 代表http://localhost:8080/filter/loginservlet   这是我们一般映射Servlet的路径(要求表单与loginservlet在同一级目录下)

       

    二、在--重定向--操作中代表web站点的根目录

            在LoginServlet.java中:

response.sendRedirect("/hello.jsp"); 代表http://localhost:8080/hello.jsp    不存在,会报错

response.sendRedirect("hello.jsp");   代表hello.jsp与loginservlet在同一目录下,否则会报错

               

    三、在--转发--操作中代表当前web应用的的根目录

        在LoginServlet.java中:

            request.getRequestDispatcher("/hello.jsp") 代表http://localhost:8080/filter/hello.jsp   

            request.getRequestDispatcher("hello.jsp")   代表hello.jsp与loginservlet在同一目录下

               

    四、在--映射路径--操作中代表当前web应用的的根目录

        在web.xml文件中:

            <url-pattern>/loginservlet</url-pattern>    代表将LoginServlet映射成:http://localhost:8080/filter/LoginServlet

           

    五、无"/"则代表当前目录  

            要求发送请求的对象与接受请求的对象在同一目录下,否则就会报错

   

    请测试一个例子:

        在LonginServlet.java中

        request.getRequestDispatcher(servletContext.getContextPath()+"/login.jsp") 是转发到的url为:http://localhost:8080/filter/login.jsp 吗?

答:这个是错误的,转发的时候,“/login.jsp”中的“/” 已经代表当前web应用的根了,如果再加上 servletContext.getContextPath(),最后拼接出来的url是:

/filter/filter/-----,弄出两个filter,肯定出错。

点击查看原文链接

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值