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

82443365 2013-01-03

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

<formaction="r/addUsers"method="GET"onsubmit="returnback();">

首先返回的正确路径应该是http://localhost:8080/OnlineC/r/addUsers

action中的路径一般写相对,若写绝对地址,默认是从服务器根开始(http://localhost:8080),因为container是从server开始分析的,action="/OnlineC/r/addUsers";

由此可以看出请求实际上是以项目根路径为基础路径

对于HttpServletResponse.sendRedirect(Stringpath)

如果是相对路径就是相对当前的路径,比如当前路径是:

http://localhost:8080/OnlineC/r/findAll

想要请求到http://localhost:8080/OnlineC/r/findFiles

则可以在请求中

<h3><ahref="/OnlineC/r/findFiles">查看文件</a></h3>//从servlet根开始<h3><ahref="findFiles">查看文件</a></h3>//相对于当前路径

如果是weburl则可以直接请求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

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

相关推荐