<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>登录</title> </head> <body> <form action="user"> u2 <input type="text" name="username"> <br> <input type="submit" value="登录"> </form> </body> </html>
一个简单的表单如上,action中内容是action="user"
路径前没有“/”,那么这个表单转到的相对地址应该是 浏览器当前地址栏去掉资源部分再加上user
在这个请求中就是这个 http://localhost:8080/hsp-tomcat/
即 http://localhost:8080/hsp-tomcat/user
注意我们可以通过html的base标签改变 省略时添加在user前面的内容
如图如果我们在头中定义了base 那么 在action=“user” 的情况下我们访问的地址应该是
base+user
即http://localhost:8080/hsp-tomcat/user
如果action中的内容是 action="/user"
那么这个"/"会被翻译成主机地址 最后转到的地址为
http://localhost:8080/user
上面这两种情况都是由浏览器解析的情况下
如果是在转发或者重定向由服务端解析时
无论是/还是省略都解析成 tomcat中的url
上图这个就是tomcat里配置的url,这个url的构成一般是主机地址+工程名
即这个代码无论views前面有没有斜杠/ 都会被服务器解析成
http://localhost:8080/hsp-tomcat/views/user/user.html
总结
在浏览器中由浏览器解析
/ 会被解析成主机名
省略“/”则会被默认解析成 以浏览器当前的地址栏去掉资源部分,作为一个相对路径(可以通过base标签改变省略情况下的默认url)
在服务器中
无论是不是省略还是“/”都被默认解析成 tomcat中配置的url
注意:重定向是向浏览器发送地址 :这个地址由浏览器解析的!