请求路径的奇葩之处(一)

首先必须声明这是基于java的web请求,至于其他的语言,估计也没多大差别,因为都是通过servlet请求的。

<form action="r/addUsers" method="GET" οnsubmit="return back();">
首先返回的正确路径应该是http://localhost:8080/OnlineC/r/addUsers
action中的路径一般写相对,若写绝对地址,默认是从服务器根开始(http://localhost:8080),因为container是从server开始分析的,action="/OnlineC/r/addUsers";
由此可以看出请求实际上是以项目根路径为基础路径


对于HttpServletResponse.sendRedirect(String path)
如果是相对路径就是相对当前的路径,比如当前路径是:
http://localhost:8080/OnlineC/r/findAll
想要请求到http://localhost:8080/OnlineC/r/findFiles
则可以在请求中
<h3><a href="/OnlineC/r/findFiles">查看文件</a></h3>//从servlet根开始<h3><a href="findFiles">查看文件</a></h3>//相对于当前路径
如果是web url 则可以直接请求response.sendRedirect(“http://www.baidu.com)


HttpServletRequest.getRequestDispatcher(String)
相对路径情况下生成的完整URL与sendRedirect方法相同。

绝对路径与重定向不同,容器将相对于Web应用的根目录加参数生成完整的URL,即:req.getRequestDispatcher("/billList.jsp").forward(req, res);
这里会去http://localhost:8080/OnlineC/billList.jsp请求 ,正是我要的,但是url因为是转发,所以地址不变
http://localhost:8080/OnlineC/r/findAll

注意这里getRequestDispatcher 绝对路径是默认在项目根目录下http://localhost:8080/OnlineC
sendRedirect 绝对路径是servlet根目录下http://localhost:8080

但是这次自己写的项目发现一个怪出,明天搞出来后再续。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值