Web路径专题+会话
怎样解决访问URL路径过于复杂的问题?
在配置Tomcat的Artifact时
注意这个Application context 路径应该改成 / 根路径下访问,也可以带工程名
相对路径访问问题:
注:使用相对路径来解决,规则是页面所有的相对路径,在默认情况下,都会参考当前浏览器地址栏的路径http://ip:port/Application context/+资源来进行跳转,
相对路径,路径回溯问题
解决相对路径的问题:
base标签-HTML语言中基准网址标记,单标签,位于网页头部文件的head标签内
base标签注意事项
一个页面只能使用一个base元素,用来提供一个指定的默认目标,是一种表达路径和连接网址的标记。
base标签使用
如果base标签指定了目标,浏览器通过目标来解析当前文档中所有的相对路径。
作用:base给提供相对路径->组合为绝对路径
例子:注意下面代码:base标签代码最后必须需要/
因为在具体跳转时如果为,/会被浏览器解析为 http://ip:port/导致404系统找不到文件
<base href="http://localhost:8080/WebPath/">
<a href="login.html">
示例:使用当前浏览器的地址栏进行表单提交转发
<!--使用当前浏览器的地址栏**http://ip:port/Application context/**-->
<form action="views/user/user.html" method="post">
在request.getRequestDispatcher请求转发**(使用servlet转发)**
其中**/** 会被服务器解析为工程路径 : http://ip:port/Application context/
request.getRequestDispatcher("/login.html").forward(request,response);
javaWeb中路径最后 带/ 和 不带/ 区别
示例:
<a href = "/a/servlet03">网址</a> ;servlet03表示资源
<a href = "/a/servlet03/">网址</a> ;servlet03表示路径
getRealPath
servletContext.getRealPath(“/”);==>得到的是执行路径
contextPath 是配置的 Application context
重定向
重定向response.sendRediect(“/”);这条语句虽然在服务器端执行,但是服务器把 / 发送给浏览器进行解析.
因此得到地址 http://ip:port/
base标签Web路径优化
使用jsp技术动态获取 Application Context
<base href="<%= request.getContextPath()%>">