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
但是这次自己写的项目发现一个怪出,明天搞出来后再续。