javaweb各种路径的总结

/开始表示相对于当前应用下的绝对路径。

加不加应用名?给浏览器用的 要加 :给 tomcat内部用的 不加。

 

1.1  表单:

1.1.1 表单地址的写法

Form action:

 

1. 全地址:

写法1

http://localhost/Day11ServletRequest/servlet/RegisterServlet

 action=http://192.168.3.199/Day11ServletRequest/servlet/RegisterServlet

 

2. 写相对路径

写法2:相对于当前的页面的相对位置去写

/jsp/xxx/login.jsp

/jps/pages/login.html

 

当相对位置发生变化的时候,会有问题。

 

写法3:以/+当前的项目名为开始,写相对于当前项目的根路径的位置

 

缺点:应用名被写死。

 

使用哪种写法比较好?写法3.

改进写法:

<form action="${pageContext.request.contextPath }/pages/login.html " method=”get”>

   增加写法4: 该页面有设置basepath的情况。

 

 

相对于这个路径写

跟当前页面的路径没关系。

A   href

Link  

浏览器发出的请求 /开始加应用名。

 

1.1.2  表单思考题

/servlet/serletA

servlet考虑如下url的写法:

 

上面这个如果去掉反斜杠

变成相对路径,则相当于在当前的servlet路径的基础上增加,最后变成如下:

 

当然是不对的。

还可以这么写

 

自带表示跟的 /

The path starts with a "/" character but does not end with a "/" character

 

 

1.2 转发跟包含

//'/'开头,表示 以当前的WebRoot为起点。

//不以/开头,直接写路径 表示相对当前的路径

1.2.0.1 相对路径

 

1.2.0.2 /开始的绝对路径

 

 

 

http://localhost/Day11_ServletReqII/servlet/ServletA

 

RequestDispatcher dispater=  request.getRequestDispatcher("/servlet/ServletB");

 

//B http://localhost/Day11_ServletReqII/servlet/ServletB

 

Tomcat容器的web应用内部。不用写应用名。当前就在应用内部。

所以不写应用名

1.2.0.3 转发包含标签

同转发给包含的代码里路径

根目录01.jsp

<jsp:forward page="/servletB"></jsp:forward>

 根目录/servletB

 

1.3 Refresh的url

给浏览器用的,/开始,需要写应用名。

ServletA页面。

response.setHeader("refresh","2;url='/Day12_ServletResponse/01.html'");

 

response.setHeader("refresh","2;url=01.html");

 

http://localhost/app/ServletA

http://localhost/app/servlet/01.html

 

这个路径:

给浏览器看 写相对于项目的绝对路径。

也可以写相对路径。但要知道相对于谁。

//response.setHeader("refresh", "2;url='/Day12_ServletResponse/01.html'");

写完整路径也可以。

http://localhost/Day12_ServletResponse/01.html

 

1.4 重定向

 

 

也可以写相对路径,但是需要知道相对于谁。

 

 

1.5 Context  getRealpath

Context.getRealpath(/mm/jpg)

已经定义到当前的WEB-ROOT下,所以 该路径写相对于WEB-ROOT的相对路径

String realPath = getServletContext().getRealPath("WEB-INF/mm.jpg");

注意:前面加斜杠也可以。

getServletContext().getRealPath("/WEB-INF/mm.jpg");

 

这里如果不知道,不确定打印出来即可!!!

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值