JAVA WEB开发中路径问题的总结

转帖|其它|编辑:郝浩|2010-07-23 09:25:43.000|阅读 633 次

概述:用Java开发Web应用时,无论是Jsp页面、Servlet或是web.xml配置文件中都涉及到路径的问题,而这又是初学者较容易混淆的地方,往往不知道如何写路径。其实服务器端和客户端在处理路径的方式上不一致,因此需要根据不同的情况写出正确的路径。下面通过例子来说明。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

  用Java开发Web应用时,无论是Jsp页面、Servlet或是web.xml配置文件中都涉及到路径的问题,而这又是初学者较容易混淆的地方,往往不知道如何写路径。其实服务器端和客户端在处理路径的方式上不一致,因此需要根据不同的情况写出正确的路径。下面通过例子来说明。

  假设Web应用road中,应用的根路径下有一个dir1文件夹和dir2文件夹。c.jsp在dir1中,a.jsp和b.jsp在dir2中。Web应用的结构如图所示。

  + root

  -dir1

  c.jsp

  -dir2

  a.jsp

  b.jsp

  JSP页面中正确的路径表示 假设在a.jsp页面中有两个链接,分别链接到b.jsp和c.jsp页面。

  直接写路径表示和页面在同一个文件夹下面,如<a href="b.jsp">b.jsp</a>

  "../"表示当前文件夹的上一级文件夹(相对路径),如:      <a href="../dir2/b.jsp">b.jsp</a>,

  <a href="../dir1/c.jsp">c.jsp</a>

  "/"表示 http://机器IP:8080(绝对路径),如:      <a href="/road/dir2/b.jsp">b.jsp</a>

  <a href="/road/dir1/c.jsp">c.jsp</a>

  Servlet中正确的路径表示

  转发请求时:"/"表示“http://服务器IP:8080/Web应用名”,例如:     String forward = "/dir1/c.jsp";

  RequestDispatcher rd = request.getQRequestDispatcher(forward);

  重定向时:“/”  表示“http://机器IP:8080”,而通过request.getContextPath()得到的是:“http://机器IP:8080/Web应用名”,例如:      String str =  request.getContextPath();

  response.sendRedirect(str + "/dir1/c.jsp");

  配置文件web.xml中    url-mapping中,"/"表示“http://IP地址:8080/Web应用名”

  总结

  在浏览器端:“/”表示的是一台WEB服务器,“http://机器IP:8080”

  在服务器端(请求转发):“/”表示的是一个WEB服务器端的应用,“http://机器IP:8080/Web应用”

  在服务器端(重定向):“/”表示的是一个WEB服务器,“http://机器IP:8080”


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:网络转载

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP